Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Build fix for CUDA 11.3 #8635

Closed
wants to merge 3 commits into from

Conversation

benfred
Copy link
Member

@benfred benfred commented Jun 30, 2021

We're seeing build failures when trying to compile cudf on the DLFW 21.06
container (which is on CUDA 11.3). This change works around one of the
build problems by changing to reduce the use of auto and initializer
lists in cpp/src/io/json/reader_impl.cu

We're seeing build failures when trying to compile cudf on the DLFW 21.06
container (which is on CUDA 11.3).  This change works around one of the
build problems by changing to reduce the use of ```auto``` and initializer
lists.
@benfred benfred requested a review from a team as a code owner June 30, 2021 21:52
@github-actions github-actions bot added the libcudf Affects libcudf (C++/CUDA) code. label Jun 30, 2021
@benfred
Copy link
Member Author

benfred commented Jun 30, 2021

Fwiw, here is the compile error without this change.

Build Log

root@a177a0e6dade:/workspace/build-env# 
root@a177a0e6dade:/workspace/build-env# 
root@a177a0e6dade:/workspace/build-env# ./build.sh
Building for the architecture of the GPU in the system...
-- CUDF: Auto detection of gpu-archs: 60;70;75;80
-- CUDF: Building CUDF for GPU architectures: 60-real;70-real;75-real;80-real
-- CPM: adding package [email protected] (cudf_0.19)
-- CPM: adding package [email protected] (1.12.0)
-- CPM: using local package [email protected]
-- CPM: using local package [email protected]
-- CPM: adding package [email protected] (v0.5)
-- CPM: adding package [email protected] (1.4.0)
-- CPM: adding package [email protected] (release-1.10.0)
CMake Deprecation Warning at build/_deps/gtest-src/CMakeLists.txt:4 (cmake_minimum_required):
  Compatibility with CMake < 2.8.12 will be removed from a future version of
  CMake.

  Update the VERSION argument <min> value or use a ...<max> suffix to tell
  CMake that the project does not need compatibility with older versions.


CMake Deprecation Warning at build/_deps/gtest-src/googlemock/CMakeLists.txt:45 (cmake_minimum_required):
  Compatibility with CMake < 2.8.12 will be removed from a future version of
  CMake.

  Update the VERSION argument <min> value or use a ...<max> suffix to tell
  CMake that the project does not need compatibility with older versions.


CMake Deprecation Warning at build/_deps/gtest-src/googletest/CMakeLists.txt:56 (cmake_minimum_required):
  Compatibility with CMake < 2.8.12 will be removed from a future version of
  CMake.

  Update the VERSION argument <min> value or use a ...<max> suffix to tell
  CMake that the project does not need compatibility with older versions.


-- Could NOT find cuFile (missing: cuFile_LIBRARY cuFileRDMA_LIBRARY cuFile_INCLUDE_DIR) 
-- Configuring done
-- Generating done
-- Build files have been written to: /workspace/build-env/cpp/build
Consolidate compiler generated dependencies of target jitify_preprocess
[  0%] Built target jitify_preprocess
[  2%] Built target jitify_preprocess_run
Consolidate compiler generated dependencies of target cudf
[  2%] Building CUDA object CMakeFiles/cudf.dir/src/io/json/reader_impl.cu.o
/usr/include/c++/9/bits/stl_pair.h:223:149: error: non-template ‘type’ used as template
  223 |                 typename _U2 = _T2,
      |                                                                                                                                                     ^   
/usr/include/c++/9/bits/stl_pair.h:223:149: note: use ‘std::enable_if<std::__and_<std::__is_implicitly_default_constructible<_U1>, std::__is_implicitly_default_constructible<_U2> >::value, bool>::template type’ to indicate that it is a template
/usr/include/c++/9/bits/stl_pair.h:227:2: error: ‘unnamed’ was not declared in this scope
  227 |                                    ::value, bool>::type = true>
      |  ^      
/usr/include/c++/9/bits/stl_pair.h:229:19: error: ‘second’ is not a type
  229 |       _GLIBCXX_CONSTEXPR pair()
      |                   ^~~~~~
/usr/include/c++/9/bits/stl_pair.h:230:1: error: expected ‘>’ before ‘{’ token
  230 |       : first(), second() { }
      | ^
/usr/include/c++/9/bits/stl_pair.h:230:1: error: expected unqualified-id before ‘{’ token
/usr/include/c++/9/bits/stl_pair.h:234:235: error: non-template ‘type’ used as template
  234 |                 typename _U2 = _T2,
      |                                                                                                                                                                                                                                           ^   
/usr/include/c++/9/bits/stl_pair.h:234:235: note: use ‘std::enable_if<std::__and_<std::is_default_constructible<_U1>, std::is_default_constructible<_U2>, std::__not_<std::__and_<std::__is_implicitly_default_constructible<_U1>, std::__is_implicitly_default_constructible<_U2> > > >::value, bool>::template type’ to indicate that it is a template
/usr/include/c++/9/bits/stl_pair.h:241:2: error: ‘unnamed’ was not declared in this scope
  241 |                                    ::value, bool>::type = false>
      |  ^      
/usr/include/c++/9/bits/stl_pair.h:242:19: error: ‘second’ is not a type
  242 |       explicit constexpr pair()
      |                   ^~~~~~
/usr/include/c++/9/bits/stl_pair.h:243:1: error: expected ‘>’ before ‘{’ token
  243 |       : first(), second() { }
      | ^
/usr/include/c++/9/bits/stl_pair.h:243:1: error: expected unqualified-id before ‘{’ token
/usr/include/c++/9/bits/stl_pair.h:254:217: error: non-template ‘type’ used as template
  254 |       template<typename _U1 = _T1, typename _U2=_T2, typename
      |                                                                                                                                                                                                                         ^   
/usr/include/c++/9/bits/stl_pair.h:254:217: note: use ‘std::enable_if<(std::_PCC<true, _T1, _T2>::_ConstructiblePair<_U1, _U2>() && std::_PCC<true, _T1, _T2>::_ImplicitlyConvertiblePair<_U1, _U2>()), bool>::template type’ to indicate that it is a template
/usr/include/c++/9/bits/stl_pair.h:259:2: error: ‘unnamed’ was not declared in this scope
  259 |                          bool>::type=true>
      |  ^      
/usr/include/c++/9/bits/stl_pair.h:260:52: error: ‘second’ is not a type
  260 |       constexpr pair(const _T1& __a, const _T2& __b)
      |                                                    ^     
/usr/include/c++/9/bits/stl_pair.h:261:1: error: expected ‘>’ before ‘{’ token
  261 |       : first(__a), second(__b) { }
      | ^
/usr/include/c++/9/bits/stl_pair.h:261:1: error: expected unqualified-id before ‘{’ token
/usr/include/c++/9/bits/stl_pair.h:263:220: error: non-template ‘type’ used as template
  263 |        template<typename _U1 = _T1, typename _U2=_T2, typename
      |                                                                                                                                                                                                                            ^   
/usr/include/c++/9/bits/stl_pair.h:263:220: note: use ‘std::enable_if<(std::_PCC<true, _T1, _T2>::_ConstructiblePair<_U1, _U2>() && (! std::_PCC<true, _T1, _T2>::_ImplicitlyConvertiblePair<_U1, _U2>())), bool>::template type’ to indicate that it is a template
/usr/include/c++/9/bits/stl_pair.h:268:2: error: ‘unnamed’ was not declared in this scope
  268 |                          bool>::type=false>
      |  ^      
/usr/include/c++/9/bits/stl_pair.h:269:52: error: ‘second’ is not a type
  269 |       explicit constexpr pair(const _T1& __a, const _T2& __b)
      |                                                    ^~~~~~
/usr/include/c++/9/bits/stl_pair.h:270:1: error: expected ‘>’ before ‘{’ token
  270 |       : first(__a), second(__b) { }
      | ^
/usr/include/c++/9/bits/stl_pair.h:270:1: error: expected unqualified-id before ‘{’ token
/usr/include/c++/9/bits/stl_pair.h:285:321: error: non-template ‘type’ used as template
  285 |       template<typename _U1, typename _U2, typename
      |                                                                                                                                                                                                                                                                                                                                 ^   
/usr/include/c++/9/bits/stl_pair.h:285:321: note: use ‘std::enable_if<(std::_PCC<((! std::is_same<_T1, _U1>::value) || (! std::is_same<_T2, _U2>::value)), _T1, _T2>::_ConstructiblePair<_U1, _U2>() && std::_PCC<((! std::is_same<_T1, _U1>::value) || (! std::is_same<_T2, _U2>::value)), _T1, _T2>::_ImplicitlyConvertiblePair<_U1, _U2>()), bool>::template type’ to indicate that it is a template
/usr/include/c++/9/bits/stl_pair.h:290:2: error: ‘unnamed’ was not declared in this scope
  290 |      bool>::type=true>
      |  ^   ~~~
/usr/include/c++/9/bits/stl_pair.h:291:62: error: ‘second’ is not a type
  291 |         constexpr pair(const pair<_U1, _U2>& __p)
      |                                                              ^     
/usr/include/c++/9/bits/stl_pair.h:291:73: error: expected ‘)’ before ‘.’ token
  291 |         constexpr pair(const pair<_U1, _U2>& __p)
      |                                                                         ^
      |                                                                         )
/usr/include/c++/9/bits/stl_pair.h:291:73: error: expected ‘)’ before ‘.’ token
  291 |         constexpr pair(const pair<_U1, _U2>& __p)
      |                                                                         ^
      |                                                                         )
/usr/include/c++/9/bits/stl_pair.h:291:73: error: expected ‘>’ before ‘.’ token
/usr/include/c++/9/bits/stl_pair.h:291:80: error: expected unqualified-id before ‘)’ token
  291 |         constexpr pair(const pair<_U1, _U2>& __p)
      |                                                                                ^
/usr/include/c++/9/bits/stl_pair.h:294:324: error: non-template ‘type’ used as template
  294 |       template<typename _U1, typename _U2, typename
      |                                                                                                                                                                                                                                                                                                                                    ^   
/usr/include/c++/9/bits/stl_pair.h:294:324: note: use ‘std::enable_if<(std::_PCC<((! std::is_same<_T1, _U1>::value) || (! std::is_same<_T2, _U2>::value)), _T1, _T2>::_ConstructiblePair<_U1, _U2>() && (! std::_PCC<((! std::is_same<_T1, _U1>::value) || (! std::is_same<_T2, _U2>::value)), _T1, _T2>::_ImplicitlyConvertiblePair<_U1, _U2>())), bool>::template type’ to indicate that it is a template
/usr/include/c++/9/bits/stl_pair.h:299:2: error: ‘unnamed’ was not declared in this scope
  299 |                          bool>::type=false>
      |  ^      
/usr/include/c++/9/bits/stl_pair.h:300:62: error: ‘second’ is not a type
  300 |  explicit constexpr pair(const pair<_U1, _U2>& __p)
      |                                                              ^     
/usr/include/c++/9/bits/stl_pair.h:300:73: error: expected ‘)’ before ‘.’ token
  300 |  explicit constexpr pair(const pair<_U1, _U2>& __p)
      |                                                                         ^
      |                                                                         )
/usr/include/c++/9/bits/stl_pair.h:300:73: error: expected ‘)’ before ‘.’ token
  300 |  explicit constexpr pair(const pair<_U1, _U2>& __p)
      |                                                                         ^
      |                                                                         )
/usr/include/c++/9/bits/stl_pair.h:300:73: error: expected ‘>’ before ‘.’ token
/usr/include/c++/9/bits/stl_pair.h:300:80: error: expected unqualified-id before ‘)’ token
  300 |  explicit constexpr pair(const pair<_U1, _U2>& __p)
      |                                                                                ^
/usr/include/c++/9/bits/stl_pair.h:307:118: error: non-template ‘type’ used as template
  307 |       template<typename _U1, typename
      |                                                                                                                      ^   
/usr/include/c++/9/bits/stl_pair.h:307:118: note: use ‘std::enable_if<std::_PCC<true, _T1, _T2>::_MoveCopyPair<true, _U1, _T2>(), bool>::template type’ to indicate that it is a template
/usr/include/c++/9/bits/stl_pair.h:310:2: error: ‘unnamed’ was not declared in this scope
  310 |                          bool>::type=true>
      |  ^      
/usr/include/c++/9/bits/stl_pair.h:311:68: error: ‘second’ is not a type
  311 |        constexpr pair(_U1&& __x, const _T2& __y)
      |                                                                    ^     
/usr/include/c++/9/bits/stl_pair.h:312:1: error: expected ‘>’ before ‘{’ token
  312 |        : first(std::forward<_U1>(__x)), second(__y) { }
      | ^
/usr/include/c++/9/bits/stl_pair.h:312:1: error: expected unqualified-id before ‘{’ token
/usr/include/c++/9/bits/stl_pair.h:314:119: error: non-template ‘type’ used as template
  314 |       template<typename _U1, typename
      |                                                                                                                       ^   
/usr/include/c++/9/bits/stl_pair.h:314:119: note: use ‘std::enable_if<std::_PCC<true, _T1, _T2>::_MoveCopyPair<false, _U1, _T2>(), bool>::template type’ to indicate that it is a template
/usr/include/c++/9/bits/stl_pair.h:317:2: error: ‘unnamed’ was not declared in this scope
  317 |                          bool>::type=false>
      |  ^      
/usr/include/c++/9/bits/stl_pair.h:318:68: error: ‘second’ is not a type
  318 |        explicit constexpr pair(_U1&& __x, const _T2& __y)
      |                                                                    ^     
/usr/include/c++/9/bits/stl_pair.h:319:1: error: expected ‘>’ before ‘{’ token
  319 |        : first(std::forward<_U1>(__x)), second(__y) { }
      | ^
/usr/include/c++/9/bits/stl_pair.h:319:1: error: expected unqualified-id before ‘{’ token
/usr/include/c++/9/bits/stl_pair.h:321:101: error: ‘_U1’ was not declared in this scope; did you mean ‘_T1’?
  321 |       template<typename _U2, typename
      |                                                                                                     ^  
      |                                                                                                     _T1
/usr/include/c++/9/bits/stl_pair.h:321:118: error: non-template ‘type’ used as template
  321 |       template<typename _U2, typename
      |                                                                                                                      ^   
/usr/include/c++/9/bits/stl_pair.h:321:118: note: use ‘std::enable_if<std::_PCC<true, _T1, _T2>::_CopyMovePair<true, _T1, <expression error> >(), bool>::template type’ to indicate that it is a template
/usr/include/c++/9/bits/stl_pair.h:324:2: error: ‘unnamed’ was not declared in this scope
  324 |                          bool>::type=true>
      |  ^      
/usr/include/c++/9/bits/stl_pair.h:325:47: error: ‘second’ is not a type
  325 |        constexpr pair(const _T1& __x, _U2&& __y)
      |                                               ^~    
/usr/include/c++/9/bits/stl_pair.h:325:73: error: expected unqualified-id before ‘(’ token
  325 |        constexpr pair(const _T1& __x, _U2&& __y)
      |                                                                         ^
/usr/include/c++/9/bits/stl_pair.h:325:72: error: expected ‘)’ before ‘(’ token
  325 |        constexpr pair(const _T1& __x, _U2&& __y)
      |                                                                        ^ 
      |                                                                        )
/usr/include/c++/9/bits/stl_pair.h:325:73: error: expected ‘>’ before ‘(’ token
  325 |        constexpr pair(const _T1& __x, _U2&& __y)
      |                                                                         ^
/usr/include/c++/9/bits/stl_pair.h:325:78: error: expected unqualified-id before ‘)’ token
  325 |        constexpr pair(const _T1& __x, _U2&& __y)
      |                                                                              ^
/usr/include/c++/9/bits/stl_pair.h:328:102: error: ‘_U1’ was not declared in this scope; did you mean ‘_T1’?
  328 |       template<typename _U2, typename
      |                                                                                                      ^  
      |                                                                                                      _T1
/usr/include/c++/9/bits/stl_pair.h:328:119: error: non-template ‘type’ used as template
  328 |       template<typename _U2, typename
      |                                                                                                                       ^   
/usr/include/c++/9/bits/stl_pair.h:328:119: note: use ‘std::enable_if<std::_PCC<true, _T1, _T2>::_CopyMovePair<false, _T1, <expression error> >(), bool>::template type’ to indicate that it is a template
/usr/include/c++/9/bits/stl_pair.h:331:2: error: ‘unnamed’ was not declared in this scope
  331 |                          bool>::type=false>
      |  ^      
/usr/include/c++/9/bits/stl_pair.h:332:47: error: ‘second’ is not a type
  332 |        explicit pair(const _T1& __x, _U2&& __y)
      |                                               ^     
/usr/include/c++/9/bits/stl_pair.h:332:73: error: expected unqualified-id before ‘(’ token
  332 |        explicit pair(const _T1& __x, _U2&& __y)
      |                                                                         ^
/usr/include/c++/9/bits/stl_pair.h:332:72: error: expected ‘)’ before ‘(’ token
  332 |        explicit pair(const _T1& __x, _U2&& __y)
      |                                                                        ^ 
      |                                                                        )
/usr/include/c++/9/bits/stl_pair.h:332:73: error: expected ‘>’ before ‘(’ token
  332 |        explicit pair(const _T1& __x, _U2&& __y)
      |                                                                         ^
/usr/include/c++/9/bits/stl_pair.h:332:78: error: expected unqualified-id before ‘)’ token
  332 |        explicit pair(const _T1& __x, _U2&& __y)
      |                                                                              ^
/usr/include/c++/9/bits/stl_pair.h:335:86: error: parse error in template argument list
  335 |       template<typename _U1, typename _U2, typename
      |                                                                                      ^                                      
/usr/include/c++/9/bits/stl_pair.h:335:165: error: parse error in template argument list
  335 |       template<typename _U1, typename _U2, typename
      |                                                                                                                                                                     ^                                              
/usr/include/c++/9/bits/stl_pair.h:335:225: error: non-template ‘type’ used as template
  335 |       template<typename _U1, typename _U2, typename
      |                                                                                                                                                                                                                                 ^   
/usr/include/c++/9/bits/stl_pair.h:335:225: note: use ‘std::enable_if<(std::_PCC<true, _T1, _T2>::_MoveConstructiblePair<_U1, <expression error> >() && std::_PCC<true, _T1, _T2>::_ImplicitlyMoveConvertiblePair<_U1, <expression error> >()), bool>::template type’ to indicate that it is a template
/usr/include/c++/9/bits/stl_pair.h:340:2: error: ‘unnamed’ was not declared in this scope
  340 |                          bool>::type=true>
      |  ^      
/usr/include/c++/9/bits/stl_pair.h:341:63: error: ‘second’ is not a type
  341 |  constexpr pair(_U1&& __x, _U2&& __y)
      |                                                               ^     
/usr/include/c++/9/bits/stl_pair.h:341:89: error: expected unqualified-id before ‘(’ token
  341 |  constexpr pair(_U1&& __x, _U2&& __y)
      |                                                                                         ^
/usr/include/c++/9/bits/stl_pair.h:341:88: error: expected ‘)’ before ‘(’ token
  341 |  constexpr pair(_U1&& __x, _U2&& __y)
      |                                                                                        ^ 
      |                                                                                        )
/usr/include/c++/9/bits/stl_pair.h:341:89: error: expected ‘>’ before ‘(’ token
  341 |  constexpr pair(_U1&& __x, _U2&& __y)
      |                                                                                         ^
/usr/include/c++/9/bits/stl_pair.h:341:94: error: expected unqualified-id before ‘)’ token
  341 |  constexpr pair(_U1&& __x, _U2&& __y)
      |                                                                                              ^
/usr/include/c++/9/bits/stl_pair.h:344:86: error: parse error in template argument list
  344 |       template<typename _U1, typename _U2, typename
      |                                                                                      ^                                      
/usr/include/c++/9/bits/stl_pair.h:344:167: error: parse error in template argument list
  344 |       template<typename _U1, typename _U2, typename
      |                                                                                                                                                                       ^                                              
/usr/include/c++/9/bits/stl_pair.h:344:228: error: non-template ‘type’ used as template
  344 |       template<typename _U1, typename _U2, typename
      |                                                                                                                                                                                                                                    ^   
/usr/include/c++/9/bits/stl_pair.h:344:228: note: use ‘std::enable_if<(std::_PCC<true, _T1, _T2>::_MoveConstructiblePair<_U1, <expression error> >() && (! std::_PCC<true, _T1, _T2>::_ImplicitlyMoveConvertiblePair<_U1, <expression error> >())), bool>::template type’ to indicate that it is a template
/usr/include/c++/9/bits/stl_pair.h:349:2: error: ‘unnamed’ was not declared in this scope
  349 |                          bool>::type=false>
      |  ^      
/usr/include/c++/9/bits/stl_pair.h:350:63: error: ‘second’ is not a type
  350 |  explicit constexpr pair(_U1&& __x, _U2&& __y)
      |                                                               ^     
/usr/include/c++/9/bits/stl_pair.h:350:89: error: expected unqualified-id before ‘(’ token
  350 |  explicit constexpr pair(_U1&& __x, _U2&& __y)
      |                                                                                         ^
/usr/include/c++/9/bits/stl_pair.h:350:88: error: expected ‘)’ before ‘(’ token
  350 |  explicit constexpr pair(_U1&& __x, _U2&& __y)
      |                                                                                        ^ 
      |                                                                                        )
/usr/include/c++/9/bits/stl_pair.h:350:89: error: expected ‘>’ before ‘(’ token
  350 |  explicit constexpr pair(_U1&& __x, _U2&& __y)
      |                                                                                         ^
/usr/include/c++/9/bits/stl_pair.h:350:94: error: expected unqualified-id before ‘)’ token
  350 |  explicit constexpr pair(_U1&& __x, _U2&& __y)
      |                                                                                              ^
/usr/include/c++/9/bits/stl_pair.h:354:116: error: template argument 2 is invalid
  354 |       template<typename _U1, typename _U2, typename
      |                                                                                                                    ^ 
/usr/include/c++/9/bits/stl_pair.h:354:150: error: parse error in template argument list
  354 |       template<typename _U1, typename _U2, typename
      |                                                                                                                                                      ^                                      
/usr/include/c++/9/bits/stl_pair.h:354:259: error: template argument 2 is invalid
  354 |       template<typename _U1, typename _U2, typename
      |                                                                                                                                                                                                                                                                   ^ 
/usr/include/c++/9/bits/stl_pair.h:354:293: error: parse error in template argument list
  354 |       template<typename _U1, typename _U2, typename
      |                                                                                                                                                                                                                                                                                                     ^                                              
/usr/include/c++/9/bits/stl_pair.h:354:353: error: non-template ‘type’ used as template
  354 |       template<typename _U1, typename _U2, typename
      |                                                                                                                                                                                                                                                                                                                                                                 ^   
/usr/include/c++/9/bits/stl_pair.h:354:353: note: use ‘std::enable_if<(std::_PCC<((! std::is_same<_T1, _U1>::value) || <expression error>), _T1, _T2>::_MoveConstructiblePair<_U1, <expression error> >() && std::_PCC<((! std::is_same<_T1, _U1>::value) || <expression error>), _T1, _T2>::_ImplicitlyMoveConvertiblePair<_U1, <expression error> >()), bool>::template type’ to indicate that it is a template
/usr/include/c++/9/bits/stl_pair.h:359:2: error: ‘unnamed’ was not declared in this scope
  359 |                          bool>::type=true>
      |  ^      
/usr/include/c++/9/bits/stl_pair.h:360:78: error: ‘second’ is not a type
  360 |  constexpr pair(pair<_U1, _U2>&& __p)
      |                                                                              ^     
/usr/include/c++/9/bits/stl_pair.h:360:104: error: expected unqualified-id before ‘(’ token
  360 |  constexpr pair(pair<_U1, _U2>&& __p)
      |                                                                                                        ^
/usr/include/c++/9/bits/stl_pair.h:360:103: error: expected ‘)’ before ‘(’ token
  360 |  constexpr pair(pair<_U1, _U2>&& __p)
      |                                                                                                       ^ 
      |                                                                                                       )
/usr/include/c++/9/bits/stl_pair.h:360:104: error: expected ‘>’ before ‘(’ token
  360 |  constexpr pair(pair<_U1, _U2>&& __p)
      |                                                                                                        ^
/usr/include/c++/9/bits/stl_pair.h:360:118: error: expected unqualified-id before ‘)’ token
  360 |  constexpr pair(pair<_U1, _U2>&& __p)
      |                                                                                                                      ^
/usr/include/c++/9/bits/stl_pair.h:364:116: error: template argument 2 is invalid
  364 |       template<typename _U1, typename _U2, typename
      |                                                                                                                    ^ 
/usr/include/c++/9/bits/stl_pair.h:364:150: error: parse error in template argument list
  364 |       template<typename _U1, typename _U2, typename
      |                                                                                                                                                      ^                                      
/usr/include/c++/9/bits/stl_pair.h:364:261: error: template argument 2 is invalid
  364 |       template<typename _U1, typename _U2, typename
      |                                                                                                                                                                                                                                                                     ^ 
/usr/include/c++/9/bits/stl_pair.h:364:295: error: parse error in template argument list
  364 |       template<typename _U1, typename _U2, typename
      |                                                                                                                                                                                                                                                                                                       ^                                              
/usr/include/c++/9/bits/stl_pair.h:364:356: error: non-template ‘type’ used as template
  364 |       template<typename _U1, typename _U2, typename
      |                                                                                                                                                                                                                                                                                                                                                                    ^   
/usr/include/c++/9/bits/stl_pair.h:364:356: note: use ‘std::enable_if<(std::_PCC<((! std::is_same<_T1, _U1>::value) || <expression error>), _T1, _T2>::_MoveConstructiblePair<_U1, <expression error> >() && (! std::_PCC<((! std::is_same<_T1, _U1>::value) || <expression error>), _T1, _T2>::_ImplicitlyMoveConvertiblePair<_U1, <expression error> >())), bool>::template type’ to indicate that it is a template
/usr/include/c++/9/bits/stl_pair.h:369:2: error: ‘unnamed’ was not declared in this scope
  369 |                          bool>::type=false>
      |  ^      
/usr/include/c++/9/bits/stl_pair.h:370:78: error: ‘second’ is not a type
  370 |  explicit constexpr pair(pair<_U1, _U2>&& __p)
      |                                                                              ^     
/usr/include/c++/9/bits/stl_pair.h:370:104: error: expected unqualified-id before ‘(’ token
  370 |  explicit constexpr pair(pair<_U1, _U2>&& __p)
      |                                                                                                        ^
/usr/include/c++/9/bits/stl_pair.h:370:103: error: expected ‘)’ before ‘(’ token
  370 |  explicit constexpr pair(pair<_U1, _U2>&& __p)
      |                                                                                                       ^ 
      |                                                                                                       )
/usr/include/c++/9/bits/stl_pair.h:370:104: error: expected ‘>’ before ‘(’ token
  370 |  explicit constexpr pair(pair<_U1, _U2>&& __p)
      |                                                                                                        ^
/usr/include/c++/9/bits/stl_pair.h:370:118: error: expected unqualified-id before ‘)’ token
  370 |  explicit constexpr pair(pair<_U1, _U2>&& __p)
      |                                                                                                                      ^
/usr/include/c++/9/bits/hashtable_policy.h: In member function ‘std::pair<bool, long unsigned int> std::__detail::_Power2_rehash_policy::_M_need_rehash(std::size_t, std::size_t, std::size_t)’:
/usr/include/c++/9/bits/hashtable_policy.h:584:22: error: could not convert ‘std::make_pair<bool, int>(false, 0)’ from ‘pair<[...],int>’ to ‘pair<[...],long unsigned int>’
  584 |    return std::make_pair(false, 0);
      |        ~~~~~~~~~~~~~~^~~~~~~~~~
      |                      |
      |                      pair<[...],int>
/usr/include/c++/9/bits/hashtable_policy.h:587:22: error: could not convert ‘std::make_pair<bool, int>(false, 0)’ from ‘pair<[...],int>’ to ‘pair<[...],long unsigned int>’
  587 |  return std::make_pair(false, 0);
      |        ~~~~~~~~~~~~~~^~~~~~~~~~
      |                      |
      |                      pair<[...],int>
/usr/include/c++/9/bits/stl_pair.h: In instantiation of ‘constexpr std::pair<typename std::__decay_and_strip<_Tp>::__type, typename std::__decay_and_strip<_T2>::__type> std::make_pair(_T1&&, _T2&&) [with _T1 = long unsigned int&; _T2 = long unsigned int&; typename std::__decay_and_strip<_T2>::__type = long unsigned int; typename std::__decay_and_strip<_Tp>::__type = long unsigned int]’:
/usr/include/rmm/mr/device/cuda_memory_resource.hpp:116:44:   required from here
/usr/include/c++/9/bits/stl_pair.h:529:8: error: no matching function for call to ‘std::pair<long unsigned int, long unsigned int>::pair(long unsigned int&, long unsigned int&)’
  529 |       return __pair_type(std::forward<_T1>(__x), std::forward<_T2>(__y));
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/9/bits/stl_pair.h:434:1: note: candidate: ‘template<class ... _Args1, long unsigned int ..._Indexes1, class ... _Args2, long unsigned int ..._Indexes2> std::pair<_T1, _T2>::pair(std::tuple<_Args1 ...>&, std::tuple<_Args2 ...>&, std::_Index_tuple<_Indexes1 ...>, std::_Index_tuple<_Indexes2 ...>)’
  434 |       template<typename... _Args1, std::size_t... _Indexes1,
      | ^   
/usr/include/c++/9/bits/stl_pair.h:434:1: note:   template argument deduction/substitution failed:
/usr/include/c++/9/bits/stl_pair.h:529:8: note:   mismatched types ‘std::tuple<_Tps ...>’ and ‘long unsigned int’
  529 |       return __pair_type(std::forward<_T1>(__x), std::forward<_T2>(__y));
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/9/bits/stl_pair.h:374:52: note: candidate: ‘template<class ... _Args1, class ... _Args2> std::pair<_T1, _T2>::pair(std::piecewise_construct_t, std::tuple<_Args1 ...>, std::tuple<_Args2 ...>)’
  374 |       template<typename... _Args1, typename... _Args2>
      |                                                    ^~~ 
/usr/include/c++/9/bits/stl_pair.h:374:52: note:   template argument deduction/substitution failed:
/usr/include/c++/9/bits/stl_pair.h:529:8: note:   mismatched types ‘std::tuple<_Tps ...>’ and ‘long unsigned int’
  529 |       return __pair_type(std::forward<_T1>(__x), std::forward<_T2>(__y));
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/9/bits/stl_pair.h:304:11: note: candidate: ‘constexpr std::pair<_T1, _T2>::pair(std::pair<_T1, _T2>&&) [with _T1 = long unsigned int; _T2 = long unsigned int]’
  304 |       constexpr pair(pair&&) = default;
      |           ^~~~
/usr/include/c++/9/bits/stl_pair.h:304:11: note:   candidate expects 1 argument, 2 provided
/usr/include/c++/9/bits/stl_pair.h:303:11: note: candidate: ‘constexpr std::pair<_T1, _T2>::pair(const std::pair<_T1, _T2>&) [with _T1 = long unsigned int; _T2 = long unsigned int]’
  303 |       constexpr pair(const pair&) = default;
      |           ^~~~
/usr/include/c++/9/bits/stl_pair.h:303:11: note:   candidate expects 1 argument, 2 provided
/workspace/build-env/cpp/src/io/json/reader_impl.cu: In member function ‘std::pair<std::vector<std::__cxx11::basic_string<char> >, std::unique_ptr<concurrent_unordered_map<unsigned int, int>, std::function<void(concurrent_unordered_map<unsigned int, int>*)> > > cudf::io::detail::json::reader::impl::get_json_object_keys_hashes(cudf::device_span<const long unsigned int>, rmm::cuda_stream_view)’:
/workspace/build-env/cpp/src/io/json/reader_impl.cu:223:140: error: could not convert ‘{cudf::io::detail::json::create_key_strings(const char*, cudf::table_view, rmm::cuda_stream_view)(cudf::table::view() const(), stream), cudf::io::detail::json::create_col_names_hash_map(cudf::column_view, rmm::cuda_stream_view)(stream)}’ from ‘<brace-enclosed initializer list>’ to ‘std::pair<std::vector<std::__cxx11::basic_string<char> >, std::unique_ptr<concurrent_unordered_map<unsigned int, int>, std::function<void(concurrent_unordered_map<unsigned int, int>*)> > >’
  223 |   return {create_key_strings(uncomp_data_, sorted_info->view(), stream),
      |                                                                                                                                            ^
      |                                                                                                                                            |
      |                                                                                                                                            <brace-enclosed initializer list>
/workspace/build-env/cpp/src/io/json/reader_impl.cu: In member function ‘void cudf::io::detail::json::reader::impl::decompress_input(rmm::cuda_stream_view)’:
/workspace/build-env/cpp/src/io/json/reader_impl.cu:267:157: error: invalid initialization of reference of type ‘const std::vector<std::pair<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> > >&’ from expression of type ‘<brace-enclosed initializer list>’
  267 |   const auto compression_type =
      |                                                                                                                                                             ^
/workspace/build-env/cpp/src/io/utilities/parsing_utils.cuh:469:215: note: in passing argument 3 of ‘std::string cudf::io::infer_compression_type(const cudf::io::compression_type&, const string&, const std::vector<std::pair<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> > >&)’
  469 | std::string infer_compression_type(
      |                                                                                                                                                                                                                       ^              
/workspace/build-env/cpp/src/io/json/reader_impl.cu: In lambda function:
/workspace/build-env/cpp/src/io/json/reader_impl.cu:469:51: error: no matching function for call to ‘std::pair<std::basic_string_view<char>, std::basic_string_view<char> >::pair(<brace-enclosed initializer list>)’
  469 |       return std::pair{s.substr(0, i), s.substr(i + 1)};
      |                                                   ^
/usr/include/c++/9/bits/stl_pair.h:434:1: note: candidate: ‘template<class ... _Args1, long unsigned int ..._Indexes1, class ... _Args2, long unsigned int ..._Indexes2> std::pair<_T1, _T2>::pair(std::tuple<_Args1 ...>&, std::tuple<_Args2 ...>&, std::_Index_tuple<_Indexes1 ...>, std::_Index_tuple<_Indexes2 ...>)’
  434 |       template<typename... _Args1, std::size_t... _Indexes1,
      | ^   
/usr/include/c++/9/bits/stl_pair.h:434:1: note:   template argument deduction/substitution failed:
/workspace/build-env/cpp/src/io/json/reader_impl.cu:469:51: note:   ‘std::basic_string_view<char>’ is not derived from ‘std::tuple<_Tps ...>’
  469 |       return std::pair{s.substr(0, i), s.substr(i + 1)};
      |                                                   ^
/usr/include/c++/9/bits/stl_pair.h:374:52: note: candidate: ‘template<class ... _Args1, class ... _Args2> std::pair<_T1, _T2>::pair(std::piecewise_construct_t, std::tuple<_Args1 ...>, std::tuple<_Args2 ...>)’
  374 |       template<typename... _Args1, typename... _Args2>
      |                                                    ^~~ 
/usr/include/c++/9/bits/stl_pair.h:374:52: note:   template argument deduction/substitution failed:
/workspace/build-env/cpp/src/io/json/reader_impl.cu:469:51: note:   ‘std::basic_string_view<char>’ is not derived from ‘std::tuple<_Tps ...>’
  469 |       return std::pair{s.substr(0, i), s.substr(i + 1)};
      |                                                   ^
/usr/include/c++/9/bits/stl_pair.h:304:11: note: candidate: ‘constexpr std::pair<_T1, _T2>::pair(std::pair<_T1, _T2>&&) [with _T1 = std::basic_string_view<char>; _T2 = std::basic_string_view<char>]’
  304 |       constexpr pair(pair&&) = default;
      |           ^~~~
/usr/include/c++/9/bits/stl_pair.h:304:11: note:   candidate expects 1 argument, 2 provided
/usr/include/c++/9/bits/stl_pair.h:303:11: note: candidate: ‘constexpr std::pair<_T1, _T2>::pair(const std::pair<_T1, _T2>&) [with _T1 = std::basic_string_view<char>; _T2 = std::basic_string_view<char>]’
  303 |       constexpr pair(const pair&) = default;
      |           ^~~~
/usr/include/c++/9/bits/stl_pair.h:303:11: note:   candidate expects 1 argument, 2 provided
/usr/include/c++/9/bits/stl_pair.h: In instantiation of ‘constexpr std::pair<typename std::__decay_and_strip<_Tp>::__type, typename std::__decay_and_strip<_T2>::__type> std::make_pair(_T1&&, _T2&&) [with _T1 = bool; _T2 = long unsigned int; typename std::__decay_and_strip<_T2>::__type = long unsigned int; typename std::__decay_and_strip<_Tp>::__type = bool]’:
/usr/include/c++/9/bits/hashtable_policy.h:578:136:   required from here
/usr/include/c++/9/bits/stl_pair.h:529:8: error: no matching function for call to ‘std::pair<bool, long unsigned int>::pair(bool, long unsigned int)’
  529 |       return __pair_type(std::forward<_T1>(__x), std::forward<_T2>(__y));
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/9/bits/stl_pair.h:434:1: note: candidate: ‘template<class ... _Args1, long unsigned int ..._Indexes1, class ... _Args2, long unsigned int ..._Indexes2> std::pair<_T1, _T2>::pair(std::tuple<_Args1 ...>&, std::tuple<_Args2 ...>&, std::_Index_tuple<_Indexes1 ...>, std::_Index_tuple<_Indexes2 ...>)’
  434 |       template<typename... _Args1, std::size_t... _Indexes1,
      | ^   
/usr/include/c++/9/bits/stl_pair.h:434:1: note:   template argument deduction/substitution failed:
/usr/include/c++/9/bits/stl_pair.h:529:8: note:   mismatched types ‘std::tuple<_Tps ...>’ and ‘bool’
  529 |       return __pair_type(std::forward<_T1>(__x), std::forward<_T2>(__y));
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/9/bits/stl_pair.h:374:52: note: candidate: ‘template<class ... _Args1, class ... _Args2> std::pair<_T1, _T2>::pair(std::piecewise_construct_t, std::tuple<_Args1 ...>, std::tuple<_Args2 ...>)’
  374 |       template<typename... _Args1, typename... _Args2>
      |                                                    ^~~ 
/usr/include/c++/9/bits/stl_pair.h:374:52: note:   template argument deduction/substitution failed:
/usr/include/c++/9/bits/stl_pair.h:529:8: note:   mismatched types ‘std::tuple<_Tps ...>’ and ‘long unsigned int’
  529 |       return __pair_type(std::forward<_T1>(__x), std::forward<_T2>(__y));
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/9/bits/stl_pair.h:304:11: note: candidate: ‘constexpr std::pair<_T1, _T2>::pair(std::pair<_T1, _T2>&&) [with _T1 = bool; _T2 = long unsigned int]’
  304 |       constexpr pair(pair&&) = default;
      |           ^~~~
/usr/include/c++/9/bits/stl_pair.h:304:11: note:   candidate expects 1 argument, 2 provided
/usr/include/c++/9/bits/stl_pair.h:303:11: note: candidate: ‘constexpr std::pair<_T1, _T2>::pair(const std::pair<_T1, _T2>&) [with _T1 = bool; _T2 = long unsigned int]’
  303 |       constexpr pair(const pair&) = default;
      |           ^~~~
/usr/include/c++/9/bits/stl_pair.h:303:11: note:   candidate expects 1 argument, 2 provided
/usr/include/c++/9/bits/stl_pair.h: In instantiation of ‘constexpr std::pair<typename std::__decay_and_strip<_Tp>::__type, typename std::__decay_and_strip<_T2>::__type> std::make_pair(_T1&&, _T2&&) [with _T1 = bool; _T2 = int; typename std::__decay_and_strip<_T2>::__type = int; typename std::__decay_and_strip<_Tp>::__type = bool]’:
/usr/include/c++/9/bits/hashtable_policy.h:584:31:   required from here
/usr/include/c++/9/bits/stl_pair.h:529:8: error: no matching function for call to ‘std::pair<bool, int>::pair(bool, int)’
  529 |       return __pair_type(std::forward<_T1>(__x), std::forward<_T2>(__y));
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/9/bits/stl_pair.h:434:1: note: candidate: ‘template<class ... _Args1, long unsigned int ..._Indexes1, class ... _Args2, long unsigned int ..._Indexes2> std::pair<_T1, _T2>::pair(std::tuple<_Args1 ...>&, std::tuple<_Args2 ...>&, std::_Index_tuple<_Indexes1 ...>, std::_Index_tuple<_Indexes2 ...>)’
  434 |       template<typename... _Args1, std::size_t... _Indexes1,
      | ^   
/usr/include/c++/9/bits/stl_pair.h:434:1: note:   template argument deduction/substitution failed:
/usr/include/c++/9/bits/stl_pair.h:529:8: note:   mismatched types ‘std::tuple<_Tps ...>’ and ‘bool’
  529 |       return __pair_type(std::forward<_T1>(__x), std::forward<_T2>(__y));
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/9/bits/stl_pair.h:374:52: note: candidate: ‘template<class ... _Args1, class ... _Args2> std::pair<_T1, _T2>::pair(std::piecewise_construct_t, std::tuple<_Args1 ...>, std::tuple<_Args2 ...>)’
  374 |       template<typename... _Args1, typename... _Args2>
      |                                                    ^~~ 
/usr/include/c++/9/bits/stl_pair.h:374:52: note:   template argument deduction/substitution failed:
/usr/include/c++/9/bits/stl_pair.h:529:8: note:   mismatched types ‘std::tuple<_Tps ...>’ and ‘int’
  529 |       return __pair_type(std::forward<_T1>(__x), std::forward<_T2>(__y));
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/9/bits/stl_pair.h:304:11: note: candidate: ‘constexpr std::pair<_T1, _T2>::pair(std::pair<_T1, _T2>&&) [with _T1 = bool; _T2 = int]’
  304 |       constexpr pair(pair&&) = default;
      |           ^~~~
/usr/include/c++/9/bits/stl_pair.h:304:11: note:   candidate expects 1 argument, 2 provided
/usr/include/c++/9/bits/stl_pair.h:303:11: note: candidate: ‘constexpr std::pair<_T1, _T2>::pair(const std::pair<_T1, _T2>&) [with _T1 = bool; _T2 = int]’
  303 |       constexpr pair(const pair&) = default;
      |           ^~~~
/usr/include/c++/9/bits/stl_pair.h:303:11: note:   candidate expects 1 argument, 2 provided
/workspace/build-env/cpp/src/io/json/reader_impl.cu: In instantiation of ‘cudf::io::detail::json::reader::impl::set_data_types(cudf::device_span<const long unsigned int>, rmm::cuda_stream_view)::<lambda(const auto:11&)> [with auto:11 = std::__cxx11::basic_string<char>]’:
/usr/include/c++/9/bits/stl_algo.h:4337:25:   required from ‘_OIter std::transform(_IIter, _IIter, _OIter, _UnaryOperation) [with _IIter = __gnu_cxx::__normal_iterator<const std::__cxx11::basic_string<char>*, std::vector<std::__cxx11::basic_string<char> > >; _OIter = std::insert_iterator<std::map<std::__cxx11::basic_string<char>, cudf::data_type> >; _UnaryOperation = cudf::io::detail::json::reader::impl::set_data_types(cudf::device_span<const long unsigned int>, rmm::cuda_stream_view)::<lambda(const auto:11&)>]’
/workspace/build-env/cpp/src/io/json/reader_impl.cu:481:3:   required from here
/workspace/build-env/cpp/src/io/json/reader_impl.cu:479:12: error: ‘const void <structured bindings>’ has incomplete type
  479 |           auto const [col_name, type_str] = split_on_colon(ts);
      |            ^~~~~~~~~~~~~~~~~~~~
/workspace/build-env/cpp/src/io/json/reader_impl.cu:480:87: error: no matching function for call to ‘std::__cxx11::basic_string<char>::basic_string(<brace-enclosed initializer list>)’
  480 |           return std::pair{std::string{col_name}, convert_string_to_dtype(std::string{type_str})};
      |                                                                                       ^
/usr/include/c++/9/bits/basic_string.h:650:1: note: candidate: ‘template<class _Tp, class> std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _Tp&, const _Alloc&)’
  650 |  basic_string(const _Tp& __t, const _Alloc& __a = _Alloc())
      | ^~~~~~~~~~~~
/usr/include/c++/9/bits/basic_string.h:650:1: note:   template argument deduction/substitution failed:
/usr/include/c++/9/bits/basic_string.h:639:1: note: candidate: ‘template<class _Tp, class> std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _Tp&, std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::size_type, std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::size_type, const _Alloc&)’
  639 |  basic_string(const _Tp& __t, size_type __pos, size_type __n,
      | ^~~~~~~~~~~~
/usr/include/c++/9/bits/basic_string.h:639:1: note:   template argument deduction/substitution failed:
/usr/include/c++/9/bits/basic_string.h:625:1: note: candidate: ‘template<class _InputIterator, class> std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(_InputIterator, _InputIterator, const _Alloc&)’
  625 |         basic_string(_InputIterator __beg, _InputIterator __end,
      | ^       ~~~~
/usr/include/c++/9/bits/basic_string.h:625:1: note:   template argument deduction/substitution failed:
/usr/include/c++/9/bits/basic_string.h:587:1: note: candidate: ‘std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&&, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]’
  587 |       basic_string(basic_string&& __str, const _Alloc& __a)
      | ^     ~~~~~~
/usr/include/c++/9/bits/basic_string.h:587:1: note:   candidate expects 2 arguments, 1 provided
/usr/include/c++/9/bits/basic_string.h:583:1: note: candidate: ‘std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]’
  583 |       basic_string(const basic_string& __str, const _Alloc& __a)
      | ^     ~~~~~~
/usr/include/c++/9/bits/basic_string.h:583:1: note:   candidate expects 2 arguments, 1 provided
/usr/include/c++/9/bits/basic_string.h:579:1: note: candidate: ‘std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(std::initializer_list<_Tp>, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]’
  579 |       basic_string(initializer_list<_CharT> __l, const _Alloc& __a = _Alloc())
      | ^     ~~~~~~
/usr/include/c++/9/bits/basic_string.h:579:1: note:   conversion of argument 1 would be ill-formed:
/usr/include/c++/9/bits/basic_string.h:552:1: note: candidate: ‘std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]’
  552 |       basic_string(basic_string&& __str) noexcept
      | ^     ~~~~~~
/usr/include/c++/9/bits/basic_string.h:552:1: note:   conversion of argument 1 would be ill-formed:
/usr/include/c++/9/bits/basic_string.h:540:1: note: candidate: ‘template<class> std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::size_type, _CharT, const _Alloc&)’
  540 |       basic_string(size_type __n, _CharT __c, const _Alloc& __a = _Alloc())
      | ^     ~~~~~~
/usr/include/c++/9/bits/basic_string.h:540:1: note:   template argument deduction/substitution failed:
/workspace/build-env/cpp/src/io/json/reader_impl.cu:480:87: note:   candidate expects 3 arguments, 1 provided
  480 |           return std::pair{std::string{col_name}, convert_string_to_dtype(std::string{type_str})};
      |                                                                                       ^
/usr/include/c++/9/bits/basic_string.h:525:1: note: candidate: ‘template<class> std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _CharT*, const _Alloc&)’
  525 |       basic_string(const _CharT* __s, const _Alloc& __a = _Alloc())
      | ^     ~~~~~~
/usr/include/c++/9/bits/basic_string.h:525:1: note:   template argument deduction/substitution failed:
/workspace/build-env/cpp/src/io/json/reader_impl.cu:480:30: note:   cannot convert ‘col_name’ (type ‘<type error>’) to type ‘const char*’
  480 |           return std::pair{std::string{col_name}, convert_string_to_dtype(std::string{type_str})};
      |                              ^~~~~~~~
/usr/include/c++/9/bits/basic_string.h:510:1: note: candidate: ‘std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _CharT*, std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::size_type, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::size_type = long unsigned int]’
  510 |       basic_string(const _CharT* __s, size_type __n,
      | ^     ~~~~~~
/usr/include/c++/9/bits/basic_string.h:510:1: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/9/bits/basic_string.h:492:1: note: candidate: ‘std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::size_type, std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::size_type, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::size_type = long unsigned int]’
  492 |       basic_string(const basic_string& __str, size_type __pos,
      | ^     ~~~~~~
/usr/include/c++/9/bits/basic_string.h:492:1: note:   candidate expects 4 arguments, 1 provided
/usr/include/c++/9/bits/basic_string.h:476:1: note: candidate: ‘std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::size_type, std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::size_type) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::size_type = long unsigned int]’
  476 |       basic_string(const basic_string& __str, size_type __pos,
      | ^     ~~~~~~
/usr/include/c++/9/bits/basic_string.h:476:1: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/9/bits/basic_string.h:461:1: note: candidate: ‘std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::size_type, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::size_type = long unsigned int]’
  461 |       basic_string(const basic_string& __str, size_type __pos,
      | ^     ~~~~~~
/usr/include/c++/9/bits/basic_string.h:461:1: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/9/bits/basic_string.h:448:1: note: candidate: ‘std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]’
  448 |       basic_string(const basic_string& __str)
      | ^     ~~~~~~
/usr/include/c++/9/bits/basic_string.h:448:1: note:   conversion of argument 1 would be ill-formed:
/usr/include/c++/9/bits/basic_string.h:440:10: note: candidate: ‘std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]’
  440 |       basic_string(const _Alloc& __a) _GLIBCXX_NOEXCEPT
      |          ^~~~~~~~~~~~
/usr/include/c++/9/bits/basic_string.h:440:10: note:   conversion of argument 1 would be ill-formed:
/usr/include/c++/9/bits/basic_string.h:431:9: note: candidate: ‘std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string() [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]’
  431 |       basic_string()
      |         ^~~~~~~~~~~~
/usr/include/c++/9/bits/basic_string.h:431:9: note:   candidate expects 0 arguments, 1 provided
/usr/include/c++/9/bits/basic_string.h:145:10: note: candidate: ‘std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::__sv_wrapper, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>’
  145 |       basic_string(__sv_wrapper __svw, const _Alloc& __a)
      |          ^~~~~~~~~~~~
/usr/include/c++/9/bits/basic_string.h:145:10: note:   candidate expects 2 arguments, 1 provided
/workspace/build-env/cpp/src/io/json/reader_impl.cu:480:64: error: no matching function for call to ‘std::__cxx11::basic_string<char>::basic_string(<brace-enclosed initializer list>)’
  480 |           return std::pair{std::string{col_name}, convert_string_to_dtype(std::string{type_str})};
      |                                         ~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/9/bits/basic_string.h:650:1: note: candidate: ‘template<class _Tp, class> std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _Tp&, const _Alloc&)’
  650 |  basic_string(const _Tp& __t, const _Alloc& __a = _Alloc())
      | ^~~~~~~~~~~~
/usr/include/c++/9/bits/basic_string.h:650:1: note:   template argument deduction/substitution failed:
/usr/include/c++/9/bits/basic_string.h:639:1: note: candidate: ‘template<class _Tp, class> std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _Tp&, std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::size_type, std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::size_type, const _Alloc&)’
  639 |  basic_string(const _Tp& __t, size_type __pos, size_type __n,
      | ^~~~~~~~~~~~
/usr/include/c++/9/bits/basic_string.h:639:1: note:   template argument deduction/substitution failed:
/usr/include/c++/9/bits/basic_string.h:625:1: note: candidate: ‘template<class _InputIterator, class> std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(_InputIterator, _InputIterator, const _Alloc&)’
  625 |         basic_string(_InputIterator __beg, _InputIterator __end,
      | ^       ~~~~
/usr/include/c++/9/bits/basic_string.h:625:1: note:   template argument deduction/substitution failed:
/usr/include/c++/9/bits/basic_string.h:587:1: note: candidate: ‘std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&&, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]’
  587 |       basic_string(basic_string&& __str, const _Alloc& __a)
      | ^     ~~~~~~
/usr/include/c++/9/bits/basic_string.h:587:1: note:   candidate expects 2 arguments, 1 provided
/usr/include/c++/9/bits/basic_string.h:583:1: note: candidate: ‘std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]’
  583 |       basic_string(const basic_string& __str, const _Alloc& __a)
      | ^     ~~~~~~
/usr/include/c++/9/bits/basic_string.h:583:1: note:   candidate expects 2 arguments, 1 provided
/usr/include/c++/9/bits/basic_string.h:579:1: note: candidate: ‘std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(std::initializer_list<_Tp>, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]’
  579 |       basic_string(initializer_list<_CharT> __l, const _Alloc& __a = _Alloc())
      | ^     ~~~~~~
/usr/include/c++/9/bits/basic_string.h:579:1: note:   conversion of argument 1 would be ill-formed:
/usr/include/c++/9/bits/basic_string.h:552:1: note: candidate: ‘std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]’
  552 |       basic_string(basic_string&& __str) noexcept
      | ^     ~~~~~~
/usr/include/c++/9/bits/basic_string.h:552:1: note:   conversion of argument 1 would be ill-formed:
/usr/include/c++/9/bits/basic_string.h:540:1: note: candidate: ‘template<class> std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::size_type, _CharT, const _Alloc&)’
  540 |       basic_string(size_type __n, _CharT __c, const _Alloc& __a = _Alloc())
      | ^     ~~~~~~
/usr/include/c++/9/bits/basic_string.h:540:1: note:   template argument deduction/substitution failed:
/workspace/build-env/cpp/src/io/json/reader_impl.cu:480:64: note:   candidate expects 3 arguments, 1 provided
  480 |           return std::pair{std::string{col_name}, convert_string_to_dtype(std::string{type_str})};
      |                                         ~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/9/bits/basic_string.h:525:1: note: candidate: ‘template<class> std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _CharT*, const _Alloc&)’
  525 |       basic_string(const _CharT* __s, const _Alloc& __a = _Alloc())
      | ^     ~~~~~~
/usr/include/c++/9/bits/basic_string.h:525:1: note:   template argument deduction/substitution failed:
/workspace/build-env/cpp/src/io/json/reader_impl.cu:480:77: note:   cannot convert ‘type_str’ (type ‘<type error>’) to type ‘const char*’
  480 |           return std::pair{std::string{col_name}, convert_string_to_dtype(std::string{type_str})};
      |                                                                             ^~~~~~~~
/usr/include/c++/9/bits/basic_string.h:510:1: note: candidate: ‘std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _CharT*, std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::size_type, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::size_type = long unsigned int]’
  510 |       basic_string(const _CharT* __s, size_type __n,
      | ^     ~~~~~~
/usr/include/c++/9/bits/basic_string.h:510:1: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/9/bits/basic_string.h:492:1: note: candidate: ‘std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::size_type, std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::size_type, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::size_type = long unsigned int]’
  492 |       basic_string(const basic_string& __str, size_type __pos,
      | ^     ~~~~~~
/usr/include/c++/9/bits/basic_string.h:492:1: note:   candidate expects 4 arguments, 1 provided
/usr/include/c++/9/bits/basic_string.h:476:1: note: candidate: ‘std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::size_type, std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::size_type) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::size_type = long unsigned int]’
  476 |       basic_string(const basic_string& __str, size_type __pos,
      | ^     ~~~~~~
/usr/include/c++/9/bits/basic_string.h:476:1: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/9/bits/basic_string.h:461:1: note: candidate: ‘std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::size_type, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::size_type = long unsigned int]’
  461 |       basic_string(const basic_string& __str, size_type __pos,
      | ^     ~~~~~~
/usr/include/c++/9/bits/basic_string.h:461:1: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/9/bits/basic_string.h:448:1: note: candidate: ‘std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]’
  448 |       basic_string(const basic_string& __str)
      | ^     ~~~~~~
/usr/include/c++/9/bits/basic_string.h:448:1: note:   conversion of argument 1 would be ill-formed:
/usr/include/c++/9/bits/basic_string.h:440:10: note: candidate: ‘std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]’
  440 |       basic_string(const _Alloc& __a) _GLIBCXX_NOEXCEPT
      |          ^~~~~~~~~~~~
/usr/include/c++/9/bits/basic_string.h:440:10: note:   conversion of argument 1 would be ill-formed:
/usr/include/c++/9/bits/basic_string.h:431:9: note: candidate: ‘std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string() [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]’
  431 |       basic_string()
      |         ^~~~~~~~~~~~
/usr/include/c++/9/bits/basic_string.h:431:9: note:   candidate expects 0 arguments, 1 provided
/usr/include/c++/9/bits/basic_string.h:145:10: note: candidate: ‘std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::__sv_wrapper, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>’
  145 |       basic_string(__sv_wrapper __svw, const _Alloc& __a)
      |          ^~~~~~~~~~~~
/usr/include/c++/9/bits/basic_string.h:145:10: note:   candidate expects 2 arguments, 1 provided
/workspace/build-env/cpp/src/io/json/reader_impl.cu:480:87: error: no matching function for call to ‘std::pair<std::__cxx11::basic_string<char>, cudf::data_type>::pair(<brace-enclosed initializer list>)’
  480 |           return std::pair{std::string{col_name}, convert_string_to_dtype(std::string{type_str})};
      |                                                                                       ^
/usr/include/c++/9/bits/stl_pair.h:434:1: note: candidate: ‘template<class ... _Args1, long unsigned int ..._Indexes1, class ... _Args2, long unsigned int ..._Indexes2> std::pair<_T1, _T2>::pair(std::tuple<_Args1 ...>&, std::tuple<_Args2 ...>&, std::_Index_tuple<_Indexes1 ...>, std::_Index_tuple<_Indexes2 ...>)’
  434 |       template<typename... _Args1, std::size_t... _Indexes1,
      | ^   
/usr/include/c++/9/bits/stl_pair.h:434:1: note:   template argument deduction/substitution failed:
/usr/include/c++/9/bits/stl_pair.h:374:52: note: candidate: ‘template<class ... _Args1, class ... _Args2> std::pair<_T1, _T2>::pair(std::piecewise_construct_t, std::tuple<_Args1 ...>, std::tuple<_Args2 ...>)’
  374 |       template<typename... _Args1, typename... _Args2>
      |                                                    ^~~ 
/usr/include/c++/9/bits/stl_pair.h:374:52: note:   template argument deduction/substitution failed:
/usr/include/c++/9/bits/stl_pair.h:304:11: note: candidate: ‘std::pair<_T1, _T2>::pair(std::pair<_T1, _T2>&&) [with _T1 = std::__cxx11::basic_string<char>; _T2 = cudf::data_type]’
  304 |       constexpr pair(pair&&) = default;
      |           ^~~~
/usr/include/c++/9/bits/stl_pair.h:304:11: note:   candidate expects 1 argument, 2 provided
/usr/include/c++/9/bits/stl_pair.h:303:11: note: candidate: ‘std::pair<_T1, _T2>::pair(const std::pair<_T1, _T2>&) [with _T1 = std::__cxx11::basic_string<char>; _T2 = cudf::data_type]’
  303 |       constexpr pair(const pair&) = default;
      |           ^~~~
/usr/include/c++/9/bits/stl_pair.h:303:11: note:   candidate expects 1 argument, 2 provided
/usr/include/c++/9/bits/stl_algo.h: In instantiation of ‘_OIter std::transform(_IIter, _IIter, _OIter, _UnaryOperation) [with _IIter = __gnu_cxx::__normal_iterator<const std::__cxx11::basic_string<char>*, std::vector<std::__cxx11::basic_string<char> > >; _OIter = std::insert_iterator<std::map<std::__cxx11::basic_string<char>, cudf::data_type> >; _UnaryOperation = cudf::io::detail::json::reader::impl::set_data_types(cudf::device_span<const long unsigned int>, rmm::cuda_stream_view)::<lambda(const auto:11&)>]’:
/workspace/build-env/cpp/src/io/json/reader_impl.cu:481:3:   required from here
/usr/include/c++/9/bits/stl_algo.h:4337:13: error: no match for ‘operator=’ (operand types are ‘std::insert_iterator<std::map<std::__cxx11::basic_string<char>, cudf::data_type> >’ and ‘void’)
 4337 |  *__result = __unary_op(*__first);
      |  ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/9/bits/stl_iterator.h:716:18: note: candidate: ‘std::insert_iterator<_Container>& std::insert_iterator<_Container>::operator=(const typename _Container::value_type&) [with _Container = std::map<std::__cxx11::basic_string<char>, cudf::data_type>; typename _Container::value_type = std::pair<const std::__cxx11::basic_string<char>, cudf::data_type>]’
  716 |       operator=(const typename _Container::value_type& __value)
      |                  ^~~~~~~~
/usr/include/c++/9/bits/stl_iterator.h:716:67: note:   no known conversion for argument 1 from ‘void’ to ‘const value_type&’ {aka ‘const std::pair<const std::__cxx11::basic_string<char>, cudf::data_type>&’}
  716 |       operator=(const typename _Container::value_type& __value)
      |                            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   ^      
/usr/include/c++/9/bits/stl_iterator.h:724:18: note: candidate: ‘std::insert_iterator<_Container>& std::insert_iterator<_Container>::operator=(typename _Container::value_type&&) [with _Container = std::map<std::__cxx11::basic_string<char>, cudf::data_type>; typename _Container::value_type = std::pair<const std::__cxx11::basic_string<char>, cudf::data_type>]’
  724 |       operator=(typename _Container::value_type&& __value)
      |                  ^~~~~~~~
/usr/include/c++/9/bits/stl_iterator.h:724:62: note:   no known conversion for argument 1 from ‘void’ to ‘std::map<std::__cxx11::basic_string<char>, cudf::data_type>::value_type&&’ {aka ‘std::pair<const std::__cxx11::basic_string<char>, cudf::data_type>&&’}
  724 |       operator=(typename _Container::value_type&& __value)
      |                            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   ^      
/usr/include/c++/9/bits/stl_iterator.h:665:7: note: candidate: ‘constexpr std::insert_iterator<std::map<std::__cxx11::basic_string<char>, cudf::data_type> >& std::insert_iterator<std::map<std::__cxx11::basic_string<char>, cudf::data_type> >::operator=(const std::insert_iterator<std::map<std::__cxx11::basic_string<char>, cudf::data_type> >&)’
  665 |     class insert_iterator
      |       ^~~~~~~~~~~~~~~
/usr/include/c++/9/bits/stl_iterator.h:665:7: note:   no known conversion for argument 1 from ‘void’ to ‘const std::insert_iterator<std::map<std::__cxx11::basic_string<char>, cudf::data_type> >&’
/usr/include/c++/9/bits/stl_iterator.h:665:7: note: candidate: ‘constexpr std::insert_iterator<std::map<std::__cxx11::basic_string<char>, cudf::data_type> >& std::insert_iterator<std::map<std::__cxx11::basic_string<char>, cudf::data_type> >::operator=(std::insert_iterator<std::map<std::__cxx11::basic_string<char>, cudf::data_type> >&&)’
/usr/include/c++/9/bits/stl_iterator.h:665:7: note:   no known conversion for argument 1 from ‘void’ to ‘std::insert_iterator<std::map<std::__cxx11::basic_string<char>, cudf::data_type> >&&’
/usr/include/c++/9/bits/stl_tree.h: In instantiation of ‘std::pair<std::_Rb_tree_node_base*, std::_Rb_tree_node_base*> std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_M_get_insert_hint_unique_pos(std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::const_iterator, const key_type&) [with _Key = int; _Val = std::pair<const int, rmm::mr::device_memory_resource*>; _KeyOfValue = std::_Select1st<std::pair<const int, rmm::mr::device_memory_resource*> >; _Compare = std::less<int>; _Alloc = std::allocator<std::pair<const int, rmm::mr::device_memory_resource*> >; std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::const_iterator = std::_Rb_tree_const_iterator<std::pair<const int, rmm::mr::device_memory_resource*> >; std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::key_type = int]’:
/usr/include/c++/9/bits/stl_tree.h:2459:14:   required from ‘std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_M_emplace_hint_unique(std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::const_iterator, _Args&& ...) [with _Args = {const std::piecewise_construct_t&, std::tuple<int&&>, std::tuple<>}; _Key = int; _Val = std::pair<const int, rmm::mr::device_memory_resource*>; _KeyOfValue = std::_Select1st<std::pair<const int, rmm::mr::device_memory_resource*> >; _Compare = std::less<int>; _Alloc = std::allocator<std::pair<const int, rmm::mr::device_memory_resource*> >; std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator = std::_Rb_tree_iterator<std::pair<const int, rmm::mr::device_memory_resource*> >; std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::const_iterator = std::_Rb_tree_const_iterator<std::pair<const int, rmm::mr::device_memory_resource*> >]’
/usr/include/c++/9/bits/stl_map.h:518:5:   required from ‘std::map<_Key, _Tp, _Compare, _Alloc>::mapped_type& std::map<_Key, _Tp, _Compare, _Alloc>::operator[](std::map<_Key, _Tp, _Compare, _Alloc>::key_type&&) [with _Key = int; _Tp = rmm::mr::device_memory_resource*; _Compare = std::less<int>; _Alloc = std::allocator<std::pair<const int, rmm::mr::device_memory_resource*> >; std::map<_Key, _Tp, _Compare, _Alloc>::mapped_type = rmm::mr::device_memory_resource*; std::map<_Key, _Tp, _Compare, _Alloc>::key_type = int]’
/usr/include/rmm/mr/device/per_device_resource.hpp:133:47:   required from here
/usr/include/c++/9/bits/stl_tree.h:2199:8: error: no matching function for call to ‘std::pair<std::_Rb_tree_node_base*, std::_Rb_tree_node_base*>::pair(int, std::_Rb_tree_node_base*&)’
 2199 |      return _Res(0, _M_rightmost());
      |        ^~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/9/bits/stl_pair.h:434:1: note: candidate: ‘template<class ... _Args1, long unsigned int ..._Indexes1, class ... _Args2, long unsigned int ..._Indexes2> std::pair<_T1, _T2>::pair(std::tuple<_Args1 ...>&, std::tuple<_Args2 ...>&, std::_Index_tuple<_Indexes1 ...>, std::_Index_tuple<_Indexes2 ...>)’
  434 |       template<typename... _Args1, std::size_t... _Indexes1,
      | ^   
/usr/include/c++/9/bits/stl_pair.h:434:1: note:   template argument deduction/substitution failed:
/usr/include/c++/9/bits/stl_tree.h:2199:8: note:   mismatched types ‘std::tuple<_Tps ...>’ and ‘int’
 2199 |      return _Res(0, _M_rightmost());
      |        ^~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/9/bits/stl_pair.h:374:52: note: candidate: ‘template<class ... _Args1, class ... _Args2> std::pair<_T1, _T2>::pair(std::piecewise_construct_t, std::tuple<_Args1 ...>, std::tuple<_Args2 ...>)’
  374 |       template<typename... _Args1, typename... _Args2>
      |                                                    ^~~ 
/usr/include/c++/9/bits/stl_pair.h:374:52: note:   template argument deduction/substitution failed:
/usr/include/c++/9/bits/stl_tree.h:2199:8: note:   mismatched types ‘std::tuple<_Tps ...>’ and ‘std::_Rb_tree_node_base*’
 2199 |      return _Res(0, _M_rightmost());
      |        ^~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/9/bits/stl_pair.h:304:11: note: candidate: ‘constexpr std::pair<_T1, _T2>::pair(std::pair<_T1, _T2>&&) [with _T1 = std::_Rb_tree_node_base*; _T2 = std::_Rb_tree_node_base*]’
  304 |       constexpr pair(pair&&) = default;
      |           ^~~~
/usr/include/c++/9/bits/stl_pair.h:304:11: note:   candidate expects 1 argument, 2 provided
/usr/include/c++/9/bits/stl_pair.h:303:11: note: candidate: ‘constexpr std::pair<_T1, _T2>::pair(const std::pair<_T1, _T2>&) [with _T1 = std::_Rb_tree_node_base*; _T2 = std::_Rb_tree_node_base*]’
  303 |       constexpr pair(const pair&) = default;
      |           ^~~~
/usr/include/c++/9/bits/stl_pair.h:303:11: note:   candidate expects 1 argument, 2 provided
/usr/include/c++/9/bits/stl_tree.h:2208:8: error: no matching function for call to ‘std::pair<std::_Rb_tree_node_base*, std::_Rb_tree_node_base*>::pair(std::_Rb_tree_node_base*&, std::_Rb_tree_node_base*&)’
 2208 |      return _Res(_M_leftmost(), _M_leftmost());
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/9/bits/stl_pair.h:434:1: note: candidate: ‘template<class ... _Args1, long unsigned int ..._Indexes1, class ... _Args2, long unsigned int ..._Indexes2> std::pair<_T1, _T2>::pair(std::tuple<_Args1 ...>&, std::tuple<_Args2 ...>&, std::_Index_tuple<_Indexes1 ...>, std::_Index_tuple<_Indexes2 ...>)’
  434 |       template<typename... _Args1, std::size_t... _Indexes1,
      | ^   
/usr/include/c++/9/bits/stl_pair.h:434:1: note:   template argument deduction/substitution failed:
/usr/include/c++/9/bits/stl_tree.h:2208:8: note:   mismatched types ‘std::tuple<_Tps ...>’ and ‘std::_Rb_tree<int, std::pair<const int, rmm::mr::device_memory_resource*>, std::_Select1st<std::pair<const int, rmm::mr::device_memory_resource*> >, std::less<int>, std::allocator<std::pair<const int, rmm::mr::device_memory_resource*> > >::_Base_ptr’ {aka ‘std::_Rb_tree_node_base*’}
 2208 |      return _Res(_M_leftmost(), _M_leftmost());
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/9/bits/stl_pair.h:374:52: note: candidate: ‘template<class ... _Args1, class ... _Args2> std::pair<_T1, _T2>::pair(std::piecewise_construct_t, std::tuple<_Args1 ...>, std::tuple<_Args2 ...>)’
  374 |       template<typename... _Args1, typename... _Args2>
      |                                                    ^~~ 
/usr/include/c++/9/bits/stl_pair.h:374:52: note:   template argument deduction/substitution failed:
/usr/include/c++/9/bits/stl_tree.h:2208:8: note:   mismatched types ‘std::tuple<_Tps ...>’ and ‘std::_Rb_tree_node_base*’
 2208 |      return _Res(_M_leftmost(), _M_leftmost());
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/9/bits/stl_pair.h:304:11: note: candidate: ‘constexpr std::pair<_T1, _T2>::pair(std::pair<_T1, _T2>&&) [with _T1 = std::_Rb_tree_node_base*; _T2 = std::_Rb_tree_node_base*]’
  304 |       constexpr pair(pair&&) = default;
      |           ^~~~
/usr/include/c++/9/bits/stl_pair.h:304:11: note:   candidate expects 1 argument, 2 provided
/usr/include/c++/9/bits/stl_pair.h:303:11: note: candidate: ‘constexpr std::pair<_T1, _T2>::pair(const std::pair<_T1, _T2>&) [with _T1 = std::_Rb_tree_node_base*; _T2 = std::_Rb_tree_node_base*]’
  303 |       constexpr pair(const pair&) = default;
      |           ^~~~
/usr/include/c++/9/bits/stl_pair.h:303:11: note:   candidate expects 1 argument, 2 provided
/usr/include/c++/9/bits/stl_tree.h:2212:8: error: no matching function for call to ‘std::pair<std::_Rb_tree_node_base*, std::_Rb_tree_node_base*>::pair(int, std::_Rb_tree_node_base*&)’
 2212 |   return _Res(0, __before._M_node);
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/9/bits/stl_pair.h:434:1: note: candidate: ‘template<class ... _Args1, long unsigned int ..._Indexes1, class ... _Args2, long unsigned int ..._Indexes2> std::pair<_T1, _T2>::pair(std::tuple<_Args1 ...>&, std::tuple<_Args2 ...>&, std::_Index_tuple<_Indexes1 ...>, std::_Index_tuple<_Indexes2 ...>)’
  434 |       template<typename... _Args1, std::size_t... _Indexes1,
      | ^   
/usr/include/c++/9/bits/stl_pair.h:434:1: note:   template argument deduction/substitution failed:
/usr/include/c++/9/bits/stl_tree.h:2212:8: note:   mismatched types ‘std::tuple<_Tps ...>’ and ‘int’
 2212 |   return _Res(0, __before._M_node);
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/9/bits/stl_pair.h:374:52: note: candidate: ‘template<class ... _Args1, class ... _Args2> std::pair<_T1, _T2>::pair(std::piecewise_construct_t, std::tuple<_Args1 ...>, std::tuple<_Args2 ...>)’
  374 |       template<typename... _Args1, typename... _Args2>
      |                                                    ^~~ 
/usr/include/c++/9/bits/stl_pair.h:374:52: note:   template argument deduction/substitution failed:
/usr/include/c++/9/bits/stl_tree.h:2212:8: note:   mismatched types ‘std::tuple<_Tps ...>’ and ‘std::_Rb_tree_node_base*’
 2212 |   return _Res(0, __before._M_node);
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/9/bits/stl_pair.h:304:11: note: candidate: ‘constexpr std::pair<_T1, _T2>::pair(std::pair<_T1, _T2>&&) [with _T1 = std::_Rb_tree_node_base*; _T2 = std::_Rb_tree_node_base*]’
  304 |       constexpr pair(pair&&) = default;
      |           ^~~~
/usr/include/c++/9/bits/stl_pair.h:304:11: note:   candidate expects 1 argument, 2 provided
/usr/include/c++/9/bits/stl_pair.h:303:11: note: candidate: ‘constexpr std::pair<_T1, _T2>::pair(const std::pair<_T1, _T2>&) [with _T1 = std::_Rb_tree_node_base*; _T2 = std::_Rb_tree_node_base*]’
  303 |       constexpr pair(const pair&) = default;
      |           ^~~~
/usr/include/c++/9/bits/stl_pair.h:303:11: note:   candidate expects 1 argument, 2 provided
/usr/include/c++/9/bits/stl_tree.h:2214:8: error: no matching function for call to ‘std::pair<std::_Rb_tree_node_base*, std::_Rb_tree_node_base*>::pair(std::_Rb_tree_node_base*&, std::_Rb_tree_node_base*&)’
 2214 |   return _Res(__pos._M_node, __pos._M_node);
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
/usr/include/c++/9/bits/stl_pair.h:434:1: note: candidate: ‘template<class ... _Args1, long unsigned int ..._Indexes1, class ... _Args2, long unsigned int ..._Indexes2> std::pair<_T1, _T2>::pair(std::tuple<_Args1 ...>&, std::tuple<_Args2 ...>&, std::_Index_tuple<_Indexes1 ...>, std::_Index_tuple<_Indexes2 ...>)’
  434 |       template<typename... _Args1, std::size_t... _Indexes1,
      | ^   
/usr/include/c++/9/bits/stl_pair.h:434:1: note:   template argument deduction/substitution failed:
/usr/include/c++/9/bits/stl_tree.h:2214:8: note:   mismatched types ‘std::tuple<_Tps ...>’ and ‘std::_Rb_tree_iterator<std::pair<const int, rmm::mr::device_memory_resource*> >::_Base_ptr’ {aka ‘std::_Rb_tree_node_base*’}
 2214 |   return _Res(__pos._M_node, __pos._M_node);
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
/usr/include/c++/9/bits/stl_pair.h:374:52: note: candidate: ‘template<class ... _Args1, class ... _Args2> std::pair<_T1, _T2>::pair(std::piecewise_construct_t, std::tuple<_Args1 ...>, std::tuple<_Args2 ...>)’
  374 |       template<typename... _Args1, typename... _Args2>
      |                                                    ^~~ 
/usr/include/c++/9/bits/stl_pair.h:374:52: note:   template argument deduction/substitution failed:
/usr/include/c++/9/bits/stl_tree.h:2214:8: note:   mismatched types ‘std::tuple<_Tps ...>’ and ‘std::_Rb_tree_node_base*’
 2214 |   return _Res(__pos._M_node, __pos._M_node);
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
/usr/include/c++/9/bits/stl_pair.h:304:11: note: candidate: ‘constexpr std::pair<_T1, _T2>::pair(std::pair<_T1, _T2>&&) [with _T1 = std::_Rb_tree_node_base*; _T2 = std::_Rb_tree_node_base*]’
  304 |       constexpr pair(pair&&) = default;
      |           ^~~~
/usr/include/c++/9/bits/stl_pair.h:304:11: note:   candidate expects 1 argument, 2 provided
/usr/include/c++/9/bits/stl_pair.h:303:11: note: candidate: ‘constexpr std::pair<_T1, _T2>::pair(const std::pair<_T1, _T2>&) [with _T1 = std::_Rb_tree_node_base*; _T2 = std::_Rb_tree_node_base*]’
  303 |       constexpr pair(const pair&) = default;
      |           ^~~~
/usr/include/c++/9/bits/stl_pair.h:303:11: note:   candidate expects 1 argument, 2 provided
/usr/include/c++/9/bits/stl_tree.h:2224:8: error: no matching function for call to ‘std::pair<std::_Rb_tree_node_base*, std::_Rb_tree_node_base*>::pair(int, std::_Rb_tree_node_base*&)’
 2224 |      return _Res(0, _M_rightmost());
      |        ^~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/9/bits/stl_pair.h:434:1: note: candidate: ‘template<class ... _Args1, long unsigned int ..._Indexes1, class ... _Args2, long unsigned int ..._Indexes2> std::pair<_T1, _T2>::pair(std::tuple<_Args1 ...>&, std::tuple<_Args2 ...>&, std::_Index_tuple<_Indexes1 ...>, std::_Index_tuple<_Indexes2 ...>)’
  434 |       template<typename... _Args1, std::size_t... _Indexes1,
      | ^   
/usr/include/c++/9/bits/stl_pair.h:434:1: note:   template argument deduction/substitution failed:
/usr/include/c++/9/bits/stl_tree.h:2224:8: note:   mismatched types ‘std::tuple<_Tps ...>’ and ‘int’
 2224 |      return _Res(0, _M_rightmost());
      |        ^~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/9/bits/stl_pair.h:374:52: note: candidate: ‘template<class ... _Args1, class ... _Args2> std::pair<_T1, _T2>::pair(std::piecewise_construct_t, std::tuple<_Args1 ...>, std::tuple<_Args2 ...>)’
  374 |       template<typename... _Args1, typename... _Args2>
      |                                                    ^~~ 
/usr/include/c++/9/bits/stl_pair.h:374:52: note:   template argument deduction/substitution failed:
/usr/include/c++/9/bits/stl_tree.h:2224:8: note:   mismatched types ‘std::tuple<_Tps ...>’ and ‘std::_Rb_tree_node_base*’
 2224 |      return _Res(0, _M_rightmost());
      |        ^~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/9/bits/stl_pair.h:304:11: note: candidate: ‘constexpr std::pair<_T1, _T2>::pair(std::pair<_T1, _T2>&&) [with _T1 = std::_Rb_tree_node_base*; _T2 = std::_Rb_tree_node_base*]’
  304 |       constexpr pair(pair&&) = default;
      |           ^~~~
/usr/include/c++/9/bits/stl_pair.h:304:11: note:   candidate expects 1 argument, 2 provided
/usr/include/c++/9/bits/stl_pair.h:303:11: note: candidate: ‘constexpr std::pair<_T1, _T2>::pair(const std::pair<_T1, _T2>&) [with _T1 = std::_Rb_tree_node_base*; _T2 = std::_Rb_tree_node_base*]’
  303 |       constexpr pair(const pair&) = default;
      |           ^~~~
/usr/include/c++/9/bits/stl_pair.h:303:11: note:   candidate expects 1 argument, 2 provided
/usr/include/c++/9/bits/stl_tree.h:2228:8: error: no matching function for call to ‘std::pair<std::_Rb_tree_node_base*, std::_Rb_tree_node_base*>::pair(int, std::_Rb_tree_node_base*&)’
 2228 |   return _Res(0, __pos._M_node);
      |        ^~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/9/bits/stl_pair.h:434:1: note: candidate: ‘template<class ... _Args1, long unsigned int ..._Indexes1, class ... _Args2, long unsigned int ..._Indexes2> std::pair<_T1, _T2>::pair(std::tuple<_Args1 ...>&, std::tuple<_Args2 ...>&, std::_Index_tuple<_Indexes1 ...>, std::_Index_tuple<_Indexes2 ...>)’
  434 |       template<typename... _Args1, std::size_t... _Indexes1,
      | ^   
/usr/include/c++/9/bits/stl_pair.h:434:1: note:   template argument deduction/substitution failed:
/usr/include/c++/9/bits/stl_tree.h:2228:8: note:   mismatched types ‘std::tuple<_Tps ...>’ and ‘int’
 2228 |   return _Res(0, __pos._M_node);
      |        ^~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/9/bits/stl_pair.h:374:52: note: candidate: ‘template<class ... _Args1, class ... _Args2> std::pair<_T1, _T2>::pair(std::piecewise_construct_t, std::tuple<_Args1 ...>, std::tuple<_Args2 ...>)’
  374 |       template<typename... _Args1, typename... _Args2>
      |                                                    ^~~ 
/usr/include/c++/9/bits/stl_pair.h:374:52: note:   template argument deduction/substitution failed:
/usr/include/c++/9/bits/stl_tree.h:2228:8: note:   mismatched types ‘std::tuple<_Tps ...>’ and ‘std::_Rb_tree_node_base*’
 2228 |   return _Res(0, __pos._M_node);
      |        ^~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/9/bits/stl_pair.h:304:11: note: candidate: ‘constexpr std::pair<_T1, _T2>::pair(std::pair<_T1, _T2>&&) [with _T1 = std::_Rb_tree_node_base*; _T2 = std::_Rb_tree_node_base*]’
  304 |       constexpr pair(pair&&) = default;
      |           ^~~~
/usr/include/c++/9/bits/stl_pair.h:304:11: note:   candidate expects 1 argument, 2 provided
/usr/include/c++/9/bits/stl_pair.h:303:11: note: candidate: ‘constexpr std::pair<_T1, _T2>::pair(const std::pair<_T1, _T2>&) [with _T1 = std::_Rb_tree_node_base*; _T2 = std::_Rb_tree_node_base*]’
  303 |       constexpr pair(const pair&) = default;
      |           ^~~~
/usr/include/c++/9/bits/stl_pair.h:303:11: note:   candidate expects 1 argument, 2 provided
/usr/include/c++/9/bits/stl_tree.h:2230:8: error: no matching function for call to ‘std::pair<std::_Rb_tree_node_base*, std::_Rb_tree_node_base*>::pair(std::_Rb_tree_node_base*&, std::_Rb_tree_node_base*&)’
 2230 |   return _Res(__after._M_node, __after._M_node);
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
/usr/include/c++/9/bits/stl_pair.h:434:1: note: candidate: ‘template<class ... _Args1, long unsigned int ..._Indexes1, class ... _Args2, long unsigned int ..._Indexes2> std::pair<_T1, _T2>::pair(std::tuple<_Args1 ...>&, std::tuple<_Args2 ...>&, std::_Index_tuple<_Indexes1 ...>, std::_Index_tuple<_Indexes2 ...>)’
  434 |       template<typename... _Args1, std::size_t... _Indexes1,
      | ^   
/usr/include/c++/9/bits/stl_pair.h:434:1: note:   template argument deduction/substitution failed:
/usr/include/c++/9/bits/stl_tree.h:2230:8: note:   mismatched types ‘std::tuple<_Tps ...>’ and ‘std::_Rb_tree_iterator<std::pair<const int, rmm::mr::device_memory_resource*> >::_Base_ptr’ {aka ‘std::_Rb_tree_node_base*’}
 2230 |   return _Res(__after._M_node, __after._M_node);
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
/usr/include/c++/9/bits/stl_pair.h:374:52: note: candidate: ‘template<class ... _Args1, class ... _Args2> std::pair<_T1, _T2>::pair(std::piecewise_construct_t, std::tuple<_Args1 ...>, std::tuple<_Args2 ...>)’
  374 |       template<typename... _Args1, typename... _Args2>
      |                                                    ^~~ 
/usr/include/c++/9/bits/stl_pair.h:374:52: note:   template argument deduction/substitution failed:
/usr/include/c++/9/bits/stl_tree.h:2230:8: note:   mismatched types ‘std::tuple<_Tps ...>’ and ‘std::_Rb_tree_node_base*’
 2230 |   return _Res(__after._M_node, __after._M_node);
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
/usr/include/c++/9/bits/stl_pair.h:304:11: note: candidate: ‘constexpr std::pair<_T1, _T2>::pair(std::pair<_T1, _T2>&&) [with _T1 = std::_Rb_tree_node_base*; _T2 = std::_Rb_tree_node_base*]’
  304 |       constexpr pair(pair&&) = default;
      |           ^~~~
/usr/include/c++/9/bits/stl_pair.h:304:11: note:   candidate expects 1 argument, 2 provided
/usr/include/c++/9/bits/stl_pair.h:303:11: note: candidate: ‘constexpr std::pair<_T1, _T2>::pair(const std::pair<_T1, _T2>&) [with _T1 = std::_Rb_tree_node_base*; _T2 = std::_Rb_tree_node_base*]’
  303 |       constexpr pair(const pair&) = default;
      |           ^~~~
/usr/include/c++/9/bits/stl_pair.h:303:11: note:   candidate expects 1 argument, 2 provided
/usr/include/c++/9/bits/stl_tree.h:2237:8: error: no matching function for call to ‘std::pair<std::_Rb_tree_node_base*, std::_Rb_tree_node_base*>::pair(std::_Rb_tree_node_base*&, int)’
 2237 |  return _Res(__pos._M_node, 0);
      |        ^~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/9/bits/stl_pair.h:434:1: note: candidate: ‘template<class ... _Args1, long unsigned int ..._Indexes1, class ... _Args2, long unsigned int ..._Indexes2> std::pair<_T1, _T2>::pair(std::tuple<_Args1 ...>&, std::tuple<_Args2 ...>&, std::_Index_tuple<_Indexes1 ...>, std::_Index_tuple<_Indexes2 ...>)’
  434 |       template<typename... _Args1, std::size_t... _Indexes1,
      | ^   
/usr/include/c++/9/bits/stl_pair.h:434:1: note:   template argument deduction/substitution failed:
/usr/include/c++/9/bits/stl_tree.h:2237:8: note:   mismatched types ‘std::tuple<_Tps ...>’ and ‘std::_Rb_tree_iterator<std::pair<const int, rmm::mr::device_memory_resource*> >::_Base_ptr’ {aka ‘std::_Rb_tree_node_base*’}
 2237 |  return _Res(__pos._M_node, 0);
      |        ^~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/9/bits/stl_pair.h:374:52: note: candidate: ‘template<class ... _Args1, class ... _Args2> std::pair<_T1, _T2>::pair(std::piecewise_construct_t, std::tuple<_Args1 ...>, std::tuple<_Args2 ...>)’
  374 |       template<typename... _Args1, typename... _Args2>
      |                                                    ^~~ 
/usr/include/c++/9/bits/stl_pair.h:374:52: note:   template argument deduction/substitution failed:
/usr/include/c++/9/bits/stl_tree.h:2237:8: note:   mismatched types ‘std::tuple<_Tps ...>’ and ‘int’
 2237 |  return _Res(__pos._M_node, 0);
      |        ^~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/9/bits/stl_pair.h:304:11: note: candidate: ‘constexpr std::pair<_T1, _T2>::pair(std::pair<_T1, _T2>&&) [with _T1 = std::_Rb_tree_node_base*; _T2 = std::_Rb_tree_node_base*]’
  304 |       constexpr pair(pair&&) = default;
      |           ^~~~
/usr/include/c++/9/bits/stl_pair.h:304:11: note:   candidate expects 1 argument, 2 provided
/usr/include/c++/9/bits/stl_pair.h:303:11: note: candidate: ‘constexpr std::pair<_T1, _T2>::pair(const std::pair<_T1, _T2>&) [with _T1 = std::_Rb_tree_node_base*; _T2 = std::_Rb_tree_node_base*]’
  303 |       constexpr pair(const pair&) = default;
      |           ^~~~
/usr/include/c++/9/bits/stl_pair.h:303:11: note:   candidate expects 1 argument, 2 provided
/usr/include/c++/9/bits/stl_tree.h: In instantiation of ‘std::pair<std::_Rb_tree_node_base*, std::_Rb_tree_node_base*> std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_M_get_insert_hint_unique_pos(std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::const_iterator, const key_type&) [with _Key = std::__cxx11::basic_string<char>; _Val = std::pair<const std::__cxx11::basic_string<char>, cudf::data_type>; _KeyOfValue = std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, cudf::data_type> >; _Compare = std::less<std::__cxx11::basic_string<char> >; _Alloc = std::allocator<std::pair<const std::__cxx11::basic_string<char>, cudf::data_type> >; std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::const_iterator = std::_Rb_tree_const_iterator<std::pair<const std::__cxx11::basic_string<char>, cudf::data_type> >; std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::key_type = std::__cxx11::basic_string<char>]’:
/usr/include/c++/9/bits/stl_tree.h:2459:14:   required from ‘std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_M_emplace_hint_unique(std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::const_iterator, _Args&& ...) [with _Args = {const std::piecewise_construct_t&, std::tuple<const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>, std::tuple<>}; _Key = std::__cxx11::basic_string<char>; _Val = std::pair<const std::__cxx11::basic_string<char>, cudf::data_type>; _KeyOfValue = std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, cudf::data_type> >; _Compare = std::less<std::__cxx11::basic_string<char> >; _Alloc = std::allocator<std::pair<const std::__cxx11::basic_string<char>, cudf::data_type> >; std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator = std::_Rb_tree_iterator<std::pair<const std::__cxx11::basic_string<char>, cudf::data_type> >; std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::const_iterator = std::_Rb_tree_const_iterator<std::pair<const std::__cxx11::basic_string<char>, cudf::data_type> >]’
/usr/include/c++/9/bits/stl_map.h:499:5:   required from ‘std::map<_Key, _Tp, _Compare, _Alloc>::mapped_type& std::map<_Key, _Tp, _Compare, _Alloc>::operator[](const key_type&) [with _Key = std::__cxx11::basic_string<char>; _Tp = cudf::data_type; _Compare = std::less<std::__cxx11::basic_string<char> >; _Alloc = std::allocator<std::pair<const std::__cxx11::basic_string<char>, cudf::data_type> >; std::map<_Key, _Tp, _Compare, _Alloc>::mapped_type = cudf::data_type; std::map<_Key, _Tp, _Compare, _Alloc>::key_type = std::__cxx11::basic_string<char>]’
/workspace/build-env/cpp/src/io/json/reader_impl.cu:487:37:   required from ‘cudf::io::detail::json::reader::impl::set_data_types(cudf::device_span<const long unsigned int>, rmm::cuda_stream_view)::<lambda(const auto:12&)> [with auto:12 = std::__cxx11::basic_string<char>]’
/usr/include/c++/9/bits/stl_algo.h:4337:25:   required from ‘_OIter std::transform(_IIter, _IIter, _OIter, _UnaryOperation) [with _IIter = __gnu_cxx::__normal_iterator<const std::__cxx11::basic_string<char>*, std::vector<std::__cxx11::basic_string<char> > >; _OIter = std::back_insert_iterator<std::vector<cudf::data_type> >; _UnaryOperation = cudf::io::detail::json::reader::impl::set_data_types(cudf::device_span<const long unsigned int>, rmm::cuda_stream_view)::<lambda(const auto:12&)>]’
/workspace/build-env/cpp/src/io/json/reader_impl.cu:487:54:   required from here
/usr/include/c++/9/bits/stl_tree.h:2199:8: error: no matching function for call to ‘std::pair<std::_Rb_tree_node_base*, std::_Rb_tree_node_base*>::pair(int, std::_Rb_tree_node_base*&)’
 2199 |      return _Res(0, _M_rightmost());
      |        ^~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/9/bits/stl_pair.h:434:1: note: candidate: ‘template<class ... _Args1, long unsigned int ..._Indexes1, class ... _Args2, long unsigned int ..._Indexes2> std::pair<_T1, _T2>::pair(std::tuple<_Args1 ...>&, std::tuple<_Args2 ...>&, std::_Index_tuple<_Indexes1 ...>, std::_Index_tuple<_Indexes2 ...>)’
  434 |       template<typename... _Args1, std::size_t... _Indexes1,
      | ^   
/usr/include/c++/9/bits/stl_pair.h:434:1: note:   template argument deduction/substitution failed:
/usr/include/c++/9/bits/stl_tree.h:2199:8: note:   mismatched types ‘std::tuple<_Tps ...>’ and ‘int’
 2199 |      return _Res(0, _M_rightmost());
      |        ^~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/9/bits/stl_pair.h:374:52: note: candidate: ‘template<class ... _Args1, class ... _Args2> std::pair<_T1, _T2>::pair(std::piecewise_construct_t, std::tuple<_Args1 ...>, std::tuple<_Args2 ...>)’
  374 |       template<typename... _Args1, typename... _Args2>
      |                                                    ^~~ 
/usr/include/c++/9/bits/stl_pair.h:374:52: note:   template argument deduction/substitution failed:
/usr/include/c++/9/bits/stl_tree.h:2199:8: note:   mismatched types ‘std::tuple<_Tps ...>’ and ‘std::_Rb_tree_node_base*’
 2199 |      return _Res(0, _M_rightmost());
      |        ^~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/9/bits/stl_pair.h:304:11: note: candidate: ‘constexpr std::pair<_T1, _T2>::pair(std::pair<_T1, _T2>&&) [with _T1 = std::_Rb_tree_node_base*; _T2 = std::_Rb_tree_node_base*]’
  304 |       constexpr pair(pair&&) = default;
      |           ^~~~
/usr/include/c++/9/bits/stl_pair.h:304:11: note:   candidate expects 1 argument, 2 provided
/usr/include/c++/9/bits/stl_pair.h:303:11: note: candidate: ‘constexpr std::pair<_T1, _T2>::pair(const std::pair<_T1, _T2>&) [with _T1 = std::_Rb_tree_node_base*; _T2 = std::_Rb_tree_node_base*]’
  303 |       constexpr pair(const pair&) = default;
      |           ^~~~
/usr/include/c++/9/bits/stl_pair.h:303:11: note:   candidate expects 1 argument, 2 provided
/usr/include/c++/9/bits/stl_tree.h:2208:8: error: no matching function for call to ‘std::pair<std::_Rb_tree_node_base*, std::_Rb_tree_node_base*>::pair(std::_Rb_tree_node_base*&, std::_Rb_tree_node_base*&)’
 2208 |      return _Res(_M_leftmost(), _M_leftmost());
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/9/bits/stl_pair.h:434:1: note: candidate: ‘template<class ... _Args1, long unsigned int ..._Indexes1, class ... _Args2, long unsigned int ..._Indexes2> std::pair<_T1, _T2>::pair(std::tuple<_Args1 ...>&, std::tuple<_Args2 ...>&, std::_Index_tuple<_Indexes1 ...>, std::_Index_tuple<_Indexes2 ...>)’
  434 |       template<typename... _Args1, std::size_t... _Indexes1,
      | ^   
/usr/include/c++/9/bits/stl_pair.h:434:1: note:   template argument deduction/substitution failed:
/usr/include/c++/9/bits/stl_tree.h:2208:8: note:   mismatched types ‘std::tuple<_Tps ...>’ and ‘std::_Rb_tree<std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, cudf::data_type>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, cudf::data_type> >, std::less<std::__cxx11::basic_string<char> >, std::allocator<std::pair<const std::__cxx11::basic_string<char>, cudf::data_type> > >::_Base_ptr’ {aka ‘std::_Rb_tree_node_base*’}
 2208 |      return _Res(_M_leftmost(), _M_leftmost());
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/9/bits/stl_pair.h:374:52: note: candidate: ‘template<class ... _Args1, class ... _Args2> std::pair<_T1, _T2>::pair(std::piecewise_construct_t, std::tuple<_Args1 ...>, std::tuple<_Args2 ...>)’
  374 |       template<typename... _Args1, typename... _Args2>
      |                                                    ^~~ 
/usr/include/c++/9/bits/stl_pair.h:374:52: note:   template argument deduction/substitution failed:
/usr/include/c++/9/bits/stl_tree.h:2208:8: note:   mismatched types ‘std::tuple<_Tps ...>’ and ‘std::_Rb_tree_node_base*’
 2208 |      return _Res(_M_leftmost(), _M_leftmost());
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/9/bits/stl_pair.h:304:11: note: candidate: ‘constexpr std::pair<_T1, _T2>::pair(std::pair<_T1, _T2>&&) [with _T1 = std::_Rb_tree_node_base*; _T2 = std::_Rb_tree_node_base*]’
  304 |       constexpr pair(pair&&) = default;
      |           ^~~~
/usr/include/c++/9/bits/stl_pair.h:304:11: note:   candidate expects 1 argument, 2 provided
/usr/include/c++/9/bits/stl_pair.h:303:11: note: candidate: ‘constexpr std::pair<_T1, _T2>::pair(const std::pair<_T1, _T2>&) [with _T1 = std::_Rb_tree_node_base*; _T2 = std::_Rb_tree_node_base*]’
  303 |       constexpr pair(const pair&) = default;
      |           ^~~~
/usr/include/c++/9/bits/stl_pair.h:303:11: note:   candidate expects 1 argument, 2 provided
/usr/include/c++/9/bits/stl_tree.h:2212:8: error: no matching function for call to ‘std::pair<std::_Rb_tree_node_base*, std::_Rb_tree_node_base*>::pair(int, std::_Rb_tree_node_base*&)’
 2212 |   return _Res(0, __before._M_node);
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/9/bits/stl_pair.h:434:1: note: candidate: ‘template<class ... _Args1, long unsigned int ..._Indexes1, class ... _Args2, long unsigned int ..._Indexes2> std::pair<_T1, _T2>::pair(std::tuple<_Args1 ...>&, std::tuple<_Args2 ...>&, std::_Index_tuple<_Indexes1 ...>, std::_Index_tuple<_Indexes2 ...>)’
  434 |       template<typename... _Args1, std::size_t... _Indexes1,
      | ^   
/usr/include/c++/9/bits/stl_pair.h:434:1: note:   template argument deduction/substitution failed:
/usr/include/c++/9/bits/stl_tree.h:2212:8: note:   mismatched types ‘std::tuple<_Tps ...>’ and ‘int’
 2212 |   return _Res(0, __before._M_node);
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/9/bits/stl_pair.h:374:52: note: candidate: ‘template<class ... _Args1, class ... _Args2> std::pair<_T1, _T2>::pair(std::piecewise_construct_t, std::tuple<_Args1 ...>, std::tuple<_Args2 ...>)’
  374 |       template<typename... _Args1, typename... _Args2>
      |                                                    ^~~ 
/usr/include/c++/9/bits/stl_pair.h:374:52: note:   template argument deduction/substitution failed:
/usr/include/c++/9/bits/stl_tree.h:2212:8: note:   mismatched types ‘std::tuple<_Tps ...>’ and ‘std::_Rb_tree_node_base*’
 2212 |   return _Res(0, __before._M_node);
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/9/bits/stl_pair.h:304:11: note: candidate: ‘constexpr std::pair<_T1, _T2>::pair(std::pair<_T1, _T2>&&) [with _T1 = std::_Rb_tree_node_base*; _T2 = std::_Rb_tree_node_base*]’
  304 |       constexpr pair(pair&&) = default;
      |           ^~~~
/usr/include/c++/9/bits/stl_pair.h:304:11: note:   candidate expects 1 argument, 2 provided
/usr/include/c++/9/bits/stl_pair.h:303:11: note: candidate: ‘constexpr std::pair<_T1, _T2>::pair(const std::pair<_T1, _T2>&) [with _T1 = std::_Rb_tree_node_base*; _T2 = std::_Rb_tree_node_base*]’
  303 |       constexpr pair(const pair&) = default;
      |           ^~~~
/usr/include/c++/9/bits/stl_pair.h:303:11: note:   candidate expects 1 argument, 2 provided
/usr/include/c++/9/bits/stl_tree.h:2214:8: error: no matching function for call to ‘std::pair<std::_Rb_tree_node_base*, std::_Rb_tree_node_base*>::pair(std::_Rb_tree_node_base*&, std::_Rb_tree_node_base*&)’
 2214 |   return _Res(__pos._M_node, __pos._M_node);
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
/usr/include/c++/9/bits/stl_pair.h:434:1: note: candidate: ‘template<class ... _Args1, long unsigned int ..._Indexes1, class ... _Args2, long unsigned int ..._Indexes2> std::pair<_T1, _T2>::pair(std::tuple<_Args1 ...>&, std::tuple<_Args2 ...>&, std::_Index_tuple<_Indexes1 ...>, std::_Index_tuple<_Indexes2 ...>)’
  434 |       template<typename... _Args1, std::size_t... _Indexes1,
      | ^   
/usr/include/c++/9/bits/stl_pair.h:434:1: note:   template argument deduction/substitution failed:
/usr/include/c++/9/bits/stl_tree.h:2214:8: note:   mismatched types ‘std::tuple<_Tps ...>’ and ‘std::_Rb_tree_iterator<std::pair<const std::__cxx11::basic_string<char>, cudf::data_type> >::_Base_ptr’ {aka ‘std::_Rb_tree_node_base*’}
 2214 |   return _Res(__pos._M_node, __pos._M_node);
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
/usr/include/c++/9/bits/stl_pair.h:374:52: note: candidate: ‘template<class ... _Args1, class ... _Args2> std::pair<_T1, _T2>::pair(std::piecewise_construct_t, std::tuple<_Args1 ...>, std::tuple<_Args2 ...>)’
  374 |       template<typename... _Args1, typename... _Args2>
      |                                                    ^~~ 
/usr/include/c++/9/bits/stl_pair.h:374:52: note:   template argument deduction/substitution failed:
/usr/include/c++/9/bits/stl_tree.h:2214:8: note:   mismatched types ‘std::tuple<_Tps ...>’ and ‘std::_Rb_tree_node_base*’
 2214 |   return _Res(__pos._M_node, __pos._M_node);
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
/usr/include/c++/9/bits/stl_pair.h:304:11: note: candidate: ‘constexpr std::pair<_T1, _T2>::pair(std::pair<_T1, _T2>&&) [with _T1 = std::_Rb_tree_node_base*; _T2 = std::_Rb_tree_node_base*]’
  304 |       constexpr pair(pair&&) = default;
      |           ^~~~
/usr/include/c++/9/bits/stl_pair.h:304:11: note:   candidate expects 1 argument, 2 provided
/usr/include/c++/9/bits/stl_pair.h:303:11: note: candidate: ‘constexpr std::pair<_T1, _T2>::pair(const std::pair<_T1, _T2>&) [with _T1 = std::_Rb_tree_node_base*; _T2 = std::_Rb_tree_node_base*]’
  303 |       constexpr pair(const pair&) = default;
      |           ^~~~
/usr/include/c++/9/bits/stl_pair.h:303:11: note:   candidate expects 1 argument, 2 provided
/usr/include/c++/9/bits/stl_tree.h:2224:8: error: no matching function for call to ‘std::pair<std::_Rb_tree_node_base*, std::_Rb_tree_node_base*>::pair(int, std::_Rb_tree_node_base*&)’
 2224 |      return _Res(0, _M_rightmost());
      |        ^~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/9/bits/stl_pair.h:434:1: note: candidate: ‘template<class ... _Args1, long unsigned int ..._Indexes1, class ... _Args2, long unsigned int ..._Indexes2> std::pair<_T1, _T2>::pair(std::tuple<_Args1 ...>&, std::tuple<_Args2 ...>&, std::_Index_tuple<_Indexes1 ...>, std::_Index_tuple<_Indexes2 ...>)’
  434 |       template<typename... _Args1, std::size_t... _Indexes1,
      | ^   
/usr/include/c++/9/bits/stl_pair.h:434:1: note:   template argument deduction/substitution failed:
/usr/include/c++/9/bits/stl_tree.h:2224:8: note:   mismatched types ‘std::tuple<_Tps ...>’ and ‘int’
 2224 |      return _Res(0, _M_rightmost());
      |        ^~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/9/bits/stl_pair.h:374:52: note: candidate: ‘template<class ... _Args1, class ... _Args2> std::pair<_T1, _T2>::pair(std::piecewise_construct_t, std::tuple<_Args1 ...>, std::tuple<_Args2 ...>)’
  374 |       template<typename... _Args1, typename... _Args2>
      |                                                    ^~~ 
/usr/include/c++/9/bits/stl_pair.h:374:52: note:   template argument deduction/substitution failed:
/usr/include/c++/9/bits/stl_tree.h:2224:8: note:   mismatched types ‘std::tuple<_Tps ...>’ and ‘std::_Rb_tree_node_base*’
 2224 |      return _Res(0, _M_rightmost());
      |        ^~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/9/bits/stl_pair.h:304:11: note: candidate: ‘constexpr std::pair<_T1, _T2>::pair(std::pair<_T1, _T2>&&) [with _T1 = std::_Rb_tree_node_base*; _T2 = std::_Rb_tree_node_base*]’
  304 |       constexpr pair(pair&&) = default;
      |           ^~~~
/usr/include/c++/9/bits/stl_pair.h:304:11: note:   candidate expects 1 argument, 2 provided
/usr/include/c++/9/bits/stl_pair.h:303:11: note: candidate: ‘constexpr std::pair<_T1, _T2>::pair(const std::pair<_T1, _T2>&) [with _T1 = std::_Rb_tree_node_base*; _T2 = std::_Rb_tree_node_base*]’
  303 |       constexpr pair(const pair&) = default;
      |           ^~~~
/usr/include/c++/9/bits/stl_pair.h:303:11: note:   candidate expects 1 argument, 2 provided
/usr/include/c++/9/bits/stl_tree.h:2228:8: error: no matching function for call to ‘std::pair<std::_Rb_tree_node_base*, std::_Rb_tree_node_base*>::pair(int, std::_Rb_tree_node_base*&)’
 2228 |   return _Res(0, __pos._M_node);
      |        ^~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/9/bits/stl_pair.h:434:1: note: candidate: ‘template<class ... _Args1, long unsigned int ..._Indexes1, class ... _Args2, long unsigned int ..._Indexes2> std::pair<_T1, _T2>::pair(std::tuple<_Args1 ...>&, std::tuple<_Args2 ...>&, std::_Index_tuple<_Indexes1 ...>, std::_Index_tuple<_Indexes2 ...>)’
  434 |       template<typename... _Args1, std::size_t... _Indexes1,
      | ^   
/usr/include/c++/9/bits/stl_pair.h:434:1: note:   template argument deduction/substitution failed:
/usr/include/c++/9/bits/stl_tree.h:2228:8: note:   mismatched types ‘std::tuple<_Tps ...>’ and ‘int’
 2228 |   return _Res(0, __pos._M_node);
      |        ^~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/9/bits/stl_pair.h:374:52: note: candidate: ‘template<class ... _Args1, class ... _Args2> std::pair<_T1, _T2>::pair(std::piecewise_construct_t, std::tuple<_Args1 ...>, std::tuple<_Args2 ...>)’
  374 |       template<typename... _Args1, typename... _Args2>
      |                                                    ^~~ 
/usr/include/c++/9/bits/stl_pair.h:374:52: note:   template argument deduction/substitution failed:
/usr/include/c++/9/bits/stl_tree.h:2228:8: note:   mismatched types ‘std::tuple<_Tps ...>’ and ‘std::_Rb_tree_node_base*’
 2228 |   return _Res(0, __pos._M_node);
      |        ^~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/9/bits/stl_pair.h:304:11: note: candidate: ‘constexpr std::pair<_T1, _T2>::pair(std::pair<_T1, _T2>&&) [with _T1 = std::_Rb_tree_node_base*; _T2 = std::_Rb_tree_node_base*]’
  304 |       constexpr pair(pair&&) = default;
      |           ^~~~
/usr/include/c++/9/bits/stl_pair.h:304:11: note:   candidate expects 1 argument, 2 provided
/usr/include/c++/9/bits/stl_pair.h:303:11: note: candidate: ‘constexpr std::pair<_T1, _T2>::pair(const std::pair<_T1, _T2>&) [with _T1 = std::_Rb_tree_node_base*; _T2 = std::_Rb_tree_node_base*]’
  303 |       constexpr pair(const pair&) = default;
      |           ^~~~
/usr/include/c++/9/bits/stl_pair.h:303:11: note:   candidate expects 1 argument, 2 provided
/usr/include/c++/9/bits/stl_tree.h:2230:8: error: no matching function for call to ‘std::pair<std::_Rb_tree_node_base*, std::_Rb_tree_node_base*>::pair(std::_Rb_tree_node_base*&, std::_Rb_tree_node_base*&)’
 2230 |   return _Res(__after._M_node, __after._M_node);
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
/usr/include/c++/9/bits/stl_pair.h:434:1: note: candidate: ‘template<class ... _Args1, long unsigned int ..._Indexes1, class ... _Args2, long unsigned int ..._Indexes2> std::pair<_T1, _T2>::pair(std::tuple<_Args1 ...>&, std::tuple<_Args2 ...>&, std::_Index_tuple<_Indexes1 ...>, std::_Index_tuple<_Indexes2 ...>)’
  434 |       template<typename... _Args1, std::size_t... _Indexes1,
      | ^   
/usr/include/c++/9/bits/stl_pair.h:434:1: note:   template argument deduction/substitution failed:
/usr/include/c++/9/bits/stl_tree.h:2230:8: note:   mismatched types ‘std::tuple<_Tps ...>’ and ‘std::_Rb_tree_iterator<std::pair<const std::__cxx11::basic_string<char>, cudf::data_type> >::_Base_ptr’ {aka ‘std::_Rb_tree_node_base*’}
 2230 |   return _Res(__after._M_node, __after._M_node);
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
/usr/include/c++/9/bits/stl_pair.h:374:52: note: candidate: ‘template<class ... _Args1, class ... _Args2> std::pair<_T1, _T2>::pair(std::piecewise_construct_t, std::tuple<_Args1 ...>, std::tuple<_Args2 ...>)’
  374 |       template<typename... _Args1, typename... _Args2>
      |                                                    ^~~ 
/usr/include/c++/9/bits/stl_pair.h:374:52: note:   template argument deduction/substitution failed:
/usr/include/c++/9/bits/stl_tree.h:2230:8: note:   mismatched types ‘std::tuple<_Tps ...>’ and ‘std::_Rb_tree_node_base*’
 2230 |   return _Res(__after._M_node, __after._M_node);
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
/usr/include/c++/9/bits/stl_pair.h:304:11: note: candidate: ‘constexpr std::pair<_T1, _T2>::pair(std::pair<_T1, _T2>&&) [with _T1 = std::_Rb_tree_node_base*; _T2 = std::_Rb_tree_node_base*]’
  304 |       constexpr pair(pair&&) = default;
      |           ^~~~
/usr/include/c++/9/bits/stl_pair.h:304:11: note:   candidate expects 1 argument, 2 provided
/usr/include/c++/9/bits/stl_pair.h:303:11: note: candidate: ‘constexpr std::pair<_T1, _T2>::pair(const std::pair<_T1, _T2>&) [with _T1 = std::_Rb_tree_node_base*; _T2 = std::_Rb_tree_node_base*]’
  303 |       constexpr pair(const pair&) = default;
      |           ^~~~
/usr/include/c++/9/bits/stl_pair.h:303:11: note:   candidate expects 1 argument, 2 provided
/usr/include/c++/9/bits/stl_tree.h:2237:8: error: no matching function for call to ‘std::pair<std::_Rb_tree_node_base*, std::_Rb_tree_node_base*>::pair(std::_Rb_tree_node_base*&, int)’
 2237 |  return _Res(__pos._M_node, 0);
      |        ^~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/9/bits/stl_pair.h:434:1: note: candidate: ‘template<class ... _Args1, long unsigned int ..._Indexes1, class ... _Args2, long unsigned int ..._Indexes2> std::pair<_T1, _T2>::pair(std::tuple<_Args1 ...>&, std::tuple<_Args2 ...>&, std::_Index_tuple<_Indexes1 ...>, std::_Index_tuple<_Indexes2 ...>)’
  434 |       template<typename... _Args1, std::size_t... _Indexes1,
      | ^   
/usr/include/c++/9/bits/stl_pair.h:434:1: note:   template argument deduction/substitution failed:
/usr/include/c++/9/bits/stl_tree.h:2237:8: note:   mismatched types ‘std::tuple<_Tps ...>’ and ‘std::_Rb_tree_iterator<std::pair<const std::__cxx11::basic_string<char>, cudf::data_type> >::_Base_ptr’ {aka ‘std::_Rb_tree_node_base*’}
 2237 |  return _Res(__pos._M_node, 0);
      |        ^~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/9/bits/stl_pair.h:374:52: note: candidate: ‘template<class ... _Args1, class ... _Args2> std::pair<_T1, _T2>::pair(std::piecewise_construct_t, std::tuple<_Args1 ...>, std::tuple<_Args2 ...>)’
  374 |       template<typename... _Args1, typename... _Args2>
      |                                                    ^~~ 
/usr/include/c++/9/bits/stl_pair.h:374:52: note:   template argument deduction/substitution failed:
/usr/include/c++/9/bits/stl_tree.h:2237:8: note:   mismatched types ‘std::tuple<_Tps ...>’ and ‘int’
 2237 |  return _Res(__pos._M_node, 0);
      |        ^~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/9/bits/stl_pair.h:304:11: note: candidate: ‘constexpr std::pair<_T1, _T2>::pair(std::pair<_T1, _T2>&&) [with _T1 = std::_Rb_tree_node_base*; _T2 = std::_Rb_tree_node_base*]’
  304 |       constexpr pair(pair&&) = default;
      |           ^~~~
/usr/include/c++/9/bits/stl_pair.h:304:11: note:   candidate expects 1 argument, 2 provided
/usr/include/c++/9/bits/stl_pair.h:303:11: note: candidate: ‘constexpr std::pair<_T1, _T2>::pair(const std::pair<_T1, _T2>&) [with _T1 = std::_Rb_tree_node_base*; _T2 = std::_Rb_tree_node_base*]’
  303 |       constexpr pair(const pair&) = default;
      |           ^~~~
/usr/include/c++/9/bits/stl_pair.h:303:11: note:   candidate expects 1 argument, 2 provided
make[2]: *** [CMakeFiles/cudf.dir/build.make:1322: CMakeFiles/cudf.dir/src/io/json/reader_impl.cu.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:212: CMakeFiles/cudf.dir/all] Error 2
make: *** [Makefile:136: all] Error 2
root@a177a0e6dade:/workspace/build-env# 

@davidwendt davidwendt added 3 - Ready for Review Ready for review by team improvement Improvement / enhancement to an existing function non-breaking Non-breaking change labels Jun 30, 2021
@codecov
Copy link

codecov bot commented Jul 1, 2021

Codecov Report

❗ No coverage uploaded for pull request base (branch-21.08@fa50b7d). Click here to learn what that means.
The diff coverage is n/a.

❗ Current head d18ed31 differs from pull request most recent head 740f9ba. Consider uploading reports for the commit 740f9ba to get more accurate results
Impacted file tree graph

@@               Coverage Diff               @@
##             branch-21.08    #8635   +/-   ##
===============================================
  Coverage                ?   10.61%           
===============================================
  Files                   ?      109           
  Lines                   ?    18646           
  Branches                ?        0           
===============================================
  Hits                    ?     1980           
  Misses                  ?    16666           
  Partials                ?        0           

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update fa50b7d...740f9ba. Read the comment docs.

@ttnghia
Copy link
Contributor

ttnghia commented Jul 2, 2021

I'm not sure if my previous issues with CUDA 11.3 still persist (https://nvidia.slack.com/archives/CDTANRCTT/p1621018311286700). If so, maybe this fix is not enough. @robertmaynard should know more about this.

Copy link
Contributor

@robertmaynard robertmaynard left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Verified that locally that this fixes the 11.3 regression when using std::pair.

@robertmaynard
Copy link
Contributor

I'm not sure if my previous issues with CUDA 11.3 still persist (https://nvidia.slack.com/archives/CDTANRCTT/p1621018311286700). If so, maybe this fix is not enough. @robertmaynard should know more about this.

I fixed that issue in #8525

@galipremsagar
Copy link
Contributor

@benfred can we merge this PR?

@benfred
Copy link
Member Author

benfred commented Jul 19, 2021

@galipremsagar this PR is safe to merge -

This is isn't sufficient on its own to get cudf compiling with 11.3 though. This change fixes the one build break - but there are build time issues with files like tokenize.cu that still exist.

@benfred
Copy link
Member Author

benfred commented Jul 21, 2021

I'm going to close this: it's not enough on its own to get cudf building with cuda 11.3, and isn't needed for cuda 11.4. Feel free to re-open / merge if you want though.

@benfred benfred closed this Jul 21, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
3 - Ready for Review Ready for review by team improvement Improvement / enhancement to an existing function libcudf Affects libcudf (C++/CUDA) code. non-breaking Non-breaking change
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants