This changes should allow the build of Gadgetron master.
closes #378
closes #384
https://github.com/SyneRBI/SIRF-SuperBuild/pull/438
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or unsubscribe.
It'd be good to decide which commit tag to use for Gadgetron in version_config.cmake
This one is the minimum one @johannesmayer would require to build his RPE encoding branch
@KrisThielemans approved this pull request.
looks fine to me.
But Gadgetron on my VM doesn't seem to build! I had checked but there may have been some caching mechanisms that made it work then.
The culprit is rather simple, really, CMake is giving the wrong directory for includes to Gadgetron:
cd /home/sirfuser/devel/buildVM/builds/Gadgetron/build/core && /usr/bin/c++
-DARMA_64BIT_WORD -DARMA_DONT_USE_WRAPPER
-DARMA_USE_CXX11 -DFORCE_LIMIT_OPENBLAS_NUM_THREADS -DUSE_OMP -Dgadgetron_core_EXPORTS
-I/home/sirfuser/devel/buildVM/builds/Gadgetron/build/include
-I/home/sirfuser/devel/buildVM/sources/Gadgetron/core
-I/home/sirfuser/devel/buildVM/sources/Gadgetron/toolboxes/core
-I/home/sirfuser/devel/buildVM/builds/Gadgetron/build/toolboxes/core
-I/home/sirfuser/devel/buildVM/sources/Gadgetron/toolboxes/core/cpu
-I/home/sirfuser/devel/buildVM/sources/Gadgetron/toolboxes/core/cpu/image
-I/home/sirfuser/devel/buildVM/sources/Gadgetron/toolboxes/core/cpu/algorithm
-I/home/sirfuser/devel/buildVM/sources/Gadgetron/toolboxes/core/cpu/hostutils
-I/home/sirfuser/devel/buildVM/sources/Gadgetron/toolboxes/core/cpu/math
-I/home/sirfuser/devel/buildVM/sources/Gadgetron/apps/gadgetron
-I/home/sirfuser/devel/buildVM/sources/Gadgetron/toolboxes/log
-isystem /home/sirfuser/devel/install/include/ismrmrd
-DBOOST_ERROR_CODE_HEADER_ONLY -DBOOST_SYSTEM_NO_DEPRECATED
-fopenmp
-Werror=return-type -Werror=terminate -Werror=non-virtual-dtor
-O3 -DNDEBUG -fPIC -std=gnu++1z
-o CMakeFiles/gadgetron_core.dir/Channel.cpp.o
-c /home/sirfuser/devel/buildVM/sources/Gadgetron/core/Channel.cpp
I passes the include directory of our install, which is good but it does it with -isystem
and appending ismrmrd
, which is wrong.
The CMake line that does reads:
target_include_directories(gadgetron_core PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}> $<INSTALL_INTERFACE:include> )
I don't understand very well this generator expression, but it doesn't look to me that it should be wrong. But it's difficult to debug.
If I understand correctly, we are trying to pass Gadgetron the include directory here as
-DCMAKE_INCLUDE_PATH:PATH=${SUPERBUILD_INSTALL_DIR}/include
However, CMAKE_INCLUDE_PATH provides a search path for the find_file()
and find_path()
commands which is not what we want? We want to add to the standard include directories of Gadgetron.
However, CMAKE_INCLUDE_PATH provides a search path for the
find_file()
andfind_path()
commands which is not what we want? We want to add to the standard include directories of Gadgetron.
That's correct. A lot of the External*
files have lines setting CMAKE_*
variables, but they shouldn't be there. Even CMAKE_LIBRARY_PATH
shouldn't be set as it should find it from the PREFIX
or some other default path.
-isystem /home/sirfuser/devel/install/include/ismrmrd
this isn't something that we do. It has to come from how Gadgetron depends on ISMRMRD. Gadgetron master
uses dependencies on ISMRMRD::ISMRMRD
(see e.g.here, so that implies it comes from ISMRMRDConfig.cmake.
That uses include
here. It uses to be include/ismrmrd
but that was fixed 2 years ago ismrmrd/ismrmrd#109 which seems to be between ISMRMRD 1.4.0 and 1.4.1. I think we're using the latter, so I don't understand. In any case, you'd want to update ISMRMD version if you use Gadgetron master
. Most recent seems 1.4.2.1
Built ISMRMRD 1.4.2.1, now Gadgetron fails with
/home/sirfuser/devel/buildVM/sources/Gadgetron/toolboxes/core/cpu/math/hoNDArray_reductions.cpp:3:10: fatal error: range/v3/core.hpp: No such file or directory
#include <range/v3/core.hpp>
^~~~~~~~~~~~~~~~~~~
compilation terminated.
It seems now Gadgetron depends on range-v3
I'll add the range-v3
to the superbuild (it's a header only library!).
Next problem
In file included from /home/sirfuser/devel/buildVM/sources/Gadgetron/toolboxes/klt/cpu/hoNDKLT.cpp:6:0:
/home/sirfuser/devel/buildVM/sources/Gadgetron/toolboxes/core/cpu/hoNDArray_utils.h: In function ‘auto Gadgetron::concat_along_dimension(const COLL&, size_t)’:
/home/sirfuser/devel/buildVM/sources/Gadgetron/toolboxes/core/cpu/hoNDArray_utils.h:1015:121: error: cannot deduce template arguments for ‘logical_and’ from ()
umulate(arrays | view::transform(dimensions_valid), true, std::logical_and() );
^
/home/sirfuser/devel/buildVM/sources/Gadgetron/toolboxes/core/cpu/hoNDArray_utils.h:1021:81: error: cannot deduce template arguments for ‘multiplies’ from ()
size_t(1), std::multiplies());
not sure. sorry. You'll need to raise an issue on Gadgetron. More than likely they'll say that you need to have a more recent version of gcc (and potentially C++), but as their CMake doesn't enforce it, they should know about this.
Opened an issue in gadgetron/gadgetron#925
Apparently Gadgetron requires C++17 which means GCC 9. gadgetron/gadgetron#925 (comment)
This also requires CUDA SDK >= 10.2 to build Gadgetron with CUDA gadgets, otherwise the build fails with this error:
nvcc fatal : Value 'c++17' is not defined for option 'std'
currently Gadgetron test build fails:
/usr/include/c++/9/tuple:1394:33: error: no match for ‘operator==’ (operand types are ‘std::__tuple_element_t<0, std::tuple<ISMRMRD::AcquisitionHeader, Gadgetron::hoNDArray<std::complex<float> >, std::optional<Gadgetron::hoNDArray<float> > > >’ {aka ‘const ISMRMRD::AcquisitionHeader’} and ‘std::__tuple_element_t<0, std::tuple<ISMRMRD::AcquisitionHeader, Gadgetron::hoNDArray<std::complex<float> >, std::optional<Gadgetron::hoNDArray<float> > > >’ {aka ‘const ISMRMRD::AcquisitionHeader’})
1394 | return bool(std::get<__i>(__t) == std::get<__i>(__u))
| ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
[ 92%] Building CXX object test/CMakeFiles/test_all.dir/read_writer_test.cpp.o
In file included from /usr/include/c++/9/bits/unique_ptr.h:37,
from /usr/include/c++/9/condition_variable:44,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/core/Channel.h:3,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/test/read_writer_test.cpp:2:
/usr/include/c++/9/tuple: In instantiation of ‘static constexpr bool std::__tuple_compare<_Tp, _Up, __i, __size>::__eq(const _Tp&, const _Up&) [with _Tp = std::tuple >, std::optional > >; _Up = std::tuple >, std::optional > >; long unsigned int __i = 0; long unsigned int __size = 3]’:
/usr/include/c++/9/tuple:1427:29: required from ‘constexpr bool std::operator==(const std::tuple<_Tps ...>&, const std::tuple<_Elements ...>&) [with _TElements = {ISMRMRD::AcquisitionHeader, Gadgetron::hoNDArray >, std::optional >}; _UElements = {ISMRMRD::AcquisitionHeader, Gadgetron::hoNDArray >, std::optional >}]’
/usr/include/c++/9/bits/stl_algobase.h:820:22: required from ‘static bool std::__equal<_BoolType>::equal(_II1, _II1, _II2) [with _II1 = const std::tuple >, std::optional > >*; _II2 = const std::tuple >, std::optional > >*; bool _BoolType = false]’
/usr/include/c++/9/bits/stl_algobase.h:851:43: required from ‘bool std::__equal_aux(_II1, _II1, _II2) [with _II1 = const std::tuple >, std::optional > >*; _II2 = const std::tuple >, std::optional > >*]’
/usr/include/c++/9/bits/stl_algobase.h:1069:30: required from ‘bool std::equal(_II1, _II1, _II2) [with _II1 = __gnu_cxx::__normal_iterator >, std::optional > >*, std::vector >, std::optional > > > >; _II2 = __gnu_cxx::__normal_iterator >, std::optional > >*, std::vector >, std::optional > > > >]’
/usr/include/c++/9/bits/stl_vector.h:1890:21: required from ‘bool std::operator==(const std::vector<_Tp, _Alloc>&, const std::vector<_Tp, _Alloc>&) [with _Tp = std::tuple >, std::optional > >; _Alloc = std::allocator >, std::optional > > >]’
/home/ofn77899/devel/installg/include/gtest/gtest.h:1392:11: required from ‘testing::AssertionResult testing::internal::CmpHelperEQ(const char*, const char*, const T1&, const T2&) [with T1 = std::vector >, std::optional > > >; T2 = std::vector >, std::optional > > >]’
/home/ofn77899/devel/installg/include/gtest/gtest.h:1421:23: required from ‘static testing::AssertionResult testing::internal::EqHelper::Compare(const char*, const char*, const T1&, const T2&) [with T1 = std::vector >, std::optional > > >; T2 = std::vector >, std::optional > > >; bool lhs_is_null_literal = false]’
/home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/test/read_writer_test.cpp:188:5: required from here
/usr/include/c++/9/tuple:1394:33: error: no match for ‘operator==’ (operand types are ‘std::__tuple_element_t<0, std::tuple >, std::optional > > >’ {aka ‘const ISMRMRD::AcquisitionHeader’} and ‘std::__tuple_element_t<0, std::tuple >, std::optional > > >’ {aka ‘const ISMRMRD::AcquisitionHeader’})
1394 | return bool(std::get<__i>(__t) == std::get<__i>(__u))
| ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/9/iosfwd:40,
from /usr/include/c++/9/system_error:40,
from /usr/include/c++/9/bits/std_mutex.h:39,
from /usr/include/c++/9/condition_variable:39,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/core/Channel.h:3,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/test/read_writer_test.cpp:2:
/usr/include/c++/9/bits/postypes.h:222:5: note: candidate: ‘template bool std::operator==(const std::fpos<_StateT>&, const std::fpos<_StateT>&)’
222 | operator==(const fpos<_StateT>& __lhs, const fpos<_StateT>& __rhs)
| ^~~~~~~~
/usr/include/c++/9/bits/postypes.h:222:5: note: template argument deduction/substitution failed:
In file included from /usr/include/c++/9/bits/unique_ptr.h:37,
from /usr/include/c++/9/condition_variable:44,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/core/Channel.h:3,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/test/read_writer_test.cpp:2:
/usr/include/c++/9/tuple:1394:33: note: ‘std::__tuple_element_t<0, std::tuple >, std::optional > > >’ {aka ‘const ISMRMRD::AcquisitionHeader’} is not derived from ‘const std::fpos<_StateT>’
1394 | return bool(std::get<__i>(__t) == std::get<__i>(__u))
| ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/9/bits/stl_algobase.h:64,
from /usr/include/c++/9/bits/char_traits.h:39,
from /usr/include/c++/9/string:40,
from /usr/include/c++/9/stdexcept:39,
from /usr/include/c++/9/system_error:41,
from /usr/include/c++/9/bits/std_mutex.h:39,
from /usr/include/c++/9/condition_variable:39,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/core/Channel.h:3,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/test/read_writer_test.cpp:2:
/usr/include/c++/9/bits/stl_pair.h:448:5: note: candidate: ‘template constexpr bool std::operator==(const std::pair<_T1, _T2>&, const std::pair<_T1, _T2>&)’
448 | operator==(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y)
| ^~~~~~~~
/usr/include/c++/9/bits/stl_pair.h:448:5: note: template argument deduction/substitution failed:
In file included from /usr/include/c++/9/bits/unique_ptr.h:37,
from /usr/include/c++/9/condition_variable:44,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/core/Channel.h:3,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/test/read_writer_test.cpp:2:
/usr/include/c++/9/tuple:1394:33: note: ‘std::__tuple_element_t<0, std::tuple >, std::optional > > >’ {aka ‘const ISMRMRD::AcquisitionHeader’} is not derived from ‘const std::pair<_T1, _T2>’
1394 | return bool(std::get<__i>(__t) == std::get<__i>(__u))
| ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/9/bits/stl_algobase.h:67,
from /usr/include/c++/9/bits/char_traits.h:39,
from /usr/include/c++/9/string:40,
from /usr/include/c++/9/stdexcept:39,
from /usr/include/c++/9/system_error:41,
from /usr/include/c++/9/bits/std_mutex.h:39,
from /usr/include/c++/9/condition_variable:39,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/core/Channel.h:3,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/test/read_writer_test.cpp:2:
/usr/include/c++/9/bits/stl_iterator.h:325:5: note: candidate: ‘template constexpr bool std::operator==(const std::reverse_iterator<_Iterator>&, const std::reverse_iterator<_Iterator>&)’
325 | operator==(const reverse_iterator<_Iterator>& __x,
| ^~~~~~~~
/usr/include/c++/9/bits/stl_iterator.h:325:5: note: template argument deduction/substitution failed:
In file included from /usr/include/c++/9/bits/unique_ptr.h:37,
from /usr/include/c++/9/condition_variable:44,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/core/Channel.h:3,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/test/read_writer_test.cpp:2:
/usr/include/c++/9/tuple:1394:33: note: ‘std::__tuple_element_t<0, std::tuple >, std::optional > > >’ {aka ‘const ISMRMRD::AcquisitionHeader’} is not derived from ‘const std::reverse_iterator<_Iterator>’
1394 | return bool(std::get<__i>(__t) == std::get<__i>(__u))
| ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/9/bits/stl_algobase.h:67,
from /usr/include/c++/9/bits/char_traits.h:39,
from /usr/include/c++/9/string:40,
from /usr/include/c++/9/stdexcept:39,
from /usr/include/c++/9/system_error:41,
from /usr/include/c++/9/bits/std_mutex.h:39,
from /usr/include/c++/9/condition_variable:39,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/core/Channel.h:3,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/test/read_writer_test.cpp:2:
/usr/include/c++/9/bits/stl_iterator.h:363:5: note: candidate: ‘template constexpr bool std::operator==(const std::reverse_iterator<_Iterator>&, const std::reverse_iterator<_IteratorR>&)’
363 | operator==(const reverse_iterator<_IteratorL>& __x,
| ^~~~~~~~
/usr/include/c++/9/bits/stl_iterator.h:363:5: note: template argument deduction/substitution failed:
In file included from /usr/include/c++/9/bits/unique_ptr.h:37,
from /usr/include/c++/9/condition_variable:44,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/core/Channel.h:3,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/test/read_writer_test.cpp:2:
/usr/include/c++/9/tuple:1394:33: note: ‘std::__tuple_element_t<0, std::tuple >, std::optional > > >’ {aka ‘const ISMRMRD::AcquisitionHeader’} is not derived from ‘const std::reverse_iterator<_Iterator>’
1394 | return bool(std::get<__i>(__t) == std::get<__i>(__u))
| ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/9/bits/stl_algobase.h:67,
from /usr/include/c++/9/bits/char_traits.h:39,
from /usr/include/c++/9/string:40,
from /usr/include/c++/9/stdexcept:39,
from /usr/include/c++/9/system_error:41,
from /usr/include/c++/9/bits/std_mutex.h:39,
from /usr/include/c++/9/condition_variable:39,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/core/Channel.h:3,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/test/read_writer_test.cpp:2:
/usr/include/c++/9/bits/stl_iterator.h:1139:5: note: candidate: ‘template constexpr bool std::operator==(const std::move_iterator<_IteratorL>&, const std::move_iterator<_IteratorR>&)’
1139 | operator==(const move_iterator<_IteratorL>& __x,
| ^~~~~~~~
/usr/include/c++/9/bits/stl_iterator.h:1139:5: note: template argument deduction/substitution failed:
In file included from /usr/include/c++/9/bits/unique_ptr.h:37,
from /usr/include/c++/9/condition_variable:44,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/core/Channel.h:3,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/test/read_writer_test.cpp:2:
/usr/include/c++/9/tuple:1394:33: note: ‘std::__tuple_element_t<0, std::tuple >, std::optional > > >’ {aka ‘const ISMRMRD::AcquisitionHeader’} is not derived from ‘const std::move_iterator<_IteratorL>’
1394 | return bool(std::get<__i>(__t) == std::get<__i>(__u))
| ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/9/bits/stl_algobase.h:67,
from /usr/include/c++/9/bits/char_traits.h:39,
from /usr/include/c++/9/string:40,
from /usr/include/c++/9/stdexcept:39,
from /usr/include/c++/9/system_error:41,
from /usr/include/c++/9/bits/std_mutex.h:39,
from /usr/include/c++/9/condition_variable:39,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/core/Channel.h:3,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/test/read_writer_test.cpp:2:
/usr/include/c++/9/bits/stl_iterator.h:1145:5: note: candidate: ‘template constexpr bool std::operator==(const std::move_iterator<_IteratorL>&, const std::move_iterator<_IteratorL>&)’
1145 | operator==(const move_iterator<_Iterator>& __x,
| ^~~~~~~~
/usr/include/c++/9/bits/stl_iterator.h:1145:5: note: template argument deduction/substitution failed:
In file included from /usr/include/c++/9/bits/unique_ptr.h:37,
from /usr/include/c++/9/condition_variable:44,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/core/Channel.h:3,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/test/read_writer_test.cpp:2:
/usr/include/c++/9/tuple:1394:33: note: ‘std::__tuple_element_t<0, std::tuple >, std::optional > > >’ {aka ‘const ISMRMRD::AcquisitionHeader’} is not derived from ‘const std::move_iterator<_IteratorL>’
1394 | return bool(std::get<__i>(__t) == std::get<__i>(__u))
| ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/9/string:41,
from /usr/include/c++/9/stdexcept:39,
from /usr/include/c++/9/system_error:41,
from /usr/include/c++/9/bits/std_mutex.h:39,
from /usr/include/c++/9/condition_variable:39,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/core/Channel.h:3,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/test/read_writer_test.cpp:2:
/usr/include/c++/9/bits/allocator.h:168:5: note: candidate: ‘template bool std::operator==(const std::allocator<_CharT>&, const std::allocator<_T2>&)’
168 | operator==(const allocator<_T1>&, const allocator<_T2>&)
| ^~~~~~~~
/usr/include/c++/9/bits/allocator.h:168:5: note: template argument deduction/substitution failed:
In file included from /usr/include/c++/9/bits/unique_ptr.h:37,
from /usr/include/c++/9/condition_variable:44,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/core/Channel.h:3,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/test/read_writer_test.cpp:2:
/usr/include/c++/9/tuple:1394:33: note: ‘std::__tuple_element_t<0, std::tuple >, std::optional > > >’ {aka ‘const ISMRMRD::AcquisitionHeader’} is not derived from ‘const std::allocator<_CharT>’
1394 | return bool(std::get<__i>(__t) == std::get<__i>(__u))
| ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/9/bits/basic_string.h:48,
from /usr/include/c++/9/string:55,
from /usr/include/c++/9/stdexcept:39,
from /usr/include/c++/9/system_error:41,
from /usr/include/c++/9/bits/std_mutex.h:39,
from /usr/include/c++/9/condition_variable:39,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/core/Channel.h:3,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/test/read_writer_test.cpp:2:
/usr/include/c++/9/string_view:473:5: note: candidate: ‘template constexpr bool std::operator==(std::basic_string_view<_CharT, _Traits>, std::basic_string_view<_CharT, _Traits>)’
473 | operator==(basic_string_view<_CharT, _Traits> __x,
| ^~~~~~~~
/usr/include/c++/9/string_view:473:5: note: template argument deduction/substitution failed:
In file included from /usr/include/c++/9/bits/unique_ptr.h:37,
from /usr/include/c++/9/condition_variable:44,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/core/Channel.h:3,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/test/read_writer_test.cpp:2:
/usr/include/c++/9/tuple:1394:33: note: ‘ISMRMRD::AcquisitionHeader’ is not derived from ‘std::basic_string_view<_CharT, _Traits>’
1394 | return bool(std::get<__i>(__t) == std::get<__i>(__u))
| ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/9/bits/basic_string.h:48,
from /usr/include/c++/9/string:55,
from /usr/include/c++/9/stdexcept:39,
from /usr/include/c++/9/system_error:41,
from /usr/include/c++/9/bits/std_mutex.h:39,
from /usr/include/c++/9/condition_variable:39,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/core/Channel.h:3,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/test/read_writer_test.cpp:2:
/usr/include/c++/9/string_view:479:5: note: candidate: ‘template constexpr bool std::operator==(std::basic_string_view<_CharT, _Traits>, std::__detail::__idt >)’
479 | operator==(basic_string_view<_CharT, _Traits> __x,
| ^~~~~~~~
/usr/include/c++/9/string_view:479:5: note: template argument deduction/substitution failed:
In file included from /usr/include/c++/9/bits/unique_ptr.h:37,
from /usr/include/c++/9/condition_variable:44,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/core/Channel.h:3,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/test/read_writer_test.cpp:2:
/usr/include/c++/9/tuple:1394:33: note: ‘ISMRMRD::AcquisitionHeader’ is not derived from ‘std::basic_string_view<_CharT, _Traits>’
1394 | return bool(std::get<__i>(__t) == std::get<__i>(__u))
| ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/9/bits/basic_string.h:48,
from /usr/include/c++/9/string:55,
from /usr/include/c++/9/stdexcept:39,
from /usr/include/c++/9/system_error:41,
from /usr/include/c++/9/bits/std_mutex.h:39,
from /usr/include/c++/9/condition_variable:39,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/core/Channel.h:3,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/test/read_writer_test.cpp:2:
/usr/include/c++/9/string_view:485:5: note: candidate: ‘template constexpr bool std::operator==(std::__detail::__idt >, std::basic_string_view<_CharT, _Traits>)’
485 | operator==(__detail::__idt> __x,
| ^~~~~~~~
/usr/include/c++/9/string_view:485:5: note: template argument deduction/substitution failed:
In file included from /usr/include/c++/9/bits/unique_ptr.h:37,
from /usr/include/c++/9/condition_variable:44,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/core/Channel.h:3,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/test/read_writer_test.cpp:2:
/usr/include/c++/9/tuple:1394:33: note: ‘ISMRMRD::AcquisitionHeader’ is not derived from ‘std::basic_string_view<_CharT, _Traits>’
1394 | return bool(std::get<__i>(__t) == std::get<__i>(__u))
| ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/9/string:55,
from /usr/include/c++/9/stdexcept:39,
from /usr/include/c++/9/system_error:41,
from /usr/include/c++/9/bits/std_mutex.h:39,
from /usr/include/c++/9/condition_variable:39,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/core/Channel.h:3,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/test/read_writer_test.cpp:2:
/usr/include/c++/9/bits/basic_string.h:6141:5: note: candidate: ‘template bool std::operator==(const std::__cxx11::basic_string<_CharT, _Traits, _Allocator>&, const std::__cxx11::basic_string<_CharT, _Traits, _Allocator>&)’
6141 | operator==(const basic_string<_CharT, _Traits, _Alloc>& __lhs,
| ^~~~~~~~
/usr/include/c++/9/bits/basic_string.h:6141:5: note: template argument deduction/substitution failed:
In file included from /usr/include/c++/9/bits/unique_ptr.h:37,
from /usr/include/c++/9/condition_variable:44,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/core/Channel.h:3,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/test/read_writer_test.cpp:2:
/usr/include/c++/9/tuple:1394:33: note: ‘std::__tuple_element_t<0, std::tuple >, std::optional > > >’ {aka ‘const ISMRMRD::AcquisitionHeader’} is not derived from ‘const std::__cxx11::basic_string<_CharT, _Traits, _Allocator>’
1394 | return bool(std::get<__i>(__t) == std::get<__i>(__u))
| ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/9/string:55,
from /usr/include/c++/9/stdexcept:39,
from /usr/include/c++/9/system_error:41,
from /usr/include/c++/9/bits/std_mutex.h:39,
from /usr/include/c++/9/condition_variable:39,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/core/Channel.h:3,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/test/read_writer_test.cpp:2:
/usr/include/c++/9/bits/basic_string.h:6149:5: note: candidate: ‘template typename __gnu_cxx::__enable_if::__value, bool>::__type std::operator==(const std::__cxx11::basic_string<_CharT>&, const std::__cxx11::basic_string<_CharT>&)’
6149 | operator==(const basic_string<_CharT>& __lhs,
| ^~~~~~~~
/usr/include/c++/9/bits/basic_string.h:6149:5: note: template argument deduction/substitution failed:
In file included from /usr/include/c++/9/bits/unique_ptr.h:37,
from /usr/include/c++/9/condition_variable:44,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/core/Channel.h:3,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/test/read_writer_test.cpp:2:
/usr/include/c++/9/tuple:1394:33: note: ‘std::__tuple_element_t<0, std::tuple >, std::optional > > >’ {aka ‘const ISMRMRD::AcquisitionHeader’} is not derived from ‘const std::__cxx11::basic_string<_CharT>’
1394 | return bool(std::get<__i>(__t) == std::get<__i>(__u))
| ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/9/string:55,
from /usr/include/c++/9/stdexcept:39,
from /usr/include/c++/9/system_error:41,
from /usr/include/c++/9/bits/std_mutex.h:39,
from /usr/include/c++/9/condition_variable:39,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/core/Channel.h:3,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/test/read_writer_test.cpp:2:
/usr/include/c++/9/bits/basic_string.h:6163:5: note: candidate: ‘template bool std::operator==(const _CharT*, const std::__cxx11::basic_string<_CharT, _Traits, _Allocator>&)’
6163 | operator==(const _CharT* __lhs,
| ^~~~~~~~
/usr/include/c++/9/bits/basic_string.h:6163:5: note: template argument deduction/substitution failed:
In file included from /usr/include/c++/9/bits/unique_ptr.h:37,
from /usr/include/c++/9/condition_variable:44,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/core/Channel.h:3,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/test/read_writer_test.cpp:2:
/usr/include/c++/9/tuple:1394:33: note: mismatched types ‘const _CharT*’ and ‘ISMRMRD::AcquisitionHeader’
1394 | return bool(std::get<__i>(__t) == std::get<__i>(__u))
| ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/9/string:55,
from /usr/include/c++/9/stdexcept:39,
from /usr/include/c++/9/system_error:41,
from /usr/include/c++/9/bits/std_mutex.h:39,
from /usr/include/c++/9/condition_variable:39,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/core/Channel.h:3,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/test/read_writer_test.cpp:2:
/usr/include/c++/9/bits/basic_string.h:6175:5: note: candidate: ‘template bool std::operator==(const std::__cxx11::basic_string<_CharT, _Traits, _Allocator>&, const _CharT*)’
6175 | operator==(const basic_string<_CharT, _Traits, _Alloc>& __lhs,
| ^~~~~~~~
/usr/include/c++/9/bits/basic_string.h:6175:5: note: template argument deduction/substitution failed:
In file included from /usr/include/c++/9/bits/unique_ptr.h:37,
from /usr/include/c++/9/condition_variable:44,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/core/Channel.h:3,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/test/read_writer_test.cpp:2:
/usr/include/c++/9/tuple:1394:33: note: ‘std::__tuple_element_t<0, std::tuple >, std::optional > > >’ {aka ‘const ISMRMRD::AcquisitionHeader’} is not derived from ‘const std::__cxx11::basic_string<_CharT, _Traits, _Allocator>’
1394 | return bool(std::get<__i>(__t) == std::get<__i>(__u))
| ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/9/bits/std_mutex.h:39,
from /usr/include/c++/9/condition_variable:39,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/core/Channel.h:3,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/test/read_writer_test.cpp:2:
/usr/include/c++/9/system_error:292:3: note: candidate: ‘bool std::operator==(const std::error_code&, const std::error_code&)’
292 | operator==(const error_code& __lhs, const error_code& __rhs) noexcept
| ^~~~~~~~
/usr/include/c++/9/system_error:292:32: note: no known conversion for argument 1 from ‘std::__tuple_element_t<0, std::tuple >, std::optional > > >’ {aka ‘const ISMRMRD::AcquisitionHeader’} to ‘const std::error_code&’
292 | operator==(const error_code& __lhs, const error_code& __rhs) noexcept
| ~~~~~~~~~~~~~~~~~~^~~~~
/usr/include/c++/9/system_error:297:3: note: candidate: ‘bool std::operator==(const std::error_code&, const std::error_condition&)’
297 | operator==(const error_code& __lhs, const error_condition& __rhs) noexcept
| ^~~~~~~~
/usr/include/c++/9/system_error:297:32: note: no known conversion for argument 1 from ‘std::__tuple_element_t<0, std::tuple >, std::optional > > >’ {aka ‘const ISMRMRD::AcquisitionHeader’} to ‘const std::error_code&’
297 | operator==(const error_code& __lhs, const error_condition& __rhs) noexcept
| ~~~~~~~~~~~~~~~~~~^~~~~
/usr/include/c++/9/system_error:304:3: note: candidate: ‘bool std::operator==(const std::error_condition&, const std::error_code&)’
304 | operator==(const error_condition& __lhs, const error_code& __rhs) noexcept
| ^~~~~~~~
/usr/include/c++/9/system_error:304:37: note: no known conversion for argument 1 from ‘std::__tuple_element_t<0, std::tuple >, std::optional > > >’ {aka ‘const ISMRMRD::AcquisitionHeader’} to ‘const std::error_condition&’
304 | operator==(const error_condition& __lhs, const error_code& __rhs) noexcept
| ~~~~~~~~~~~~~~~~~~~~~~~^~~~~
/usr/include/c++/9/system_error:311:3: note: candidate: ‘bool std::operator==(const std::error_condition&, const std::error_condition&)’
311 | operator==(const error_condition& __lhs,
| ^~~~~~~~
/usr/include/c++/9/system_error:311:37: note: no known conversion for argument 1 from ‘std::__tuple_element_t<0, std::tuple >, std::optional > > >’ {aka ‘const ISMRMRD::AcquisitionHeader’} to ‘const std::error_condition&’
311 | operator==(const error_condition& __lhs,
| ~~~~~~~~~~~~~~~~~~~~~~~^~~~~
In file included from /usr/include/c++/9/tuple:39,
from /usr/include/c++/9/bits/unique_ptr.h:37,
from /usr/include/c++/9/condition_variable:44,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/core/Channel.h:3,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/test/read_writer_test.cpp:2:
/usr/include/c++/9/array:252:5: note: candidate: ‘template bool std::operator==(const std::array<_Tp, _Nm>&, const std::array<_Tp, _Nm>&)’
252 | operator==(const array<_Tp, _Nm>& __one, const array<_Tp, _Nm>& __two)
| ^~~~~~~~
/usr/include/c++/9/array:252:5: note: template argument deduction/substitution failed:
In file included from /usr/include/c++/9/bits/unique_ptr.h:37,
from /usr/include/c++/9/condition_variable:44,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/core/Channel.h:3,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/test/read_writer_test.cpp:2:
/usr/include/c++/9/tuple:1394:33: note: ‘std::__tuple_element_t<0, std::tuple >, std::optional > > >’ {aka ‘const ISMRMRD::AcquisitionHeader’} is not derived from ‘const std::array<_Tp, _Nm>’
1394 | return bool(std::get<__i>(__t) == std::get<__i>(__u))
| ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/9/tuple:1419:5: note: candidate: ‘template constexpr bool std::operator==(const std::tuple<_Tps ...>&, const std::tuple<_Elements ...>&)’
1419 | operator==(const tuple<_TElements...>& __t,
| ^~~~~~~~
/usr/include/c++/9/tuple:1419:5: note: template argument deduction/substitution failed:
/usr/include/c++/9/tuple:1394:33: note: ‘std::__tuple_element_t<0, std::tuple >, std::optional > > >’ {aka ‘const ISMRMRD::AcquisitionHeader’} is not derived from ‘const std::tuple<_Tps ...>’
1394 | return bool(std::get<__i>(__t) == std::get<__i>(__u))
| ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/9/condition_variable:44,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/core/Channel.h:3,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/test/read_writer_test.cpp:2:
/usr/include/c++/9/bits/unique_ptr.h:715:5: note: candidate: ‘template bool std::operator==(const std::unique_ptr<_Tp, _Dp>&, const std::unique_ptr<_Up, _Ep>&)’
715 | operator==(const unique_ptr<_Tp, _Dp>& __x,
| ^~~~~~~~
/usr/include/c++/9/bits/unique_ptr.h:715:5: note: template argument deduction/substitution failed:
In file included from /usr/include/c++/9/bits/unique_ptr.h:37,
from /usr/include/c++/9/condition_variable:44,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/core/Channel.h:3,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/test/read_writer_test.cpp:2:
/usr/include/c++/9/tuple:1394:33: note: ‘std::__tuple_element_t<0, std::tuple >, std::optional > > >’ {aka ‘const ISMRMRD::AcquisitionHeader’} is not derived from ‘const std::unique_ptr<_Tp, _Dp>’
1394 | return bool(std::get<__i>(__t) == std::get<__i>(__u))
| ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/9/condition_variable:44,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/core/Channel.h:3,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/test/read_writer_test.cpp:2:
/usr/include/c++/9/bits/unique_ptr.h:721:5: note: candidate: ‘template bool std::operator==(const std::unique_ptr<_Tp, _Dp>&, std::nullptr_t)’
721 | operator==(const unique_ptr<_Tp, _Dp>& __x, nullptr_t) noexcept
| ^~~~~~~~
/usr/include/c++/9/bits/unique_ptr.h:721:5: note: template argument deduction/substitution failed:
In file included from /usr/include/c++/9/bits/unique_ptr.h:37,
from /usr/include/c++/9/condition_variable:44,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/core/Channel.h:3,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/test/read_writer_test.cpp:2:
/usr/include/c++/9/tuple:1394:33: note: ‘std::__tuple_element_t<0, std::tuple >, std::optional > > >’ {aka ‘const ISMRMRD::AcquisitionHeader’} is not derived from ‘const std::unique_ptr<_Tp, _Dp>’
1394 | return bool(std::get<__i>(__t) == std::get<__i>(__u))
| ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/9/condition_variable:44,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/core/Channel.h:3,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/test/read_writer_test.cpp:2:
/usr/include/c++/9/bits/unique_ptr.h:726:5: note: candidate: ‘template bool std::operator==(std::nullptr_t, const std::unique_ptr<_Tp, _Dp>&)’
726 | operator==(nullptr_t, const unique_ptr<_Tp, _Dp>& __x) noexcept
| ^~~~~~~~
/usr/include/c++/9/bits/unique_ptr.h:726:5: note: template argument deduction/substitution failed:
In file included from /usr/include/c++/9/bits/unique_ptr.h:37,
from /usr/include/c++/9/condition_variable:44,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/core/Channel.h:3,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/test/read_writer_test.cpp:2:
/usr/include/c++/9/tuple:1394:33: note: ‘std::__tuple_element_t<0, std::tuple >, std::optional > > >’ {aka ‘const ISMRMRD::AcquisitionHeader’} is not derived from ‘const std::unique_ptr<_Tp, _Dp>’
1394 | return bool(std::get<__i>(__t) == std::get<__i>(__u))
| ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/9/bits/shared_ptr.h:52,
from /usr/include/c++/9/condition_variable:45,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/core/Channel.h:3,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/test/read_writer_test.cpp:2:
/usr/include/c++/9/bits/shared_ptr_base.h:1412:5: note: candidate: ‘template bool std::operator==(const std::__shared_ptr<_Tp1, _Lp>&, const std::__shared_ptr<_Tp2, _Lp>&)’
1412 | operator==(const __shared_ptr<_Tp1, _Lp>& __a,
| ^~~~~~~~
/usr/include/c++/9/bits/shared_ptr_base.h:1412:5: note: template argument deduction/substitution failed:
In file included from /usr/include/c++/9/bits/unique_ptr.h:37,
from /usr/include/c++/9/condition_variable:44,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/core/Channel.h:3,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/test/read_writer_test.cpp:2:
/usr/include/c++/9/tuple:1394:33: note: ‘std::__tuple_element_t<0, std::tuple >, std::optional > > >’ {aka ‘const ISMRMRD::AcquisitionHeader’} is not derived from ‘const std::__shared_ptr<_Tp1, _Lp>’
1394 | return bool(std::get<__i>(__t) == std::get<__i>(__u))
| ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/9/bits/shared_ptr.h:52,
from /usr/include/c++/9/condition_variable:45,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/core/Channel.h:3,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/test/read_writer_test.cpp:2:
/usr/include/c++/9/bits/shared_ptr_base.h:1418:5: note: candidate: ‘template bool std::operator==(const std::__shared_ptr<_Tp, _Lp>&, std::nullptr_t)’
1418 | operator==(const __shared_ptr<_Tp, _Lp>& __a, nullptr_t) noexcept
| ^~~~~~~~
/usr/include/c++/9/bits/shared_ptr_base.h:1418:5: note: template argument deduction/substitution failed:
In file included from /usr/include/c++/9/bits/unique_ptr.h:37,
from /usr/include/c++/9/condition_variable:44,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/core/Channel.h:3,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/test/read_writer_test.cpp:2:
/usr/include/c++/9/tuple:1394:33: note: ‘std::__tuple_element_t<0, std::tuple >, std::optional > > >’ {aka ‘const ISMRMRD::AcquisitionHeader’} is not derived from ‘const std::__shared_ptr<_Tp, _Lp>’
1394 | return bool(std::get<__i>(__t) == std::get<__i>(__u))
| ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/9/bits/shared_ptr.h:52,
from /usr/include/c++/9/condition_variable:45,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/core/Channel.h:3,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/test/read_writer_test.cpp:2:
/usr/include/c++/9/bits/shared_ptr_base.h:1423:5: note: candidate: ‘template bool std::operator==(std::nullptr_t, const std::__shared_ptr<_Tp, _Lp>&)’
1423 | operator==(nullptr_t, const __shared_ptr<_Tp, _Lp>& __a) noexcept
| ^~~~~~~~
/usr/include/c++/9/bits/shared_ptr_base.h:1423:5: note: template argument deduction/substitution failed:
In file included from /usr/include/c++/9/bits/unique_ptr.h:37,
from /usr/include/c++/9/condition_variable:44,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/core/Channel.h:3,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/test/read_writer_test.cpp:2:
/usr/include/c++/9/tuple:1394:33: note: ‘std::__tuple_element_t<0, std::tuple >, std::optional > > >’ {aka ‘const ISMRMRD::AcquisitionHeader’} is not derived from ‘const std::__shared_ptr<_Tp, _Lp>’
1394 | return bool(std::get<__i>(__t) == std::get<__i>(__u))
| ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/9/condition_variable:45,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/core/Channel.h:3,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/test/read_writer_test.cpp:2:
/usr/include/c++/9/bits/shared_ptr.h:383:5: note: candidate: ‘template bool std::operator==(const std::shared_ptr<_Tp>&, const std::shared_ptr<_Tp>&)’
383 | operator==(const shared_ptr<_Tp>& __a, const shared_ptr<_Up>& __b) noexcept
| ^~~~~~~~
/usr/include/c++/9/bits/shared_ptr.h:383:5: note: template argument deduction/substitution failed:
In file included from /usr/include/c++/9/bits/unique_ptr.h:37,
from /usr/include/c++/9/condition_variable:44,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/core/Channel.h:3,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/test/read_writer_test.cpp:2:
/usr/include/c++/9/tuple:1394:33: note: ‘std::__tuple_element_t<0, std::tuple >, std::optional > > >’ {aka ‘const ISMRMRD::AcquisitionHeader’} is not derived from ‘const std::shared_ptr<_Tp>’
1394 | return bool(std::get<__i>(__t) == std::get<__i>(__u))
| ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/9/condition_variable:45,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/core/Channel.h:3,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/test/read_writer_test.cpp:2:
/usr/include/c++/9/bits/shared_ptr.h:388:5: note: candidate: ‘template bool std::operator==(const std::shared_ptr<_Tp>&, std::nullptr_t)’
388 | operator==(const shared_ptr<_Tp>& __a, nullptr_t) noexcept
| ^~~~~~~~
/usr/include/c++/9/bits/shared_ptr.h:388:5: note: template argument deduction/substitution failed:
In file included from /usr/include/c++/9/bits/unique_ptr.h:37,
from /usr/include/c++/9/condition_variable:44,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/core/Channel.h:3,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/test/read_writer_test.cpp:2:
/usr/include/c++/9/tuple:1394:33: note: ‘std::__tuple_element_t<0, std::tuple >, std::optional > > >’ {aka ‘const ISMRMRD::AcquisitionHeader’} is not derived from ‘const std::shared_ptr<_Tp>’
1394 | return bool(std::get<__i>(__t) == std::get<__i>(__u))
| ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/9/condition_variable:45,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/core/Channel.h:3,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/test/read_writer_test.cpp:2:
/usr/include/c++/9/bits/shared_ptr.h:393:5: note: candidate: ‘template bool std::operator==(std::nullptr_t, const std::shared_ptr<_Tp>&)’
393 | operator==(nullptr_t, const shared_ptr<_Tp>& __a) noexcept
| ^~~~~~~~
/usr/include/c++/9/bits/shared_ptr.h:393:5: note: template argument deduction/substitution failed:
In file included from /usr/include/c++/9/bits/unique_ptr.h:37,
from /usr/include/c++/9/condition_variable:44,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/core/Channel.h:3,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/test/read_writer_test.cpp:2:
/usr/include/c++/9/tuple:1394:33: note: ‘std::__tuple_element_t<0, std::tuple >, std::optional > > >’ {aka ‘const ISMRMRD::AcquisitionHeader’} is not derived from ‘const std::shared_ptr<_Tp>’
1394 | return bool(std::get<__i>(__t) == std::get<__i>(__u))
| ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/9/list:63,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/core/Channel.h:4,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/test/read_writer_test.cpp:2:
/usr/include/c++/9/bits/stl_list.h:1991:5: note: candidate: ‘template bool std::operator==(const std::__cxx11::list<_Tp, _Alloc>&, const std::__cxx11::list<_Tp, _Alloc>&)’
1991 | operator==(const list<_Tp, _Alloc>& __x, const list<_Tp, _Alloc>& __y)
| ^~~~~~~~
/usr/include/c++/9/bits/stl_list.h:1991:5: note: template argument deduction/substitution failed:
In file included from /usr/include/c++/9/bits/unique_ptr.h:37,
from /usr/include/c++/9/condition_variable:44,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/core/Channel.h:3,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/test/read_writer_test.cpp:2:
/usr/include/c++/9/tuple:1394:33: note: ‘std::__tuple_element_t<0, std::tuple >, std::optional > > >’ {aka ‘const ISMRMRD::AcquisitionHeader’} is not derived from ‘const std::__cxx11::list<_Tp, _Alloc>’
1394 | return bool(std::get<__i>(__t) == std::get<__i>(__u))
| ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/9/bits/locale_facets.h:48,
from /usr/include/c++/9/bits/basic_ios.h:37,
from /usr/include/c++/9/ios:44,
from /usr/include/c++/9/istream:38,
from /usr/include/c++/9/sstream:38,
from /usr/include/c++/9/complex:45,
from /home/ofn77899/devel/installg/include/ismrmrd/ismrmrd.h:40,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/core/Types.h:3,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/core/MPMCChannel.h:3,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/core/Channel.h:8,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/test/read_writer_test.cpp:2:
/usr/include/c++/9/bits/streambuf_iterator.h:208:5: note: candidate: ‘template bool std::operator==(const std::istreambuf_iterator<_CharT, _Traits>&, const std::istreambuf_iterator<_CharT, _Traits>&)’
208 | operator==(const istreambuf_iterator<_CharT, _Traits>& __a,
| ^~~~~~~~
/usr/include/c++/9/bits/streambuf_iterator.h:208:5: note: template argument deduction/substitution failed:
In file included from /usr/include/c++/9/bits/unique_ptr.h:37,
from /usr/include/c++/9/condition_variable:44,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/core/Channel.h:3,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/test/read_writer_test.cpp:2:
/usr/include/c++/9/tuple:1394:33: note: ‘std::__tuple_element_t<0, std::tuple >, std::optional > > >’ {aka ‘const ISMRMRD::AcquisitionHeader’} is not derived from ‘const std::istreambuf_iterator<_CharT, _Traits>’
1394 | return bool(std::get<__i>(__t) == std::get<__i>(__u))
| ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
In file included from /home/ofn77899/devel/installg/include/ismrmrd/ismrmrd.h:40,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/core/Types.h:3,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/core/MPMCChannel.h:3,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/core/Channel.h:8,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/test/read_writer_test.cpp:2:
/usr/include/c++/9/complex:459:5: note: candidate: ‘template constexpr bool std::operator==(const std::complex<_Tp>&, const std::complex<_Tp>&)’
459 | operator==(const complex<_Tp>& __x, const complex<_Tp>& __y)
| ^~~~~~~~
/usr/include/c++/9/complex:459:5: note: template argument deduction/substitution failed:
In file included from /usr/include/c++/9/bits/unique_ptr.h:37,
from /usr/include/c++/9/condition_variable:44,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/core/Channel.h:3,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/test/read_writer_test.cpp:2:
/usr/include/c++/9/tuple:1394:33: note: ‘std::__tuple_element_t<0, std::tuple >, std::optional > > >’ {aka ‘const ISMRMRD::AcquisitionHeader’} is not derived from ‘const std::complex<_Tp>’
1394 | return bool(std::get<__i>(__t) == std::get<__i>(__u))
| ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
In file included from /home/ofn77899/devel/installg/include/ismrmrd/ismrmrd.h:40,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/core/Types.h:3,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/core/MPMCChannel.h:3,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/core/Channel.h:8,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/test/read_writer_test.cpp:2:
/usr/include/c++/9/complex:464:5: note: candidate: ‘template constexpr bool std::operator==(const std::complex<_Tp>&, const _Tp&)’
464 | operator==(const complex<_Tp>& __x, const _Tp& __y)
| ^~~~~~~~
/usr/include/c++/9/complex:464:5: note: template argument deduction/substitution failed:
In file included from /usr/include/c++/9/bits/unique_ptr.h:37,
from /usr/include/c++/9/condition_variable:44,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/core/Channel.h:3,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/test/read_writer_test.cpp:2:
/usr/include/c++/9/tuple:1394:33: note: ‘std::__tuple_element_t<0, std::tuple >, std::optional > > >’ {aka ‘const ISMRMRD::AcquisitionHeader’} is not derived from ‘const std::complex<_Tp>’
1394 | return bool(std::get<__i>(__t) == std::get<__i>(__u))
| ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
In file included from /home/ofn77899/devel/installg/include/ismrmrd/ismrmrd.h:40,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/core/Types.h:3,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/core/MPMCChannel.h:3,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/core/Channel.h:8,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/test/read_writer_test.cpp:2:
/usr/include/c++/9/complex:469:5: note: candidate: ‘template constexpr bool std::operator==(const _Tp&, const std::complex<_Tp>&)’
469 | operator==(const _Tp& __x, const complex<_Tp>& __y)
| ^~~~~~~~
/usr/include/c++/9/complex:469:5: note: template argument deduction/substitution failed:
In file included from /usr/include/c++/9/bits/unique_ptr.h:37,
from /usr/include/c++/9/condition_variable:44,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/core/Channel.h:3,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/test/read_writer_test.cpp:2:
/usr/include/c++/9/tuple:1394:33: note: ‘std::__tuple_element_t<0, std::tuple >, std::optional > > >’ {aka ‘const ISMRMRD::AcquisitionHeader’} is not derived from ‘const std::complex<_Tp>’
1394 | return bool(std::get<__i>(__t) == std::get<__i>(__u))
| ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/9/vector:67,
from /home/ofn77899/devel/installg/include/ismrmrd/ismrmrd.h:73,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/core/Types.h:3,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/core/MPMCChannel.h:3,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/core/Channel.h:8,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/test/read_writer_test.cpp:2:
/usr/include/c++/9/bits/stl_vector.h:1888:5: note: candidate: ‘template bool std::operator==(const std::vector<_Tp, _Alloc>&, const std::vector<_Tp, _Alloc>&)’
1888 | operator==(const vector<_Tp, _Alloc>& __x, const vector<_Tp, _Alloc>& __y)
| ^~~~~~~~
/usr/include/c++/9/bits/stl_vector.h:1888:5: note: template argument deduction/substitution failed:
In file included from /usr/include/c++/9/bits/unique_ptr.h:37,
from /usr/include/c++/9/condition_variable:44,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/core/Channel.h:3,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/test/read_writer_test.cpp:2:
/usr/include/c++/9/tuple:1394:33: note: ‘std::__tuple_element_t<0, std::tuple >, std::optional > > >’ {aka ‘const ISMRMRD::AcquisitionHeader’} is not derived from ‘const std::vector<_Tp, _Alloc>’
1394 | return bool(std::get<__i>(__t) == std::get<__i>(__u))
| ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/9/bits/node_handle.h:39,
from /usr/include/c++/9/bits/stl_tree.h:72,
from /usr/include/c++/9/map:60,
from /home/ofn77899/devel/installg/include/ismrmrd/meta.h:15,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/core/Types.h:4,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/core/MPMCChannel.h:3,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/core/Channel.h:8,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/test/read_writer_test.cpp:2:
/usr/include/c++/9/optional:983:5: note: candidate: ‘template constexpr std::__optional_relop_t() == declval<_Up>()))> std::operator==(const std::optional<_Tp>&, const std::optional<_Up>&)’
983 | operator==(const optional<_Tp>& __lhs, const optional<_Up>& __rhs)
| ^~~~~~~~
/usr/include/c++/9/optional:983:5: note: template argument deduction/substitution failed:
In file included from /usr/include/c++/9/bits/unique_ptr.h:37,
from /usr/include/c++/9/condition_variable:44,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/core/Channel.h:3,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/test/read_writer_test.cpp:2:
/usr/include/c++/9/tuple:1394:33: note: ‘std::__tuple_element_t<0, std::tuple >, std::optional > > >’ {aka ‘const ISMRMRD::AcquisitionHeader’} is not derived from ‘const std::optional<_Tp>’
1394 | return bool(std::get<__i>(__t) == std::get<__i>(__u))
| ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/9/bits/node_handle.h:39,
from /usr/include/c++/9/bits/stl_tree.h:72,
from /usr/include/c++/9/map:60,
from /home/ofn77899/devel/installg/include/ismrmrd/meta.h:15,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/core/Types.h:4,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/core/MPMCChannel.h:3,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/core/Channel.h:8,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/test/read_writer_test.cpp:2:
/usr/include/c++/9/optional:1034:5: note: candidate: ‘template constexpr bool std::operator==(const std::optional<_Tp>&, std::nullopt_t)’
1034 | operator==(const optional<_Tp>& __lhs, nullopt_t) noexcept
| ^~~~~~~~
/usr/include/c++/9/optional:1034:5: note: template argument deduction/substitution failed:
In file included from /usr/include/c++/9/bits/unique_ptr.h:37,
from /usr/include/c++/9/condition_variable:44,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/core/Channel.h:3,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/test/read_writer_test.cpp:2:
/usr/include/c++/9/tuple:1394:33: note: ‘std::__tuple_element_t<0, std::tuple >, std::optional > > >’ {aka ‘const ISMRMRD::AcquisitionHeader’} is not derived from ‘const std::optional<_Tp>’
1394 | return bool(std::get<__i>(__t) == std::get<__i>(__u))
| ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/9/bits/node_handle.h:39,
from /usr/include/c++/9/bits/stl_tree.h:72,
from /usr/include/c++/9/map:60,
from /home/ofn77899/devel/installg/include/ismrmrd/meta.h:15,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/core/Types.h:4,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/core/MPMCChannel.h:3,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/core/Channel.h:8,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/test/read_writer_test.cpp:2:
/usr/include/c++/9/optional:1039:5: note: candidate: ‘template constexpr bool std::operator==(std::nullopt_t, const std::optional<_Tp>&)’
1039 | operator==(nullopt_t, const optional<_Tp>& __rhs) noexcept
| ^~~~~~~~
/usr/include/c++/9/optional:1039:5: note: template argument deduction/substitution failed:
In file included from /usr/include/c++/9/bits/unique_ptr.h:37,
from /usr/include/c++/9/condition_variable:44,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/core/Channel.h:3,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/test/read_writer_test.cpp:2:
/usr/include/c++/9/tuple:1394:33: note: ‘std::__tuple_element_t<0, std::tuple >, std::optional > > >’ {aka ‘const ISMRMRD::AcquisitionHeader’} is not derived from ‘const std::optional<_Tp>’
1394 | return bool(std::get<__i>(__t) == std::get<__i>(__u))
| ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/9/bits/node_handle.h:39,
from /usr/include/c++/9/bits/stl_tree.h:72,
from /usr/include/c++/9/map:60,
from /home/ofn77899/devel/installg/include/ismrmrd/meta.h:15,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/core/Types.h:4,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/core/MPMCChannel.h:3,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/core/Channel.h:8,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/test/read_writer_test.cpp:2:
/usr/include/c++/9/optional:1095:5: note: candidate: ‘template constexpr std::__optional_relop_t() == declval<_Up>()))> std::operator==(const std::optional<_Tp>&, const _Up&)’
1095 | operator==(const optional<_Tp>& __lhs, const _Up& __rhs)
| ^~~~~~~~
/usr/include/c++/9/optional:1095:5: note: template argument deduction/substitution failed:
In file included from /usr/include/c++/9/bits/unique_ptr.h:37,
from /usr/include/c++/9/condition_variable:44,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/core/Channel.h:3,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/test/read_writer_test.cpp:2:
/usr/include/c++/9/tuple:1394:33: note: ‘std::__tuple_element_t<0, std::tuple >, std::optional > > >’ {aka ‘const ISMRMRD::AcquisitionHeader’} is not derived from ‘const std::optional<_Tp>’
1394 | return bool(std::get<__i>(__t) == std::get<__i>(__u))
| ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/9/bits/node_handle.h:39,
from /usr/include/c++/9/bits/stl_tree.h:72,
from /usr/include/c++/9/map:60,
from /home/ofn77899/devel/installg/include/ismrmrd/meta.h:15,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/core/Types.h:4,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/core/MPMCChannel.h:3,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/core/Channel.h:8,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/test/read_writer_test.cpp:2:
/usr/include/c++/9/optional:1101:5: note: candidate: ‘template constexpr std::__optional_relop_t() == declval<_Tp>()))> std::operator==(const _Up&, const std::optional<_Tp>&)’
1101 | operator==(const _Up& __lhs, const optional<_Tp>& __rhs)
| ^~~~~~~~
/usr/include/c++/9/optional:1101:5: note: template argument deduction/substitution failed:
In file included from /usr/include/c++/9/bits/unique_ptr.h:37,
from /usr/include/c++/9/condition_variable:44,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/core/Channel.h:3,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/test/read_writer_test.cpp:2:
/usr/include/c++/9/tuple:1394:33: note: ‘std::__tuple_element_t<0, std::tuple >, std::optional > > >’ {aka ‘const ISMRMRD::AcquisitionHeader’} is not derived from ‘const std::optional<_Tp>’
1394 | return bool(std::get<__i>(__t) == std::get<__i>(__u))
| ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/9/map:61,
from /home/ofn77899/devel/installg/include/ismrmrd/meta.h:15,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/core/Types.h:4,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/core/MPMCChannel.h:3,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/core/Channel.h:8,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/test/read_writer_test.cpp:2:
/usr/include/c++/9/bits/stl_map.h:1455:5: note: candidate: ‘template bool std::operator==(const std::map<_Key, _Tp, _Compare, _Allocator>&, const std::map<_Key, _Tp, _Compare, _Allocator>&)’
1455 | operator==(const map<_Key, _Tp, _Compare, _Alloc>& __x,
| ^~~~~~~~
/usr/include/c++/9/bits/stl_map.h:1455:5: note: template argument deduction/substitution failed:
In file included from /usr/include/c++/9/bits/unique_ptr.h:37,
from /usr/include/c++/9/condition_variable:44,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/core/Channel.h:3,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/test/read_writer_test.cpp:2:
/usr/include/c++/9/tuple:1394:33: note: ‘std::__tuple_element_t<0, std::tuple >, std::optional > > >’ {aka ‘const ISMRMRD::AcquisitionHeader’} is not derived from ‘const std::map<_Key, _Tp, _Compare, _Allocator>’
1394 | return bool(std::get<__i>(__t) == std::get<__i>(__u))
| ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/9/map:62,
from /home/ofn77899/devel/installg/include/ismrmrd/meta.h:15,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/core/Types.h:4,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/core/MPMCChannel.h:3,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/core/Channel.h:8,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/test/read_writer_test.cpp:2:
/usr/include/c++/9/bits/stl_multimap.h:1119:5: note: candidate: ‘template bool std::operator==(const std::multimap<_Key, _Tp, _Compare, _Allocator>&, const std::multimap<_Key, _Tp, _Compare, _Allocator>&)’
1119 | operator==(const multimap<_Key, _Tp, _Compare, _Alloc>& __x,
| ^~~~~~~~
/usr/include/c++/9/bits/stl_multimap.h:1119:5: note: template argument deduction/substitution failed:
In file included from /usr/include/c++/9/bits/unique_ptr.h:37,
from /usr/include/c++/9/condition_variable:44,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/core/Channel.h:3,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/test/read_writer_test.cpp:2:
/usr/include/c++/9/tuple:1394:33: note: ‘std::__tuple_element_t<0, std::tuple >, std::optional > > >’ {aka ‘const ISMRMRD::AcquisitionHeader’} is not derived from ‘const std::multimap<_Key, _Tp, _Compare, _Allocator>’
1394 | return bool(std::get<__i>(__t) == std::get<__i>(__u))
| ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/9/functional:59,
from /usr/include/c++/9/pstl/glue_algorithm_defs.h:13,
from /usr/include/c++/9/algorithm:71,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/toolboxes/core/NDArray.h:15,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/toolboxes/core/cpu/hoNDArray.h:7,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/core/Types.h:8,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/core/MPMCChannel.h:3,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/core/Channel.h:8,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/test/read_writer_test.cpp:2:
/usr/include/c++/9/bits/std_function.h:746:5: note: candidate: ‘template bool std::operator==(const std::function<_Res(_ArgTypes ...)>&, std::nullptr_t)’
746 | operator==(const function<_Res(_Args...)>& __f, nullptr_t) noexcept
| ^~~~~~~~
/usr/include/c++/9/bits/std_function.h:746:5: note: template argument deduction/substitution failed:
In file included from /usr/include/c++/9/bits/unique_ptr.h:37,
from /usr/include/c++/9/condition_variable:44,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/core/Channel.h:3,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/test/read_writer_test.cpp:2:
/usr/include/c++/9/tuple:1394:33: note: ‘std::__tuple_element_t<0, std::tuple >, std::optional > > >’ {aka ‘const ISMRMRD::AcquisitionHeader’} is not derived from ‘const std::function<_Res(_ArgTypes ...)>’
1394 | return bool(std::get<__i>(__t) == std::get<__i>(__u))
| ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/9/functional:59,
from /usr/include/c++/9/pstl/glue_algorithm_defs.h:13,
from /usr/include/c++/9/algorithm:71,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/toolboxes/core/NDArray.h:15,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/toolboxes/core/cpu/hoNDArray.h:7,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/core/Types.h:8,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/core/MPMCChannel.h:3,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/core/Channel.h:8,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/test/read_writer_test.cpp:2:
/usr/include/c++/9/bits/std_function.h:752:5: note: candidate: ‘template bool std::operator==(std::nullptr_t, const std::function<_Res(_ArgTypes ...)>&)’
752 | operator==(nullptr_t, const function<_Res(_Args...)>& __f) noexcept
| ^~~~~~~~
/usr/include/c++/9/bits/std_function.h:752:5: note: template argument deduction/substitution failed:
In file included from /usr/include/c++/9/bits/unique_ptr.h:37,
from /usr/include/c++/9/condition_variable:44,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/core/Channel.h:3,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/test/read_writer_test.cpp:2:
/usr/include/c++/9/tuple:1394:33: note: ‘std::__tuple_element_t<0, std::tuple >, std::optional > > >’ {aka ‘const ISMRMRD::AcquisitionHeader’} is not derived from ‘const std::function<_Res(_ArgTypes ...)>’
1394 | return bool(std::get<__i>(__t) == std::get<__i>(__u))
| ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/9/unordered_map:47,
from /usr/include/c++/9/functional:61,
from /usr/include/c++/9/pstl/glue_algorithm_defs.h:13,
from /usr/include/c++/9/algorithm:71,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/toolboxes/core/NDArray.h:15,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/toolboxes/core/cpu/hoNDArray.h:7,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/core/Types.h:8,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/core/MPMCChannel.h:3,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/core/Channel.h:8,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/test/read_writer_test.cpp:2:
/usr/include/c++/9/bits/unordered_map.h:2091:5: note: candidate: ‘template bool std::operator==(const std::unordered_map<_Key1, _Tp1, _Hash1, _Pred1, _Alloc1>&, const std::unordered_map<_Key1, _Tp1, _Hash1, _Pred1, _Alloc1>&)’
2091 | operator==(const unordered_map<_Key, _Tp, _Hash, _Pred, _Alloc>& __x,
| ^~~~~~~~
/usr/include/c++/9/bits/unordered_map.h:2091:5: note: template argument deduction/substitution failed:
In file included from /usr/include/c++/9/bits/unique_ptr.h:37,
from /usr/include/c++/9/condition_variable:44,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/core/Channel.h:3,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/test/read_writer_test.cpp:2:
/usr/include/c++/9/tuple:1394:33: note: ‘std::__tuple_element_t<0, std::tuple >, std::optional > > >’ {aka ‘const ISMRMRD::AcquisitionHeader’} is not derived from ‘const std::unordered_map<_Key1, _Tp1, _Hash1, _Pred1, _Alloc1>’
1394 | return bool(std::get<__i>(__t) == std::get<__i>(__u))
| ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/9/unordered_map:47,
from /usr/include/c++/9/functional:61,
from /usr/include/c++/9/pstl/glue_algorithm_defs.h:13,
from /usr/include/c++/9/algorithm:71,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/toolboxes/core/NDArray.h:15,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/toolboxes/core/cpu/hoNDArray.h:7,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/core/Types.h:8,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/core/MPMCChannel.h:3,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/core/Channel.h:8,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/test/read_writer_test.cpp:2:
/usr/include/c++/9/bits/unordered_map.h:2103:5: note: candidate: ‘template bool std::operator==(const std::unordered_multimap<_Key1, _Tp1, _Hash1, _Pred1, _Alloc1>&, const std::unordered_multimap<_Key1, _Tp1, _Hash1, _Pred1, _Alloc1>&)’
2103 | operator==(const unordered_multimap<_Key, _Tp, _Hash, _Pred, _Alloc>& __x,
| ^~~~~~~~
/usr/include/c++/9/bits/unordered_map.h:2103:5: note: template argument deduction/substitution failed:
In file included from /usr/include/c++/9/bits/unique_ptr.h:37,
from /usr/include/c++/9/condition_variable:44,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/core/Channel.h:3,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/test/read_writer_test.cpp:2:
/usr/include/c++/9/tuple:1394:33: note: ‘std::__tuple_element_t<0, std::tuple >, std::optional > > >’ {aka ‘const ISMRMRD::AcquisitionHeader’} is not derived from ‘const std::unordered_multimap<_Key1, _Tp1, _Hash1, _Pred1, _Alloc1>’
1394 | return bool(std::get<__i>(__t) == std::get<__i>(__u))
| ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
In file included from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/core/Types.h:11,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/core/MPMCChannel.h:3,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/core/Channel.h:8,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/test/read_writer_test.cpp:2:
/usr/include/c++/9/variant:1177:3: note: candidate: ‘template constexpr bool std::operator==(const std::variant<_Types ...>&, const std::variant<_Types ...>&)’
1177 | _VARIANT_RELATION_FUNCTION_TEMPLATE(==, equal)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/9/variant:1177:3: note: template argument deduction/substitution failed:
In file included from /usr/include/c++/9/bits/unique_ptr.h:37,
from /usr/include/c++/9/condition_variable:44,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/core/Channel.h:3,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/test/read_writer_test.cpp:2:
/usr/include/c++/9/tuple:1394:33: note: ‘std::__tuple_element_t<0, std::tuple >, std::optional > > >’ {aka ‘const ISMRMRD::AcquisitionHeader’} is not derived from ‘const std::variant<_Types ...>’
1394 | return bool(std::get<__i>(__t) == std::get<__i>(__u))
| ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
In file included from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/core/Types.h:11,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/core/MPMCChannel.h:3,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/core/Channel.h:8,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/test/read_writer_test.cpp:2:
/usr/include/c++/9/variant:1177:3: note: candidate: ‘constexpr bool std::operator==(std::monostate, std::monostate)’
1177 | _VARIANT_RELATION_FUNCTION_TEMPLATE(==, equal)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/9/variant:1177:3: note: no known conversion for argument 1 from ‘std::__tuple_element_t<0, std::tuple >, std::optional > > >’ {aka ‘const ISMRMRD::AcquisitionHeader’} to ‘std::monostate’
1177 | _VARIANT_RELATION_FUNCTION_TEMPLATE(==, equal)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/9/set:61,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/toolboxes/mri_core/mri_core_data.h:8,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/test/read_writer_test.cpp:6:
/usr/include/c++/9/bits/stl_set.h:979:5: note: candidate: ‘template bool std::operator==(const std::set<_Key, _Compare, _Allocator>&, const std::set<_Key, _Compare, _Allocator>&)’
979 | operator==(const set<_Key, _Compare, _Alloc>& __x,
| ^~~~~~~~
/usr/include/c++/9/bits/stl_set.h:979:5: note: template argument deduction/substitution failed:
In file included from /usr/include/c++/9/bits/unique_ptr.h:37,
from /usr/include/c++/9/condition_variable:44,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/core/Channel.h:3,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/test/read_writer_test.cpp:2:
/usr/include/c++/9/tuple:1394:33: note: ‘std::__tuple_element_t<0, std::tuple >, std::optional > > >’ {aka ‘const ISMRMRD::AcquisitionHeader’} is not derived from ‘const std::set<_Key, _Compare, _Allocator>’
1394 | return bool(std::get<__i>(__t) == std::get<__i>(__u))
| ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/9/set:62,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/toolboxes/mri_core/mri_core_data.h:8,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/test/read_writer_test.cpp:6:
/usr/include/c++/9/bits/stl_multiset.h:964:5: note: candidate: ‘template bool std::operator==(const std::multiset<_Key, _Compare, _Allocator>&, const std::multiset<_Key, _Compare, _Allocator>&)’
964 | operator==(const multiset<_Key, _Compare, _Alloc>& __x,
| ^~~~~~~~
/usr/include/c++/9/bits/stl_multiset.h:964:5: note: template argument deduction/substitution failed:
In file included from /usr/include/c++/9/bits/unique_ptr.h:37,
from /usr/include/c++/9/condition_variable:44,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/core/Channel.h:3,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/test/read_writer_test.cpp:2:
/usr/include/c++/9/tuple:1394:33: note: ‘std::__tuple_element_t<0, std::tuple >, std::optional > > >’ {aka ‘const ISMRMRD::AcquisitionHeader’} is not derived from ‘const std::multiset<_Key, _Compare, _Allocator>’
1394 | return bool(std::get<__i>(__t) == std::get<__i>(__u))
| ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/9/iterator:66,
from /usr/include/boost/filesystem/path_traits.hpp:28,
from /usr/include/boost/filesystem/path.hpp:25,
from /usr/include/boost/dll/detail/posix/program_location_impl.hpp:13,
from /usr/include/boost/dll/detail/posix/path_from_handle.hpp:12,
from /usr/include/boost/dll/detail/posix/shared_library_impl.hpp:13,
from /usr/include/boost/dll/shared_library.hpp:26,
from /usr/include/boost/dll.hpp:16,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/core/Reader.h:5,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/core/readers/BufferReader.h:3,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/test/read_writer_test.cpp:7:
/usr/include/c++/9/bits/stream_iterator.h:134:5: note: candidate: ‘template bool std::operator==(const std::istream_iterator<_Tp, _CharT, _Traits, _Dist>&, const std::istream_iterator<_Tp, _CharT, _Traits, _Dist>&)’
134 | operator==(const istream_iterator<_Tp, _CharT, _Traits, _Dist>& __x,
| ^~~~~~~~
/usr/include/c++/9/bits/stream_iterator.h:134:5: note: template argument deduction/substitution failed:
In file included from /usr/include/c++/9/bits/unique_ptr.h:37,
from /usr/include/c++/9/condition_variable:44,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/core/Channel.h:3,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/test/read_writer_test.cpp:2:
/usr/include/c++/9/tuple:1394:33: note: ‘std::__tuple_element_t<0, std::tuple >, std::optional > > >’ {aka ‘const ISMRMRD::AcquisitionHeader’} is not derived from ‘const std::istream_iterator<_Tp, _CharT, _Traits, _Dist>’
1394 | return bool(std::get<__i>(__t) == std::get<__i>(__u))
| ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/9/deque:67,
from /usr/include/c++/9/stack:60,
from /usr/include/boost/filesystem/operations.hpp:42,
from /usr/include/boost/dll/detail/posix/program_location_impl.hpp:126,
from /usr/include/boost/dll/detail/posix/path_from_handle.hpp:12,
from /usr/include/boost/dll/detail/posix/shared_library_impl.hpp:13,
from /usr/include/boost/dll/shared_library.hpp:26,
from /usr/include/boost/dll.hpp:16,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/core/Reader.h:5,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/core/readers/BufferReader.h:3,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/test/read_writer_test.cpp:7:
/usr/include/c++/9/bits/stl_deque.h:286:5: note: candidate: ‘template bool std::operator==(const std::_Deque_iterator<_Tp, _Ref, _Ptr>&, const std::_Deque_iterator<_Tp, _Ref, _Ptr>&)’
286 | operator==(const _Deque_iterator<_Tp, _Ref, _Ptr>& __x,
| ^~~~~~~~
/usr/include/c++/9/bits/stl_deque.h:286:5: note: template argument deduction/substitution failed:
In file included from /usr/include/c++/9/bits/unique_ptr.h:37,
from /usr/include/c++/9/condition_variable:44,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/core/Channel.h:3,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/test/read_writer_test.cpp:2:
/usr/include/c++/9/tuple:1394:33: note: ‘std::__tuple_element_t<0, std::tuple >, std::optional > > >’ {aka ‘const ISMRMRD::AcquisitionHeader’} is not derived from ‘const std::_Deque_iterator<_Tp, _Ref, _Ptr>’
1394 | return bool(std::get<__i>(__t) == std::get<__i>(__u))
| ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/9/deque:67,
from /usr/include/c++/9/stack:60,
from /usr/include/boost/filesystem/operations.hpp:42,
from /usr/include/boost/dll/detail/posix/program_location_impl.hpp:126,
from /usr/include/boost/dll/detail/posix/path_from_handle.hpp:12,
from /usr/include/boost/dll/detail/posix/shared_library_impl.hpp:13,
from /usr/include/boost/dll/shared_library.hpp:26,
from /usr/include/boost/dll.hpp:16,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/core/Reader.h:5,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/core/readers/BufferReader.h:3,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/test/read_writer_test.cpp:7:
/usr/include/c++/9/bits/stl_deque.h:293:5: note: candidate: ‘template bool std::operator==(const std::_Deque_iterator<_Tp, _Ref, _Ptr>&, const std::_Deque_iterator<_Tp, _RefR, _PtrR>&)’
293 | operator==(const _Deque_iterator<_Tp, _RefL, _PtrL>& __x,
| ^~~~~~~~
/usr/include/c++/9/bits/stl_deque.h:293:5: note: template argument deduction/substitution failed:
In file included from /usr/include/c++/9/bits/unique_ptr.h:37,
from /usr/include/c++/9/condition_variable:44,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/core/Channel.h:3,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/test/read_writer_test.cpp:2:
/usr/include/c++/9/tuple:1394:33: note: ‘std::__tuple_element_t<0, std::tuple >, std::optional > > >’ {aka ‘const ISMRMRD::AcquisitionHeader’} is not derived from ‘const std::_Deque_iterator<_Tp, _Ref, _Ptr>’
1394 | return bool(std::get<__i>(__t) == std::get<__i>(__u))
| ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/9/deque:67,
from /usr/include/c++/9/stack:60,
from /usr/include/boost/filesystem/operations.hpp:42,
from /usr/include/boost/dll/detail/posix/program_location_impl.hpp:126,
from /usr/include/boost/dll/detail/posix/path_from_handle.hpp:12,
from /usr/include/boost/dll/detail/posix/shared_library_impl.hpp:13,
from /usr/include/boost/dll/shared_library.hpp:26,
from /usr/include/boost/dll.hpp:16,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/core/Reader.h:5,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/core/readers/BufferReader.h:3,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/test/read_writer_test.cpp:7:
/usr/include/c++/9/bits/stl_deque.h:2312:5: note: candidate: ‘template bool std::operator==(const std::deque<_Tp, _Alloc>&, const std::deque<_Tp, _Alloc>&)’
2312 | operator==(const deque<_Tp, _Alloc>& __x,
| ^~~~~~~~
/usr/include/c++/9/bits/stl_deque.h:2312:5: note: template argument deduction/substitution failed:
In file included from /usr/include/c++/9/bits/unique_ptr.h:37,
from /usr/include/c++/9/condition_variable:44,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/core/Channel.h:3,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/test/read_writer_test.cpp:2:
/usr/include/c++/9/tuple:1394:33: note: ‘std::__tuple_element_t<0, std::tuple >, std::optional > > >’ {aka ‘const ISMRMRD::AcquisitionHeader’} is not derived from ‘const std::deque<_Tp, _Alloc>’
1394 | return bool(std::get<__i>(__t) == std::get<__i>(__u))
| ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/9/stack:61,
from /usr/include/boost/filesystem/operations.hpp:42,
from /usr/include/boost/dll/detail/posix/program_location_impl.hpp:126,
from /usr/include/boost/dll/detail/posix/path_from_handle.hpp:12,
from /usr/include/boost/dll/detail/posix/shared_library_impl.hpp:13,
from /usr/include/boost/dll/shared_library.hpp:26,
from /usr/include/boost/dll.hpp:16,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/core/Reader.h:5,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/core/readers/BufferReader.h:3,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/test/read_writer_test.cpp:7:
/usr/include/c++/9/bits/stl_stack.h:313:5: note: candidate: ‘template bool std::operator==(const std::stack<_Tp, _Seq>&, const std::stack<_Tp, _Seq>&)’
313 | operator==(const stack<_Tp, _Seq>& __x, const stack<_Tp, _Seq>& __y)
| ^~~~~~~~
/usr/include/c++/9/bits/stl_stack.h:313:5: note: template argument deduction/substitution failed:
In file included from /usr/include/c++/9/bits/unique_ptr.h:37,
from /usr/include/c++/9/condition_variable:44,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/core/Channel.h:3,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/test/read_writer_test.cpp:2:
/usr/include/c++/9/tuple:1394:33: note: ‘std::__tuple_element_t<0, std::tuple >, std::optional > > >’ {aka ‘const ISMRMRD::AcquisitionHeader’} is not derived from ‘const std::stack<_Tp, _Seq>’
1394 | return bool(std::get<__i>(__t) == std::get<__i>(__u))
| ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/9/random:51,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/test/read_writer_test.cpp:19:
/usr/include/c++/9/bits/random.tcc:1884:5: note: candidate: ‘template bool std::operator==(const std::normal_distribution<_RealType>&, const std::normal_distribution<_RealType>&)’
1884 | operator==(const std::normal_distribution<_RealType>& __d1,
| ^~~~~~~~
/usr/include/c++/9/bits/random.tcc:1884:5: note: template argument deduction/substitution failed:
In file included from /usr/include/c++/9/bits/unique_ptr.h:37,
from /usr/include/c++/9/condition_variable:44,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/core/Channel.h:3,
from /home/ofn77899/devel/build_Gadgetron/sources/Gadgetron/test/read_writer_test.cpp:2:
/usr/include/c++/9/tuple:1394:33: note: ‘std::__tuple_element_t<0, std::tuple >, std::optional > > >’ {aka ‘const ISMRMRD::AcquisitionHeader’} is not derived from ‘const std::normal_distribution<_RealType>’
1394 | return bool(std::get<__i>(__t) == std::get<__i>(__u))
| ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
Using GCC 9 for building Gadgetron adds another layer of difficulty, due to some changes in behaviour of GCC 9 wrt older versions.
In particular the OpenMP clause #pragma omp parallel for default(none)
leads to some variable not being declared. Unfortunately, this happens with NIFTYREG.
In function ‘void GetDiscretisedValueSSD_core3D_2(nifti_image*, float*, int, int, nifti_image*, nifti_image*, int*) [with DTYPE = float]’:
/home/ofn77899/devel/build_Gadgetron/sources/NIFTYREG/reg-lib/cpu/_reg_ssd.cpp:850:35: error: ‘voxelBlockNumber_t’ not specified in enclosing ‘parallel’
850 | for(idBlock=0;idBlock<voxelBlockNumber_t;idBlock++) {
|
NiftyPET won't build with GCC 9
[ 4%] Building NVCC (Device) object nipet/CMakeFiles/mmr_auxe.dir/src/mmr_auxe_generated_scanner_0.cu.o
In file included from /usr/local/cuda/include/cuda_runtime.h:83,
from <command-line>:
/usr/local/cuda/include/crt/host_config.h:129:2: error: #error -- unsupported GNU version! gcc versions later than 8 are not supported!
In particular the OpenMP clause #pragma omp parallel for default(none) leads to some variable not being declared. Unfortunately, this happens with NIFTYREG.
Yes, noted at #413 (comment), which points to a NiftyReg PR
I suggest to keep comments here restricted to Gadgetron. Problems with gcc9 other dependencies belong in #413
@KrisThielemans requested changes on this pull request.
> set(DEFAULT_ACE_URL https://github.com/paskino/libace-conda) set(DEFAULT_ACE_TAG origin/master) + # range-v3 + set(DEFAULT_JSON_TAG origin/master)
JSON_TAG
doesn't look ok
> @@ -169,6 +169,10 @@ set(DEFAULT_CCPi-FrameworkPlugins_TAG ${CIL_VERSION}) set(DEFAULT_CCPi-Astra_URL https://github.com/vais-ral/CCPi-Astra.git) set(DEFAULT_CCPi-Astra_TAG ${CIL_VERSION}) +# range-v3 +set(DEFAULT_JSON_URL https://github.com/ericniebler/range-v3.git ) +set(DEFAULT_JSON_TAG 0.11.0)
JSON_TAG
doesn't look ok
Does this PR build if asking for Gadgetron only?
@paskino pushed 4 commits.
—
You are receiving this because you are subscribed to this thread.
@paskino commented on this pull request.
> set(DEFAULT_ACE_URL https://github.com/paskino/libace-conda) set(DEFAULT_ACE_TAG origin/master) + # range-v3 + set(DEFAULT_JSON_TAG origin/master)
you are right, I fixed it but not pushed
> @@ -169,6 +169,10 @@ set(DEFAULT_CCPi-FrameworkPlugins_TAG ${CIL_VERSION}) set(DEFAULT_CCPi-Astra_URL https://github.com/vais-ral/CCPi-Astra.git) set(DEFAULT_CCPi-Astra_TAG ${CIL_VERSION}) +# range-v3 +set(DEFAULT_JSON_URL https://github.com/ericniebler/range-v3.git ) +set(DEFAULT_JSON_TAG 0.11.0)
you are right, I fixed it but not pushed
—
currently Gadgetron test build fails:
This just seems a Gadgetron bug in their current master
which presumably will be gone tomorrow.
I feel chasing their master
is just giving you extra headaches. I suppose we need @johannesmayer 's gadgetron/gadgetron#794 and gadgetron/gadgetron#816 . We should therefore be fine with the merge commit of the latter, which is gadgetron/gadgetron@0033296. @johannesmayer @ckolbPTB could you confirm if this would be ok?
There has also been the fix of an include statement that was required, so I would need gadgetron/gadgetron@7d7a31c
I leave this one to Johannes - he is the Gadgetron build expert
@KrisThielemans requested changes on this pull request.
In SuperBuild/External_Gadgetron.cmake:
> @@ -107,12 +116,13 @@ if(NOT ( DEFINED "USE_SYSTEM_${externalProjName}" AND "${USE_SYSTEM_${externalPr ${PYTHONLIBS_CMAKE_ARGS} -DGTEST_ROOT:PATH=${GTEST_ROOT} ${HDF5_CMAKE_ARGS} + -DHDF5_FOUND:BOOL=ON
this makes zero sense to me
In SuperBuild/External_Gadgetron.cmake:
> +if (NOT HDF5_CMAKE_ARGS) + message( FATAL_ERROR "HDF5_CMAKE_ARGS not found: ${HDF5_CMAKE_ARGS}") +else() + message( STATUS "HDF5_CMAKE_ARGS found: ${HDF5_CMAKE_ARGS}") +endif() +
can't see why you need it. The project depends on HDF5. It should set this appropriately (or not, possibly, if we USE_SYSTEM_HDF5=ON
)
> @@ -115,7 +115,7 @@ set(DEFAULT_glog_TAG v0.3.5) ## ITK set(DEFAULT_ITK_URL https://github.com/InsightSoftwareConsortium/ITK.git) -set(DEFAULT_ITK_TAG v4.13.1) +set(DEFAULT_ITK_TAG v4.13.3)
don't do this in this PR
In SuperBuild/External_Gadgetron.cmake:
> @@ -24,12 +24,21 @@ #This needs to be unique globally set(proj Gadgetron) +if ((NOT CC_9) OR (NOT CXX_9))
could try and find it of course
—
You are receiving this because you are subscribed to this thread.
I updated Boost minimal version to 1.71.0, but installing 1.72.0 as the former doesn't exist!
The build seems to complain that I haven't built boost.coroutine
https://github.com/SyneRBI/SIRF-SuperBuild/runs/4118695695?check_suite_focus=true#step:6:17209
How do I require that in
https://github.com/SyneRBI/SIRF-SuperBuild/blob/053bfabcdfd0967873aaaf68252e7e0ef497cc26/SuperBuild/External_Boost_configureboost.cmake#L27
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or unsubscribe.
@paskino commented on this pull request.
> @@ -115,7 +115,7 @@ set(DEFAULT_glog_TAG v0.3.5) ## ITK set(DEFAULT_ITK_URL https://github.com/InsightSoftwareConsortium/ITK.git) -set(DEFAULT_ITK_TAG v4.13.1) +set(DEFAULT_ITK_TAG v4.13.3)
removed!
@paskino pushed 1 commit.
—
You are receiving this because you are subscribed to this thread.
View it on GitHub or unsubscribe.
@paskino commented on this pull request.
In SuperBuild/External_Gadgetron.cmake:
> +if (NOT HDF5_CMAKE_ARGS) + message( FATAL_ERROR "HDF5_CMAKE_ARGS not found: ${HDF5_CMAKE_ARGS}") +else() + message( STATUS "HDF5_CMAKE_ARGS found: ${HDF5_CMAKE_ARGS}") +endif() +
removed
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or unsubscribe.
> @@ -107,12 +116,13 @@ if(NOT ( DEFINED "USE_SYSTEM_${externalProjName}" AND "${USE_SYSTEM_${externalPr ${PYTHONLIBS_CMAKE_ARGS} -DGTEST_ROOT:PATH=${GTEST_ROOT} ${HDF5_CMAKE_ARGS} + -DHDF5_FOUND:BOOL=ON
removed in fact
@KrisThielemans commented on this pull request.
In docker/build_gadgetron-ubuntu.sh:
> +apt-get upgrade -y && \ +apt-get dist-upgrade -y && \
I really don't like this...
Not sure why Gadgetron requires coroutine
. I've asked gadgetron/gadgetron#1019.
@paskino pushed 1 commit.
—
You are receiving this because you are subscribed to this thread.
View it on GitHub or unsubscribe.
@paskino commented on this pull request.
removed
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or unsubscribe.
ok, past coroutine
. Now we need RockDB apparently.
One example script is here https://gist.github.com/srimaln91/bea81d8c5ba36a64b0cd1b3b5324f687
@paskino pushed 3 commits.
—
You are receiving this because you are subscribed to this thread.
View it on GitHub or unsubscribe.
I'm trying with RocksDB from apt. Do you think we should add it to the SuperBuild?
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or unsubscribe.
@paskino pushed 2 commits.
—
You are receiving this because you are subscribed to this thread.
View it on GitHub or unsubscribe.
An error which has to do with ISMRMRD .
error: no match for ‘operator==’ (operand types are ‘std::__tuple_element_t<0, std::tuple<ISMRMRD::AcquisitionHeader, Gadgetron::hoNDArray<std::complex<float> >, std::optional<Gadgetron::hoNDArray<float> > > >’ {aka ‘const ISMRMRD::AcquisitionHeader’} and ‘std::__tuple_element_t<0, std::tuple<ISMRMRD::AcquisitionHeader, Gadgetron::hoNDArray<std::complex<float> >, std::optional<Gadgetron::hoNDArray<float> > > >’ {aka ‘const ISMRMRD::AcquisitionHeader’})
I tried to merge https://github.com/SyneRBI/SIRF-SuperBuild/tree/ismrmrd1421 here and even use ISMRMRD branch, but it still fails.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or unsubscribe.
An error which has to do with ISMRMRD .
error: no match for ‘operator==’ (operand types are ‘std::__tuple_element_t<0, std::tuple<ISMRMRD::AcquisitionHeader, Gadgetron::hoNDArray<std::complex<float> >, std::optional<Gadgetron::hoNDArray<float> > > >’ {aka ‘const ISMRMRD::AcquisitionHeader’} and ‘std::__tuple_element_t<0, std::tuple<ISMRMRD::AcquisitionHeader, Gadgetron::hoNDArray<std::complex<float> >, std::optional<Gadgetron::hoNDArray<float> > > >’ {aka ‘const ISMRMRD::AcquisitionHeader’})
I tried to merge https://github.com/SyneRBI/SIRF-SuperBuild/tree/ismrmrd1421 here and even use ISMRMRD
branchlatest commit, but it still fails.
no idea. @dchansen, @hansenms any idea? This test run was with an old commit of ISMRMRD
https://github.com/ismrmrd/ismrmrd/commits/1066d90 but I suppose if it's too old, CMake should have picked up on it?
@KrisThielemans, I am not really sure what the ask is. There is some code somewhere, which is trying to compare and acquisition to another acquisition, but there is no ==
operator for that. I cannot see where that code is or what the context is, so it is really impossible to provide any comments on this.
@paskino pushed 6 commits.
—
You are receiving this because you are subscribed to this thread.
View it on GitHub or unsubscribe.
Gadgetron doesn't really version check ISMRMRD (or indeed most of its dependencies, except Boost), so you wouldn't be getting an error.
In general, Gadgetron will use the latest release of ISMRMRD available, and it would be safest to update the two in sync.
The error you're getting is pretty straight forward: In the version of ISMRMRD you're using, Acquisitionheader didn't have an equality operator. Now it does. So now you can compare two Acquisitions in Gadgetron.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or unsubscribe.
@paskino pushed 1 commit.
—
You are receiving this because you are subscribed to this thread.
View it on GitHub or unsubscribe.
OK, great @dchansen that file builds now with ISMRMRD master and Gadgetron master.
Next problem
[ 63%] Building CXX object test/CMakeFiles/test_all.dir/nhlbi_compression_tests.cpp.o
/home/runner/work/SIRF-SuperBuild/SIRF-SuperBuild/build/sources/Gadgetron/test/nhlbi_compression_tests.cpp:194:25: error: expected constructor, destructor, or type conversion before ‘(’ token
194 | INSTANTIATE_TEST_SUITE_P(
| ^
/home/runner/work/SIRF-SuperBuild/SIRF-SuperBuild/build/sources/Gadgetron/test/nhlbi_compression_tests.cpp:236:25: error: expected constructor, destructor, or type conversion before ‘(’ token
236 | INSTANTIATE_TEST_SUITE_P(
| ^
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or unsubscribe.
Relevant line is here https://github.com/gadgetron/gadgetron/blob/12ffc43debb9bad2e170713006d29dea78d966bf/test/nhlbi_compression_tests.cpp#L194
INSTANTIATE_TEST_SUITE_P
is part of GTest http://google.github.io/googletest/reference/testing.html#INSTANTIATE_TEST_SUITE_P so I guess our GTest is out of date
@paskino pushed 1 commit.
—
You are receiving this because you are subscribed to this thread.
View it on GitHub or unsubscribe.
A couple of steps further, I updated GTest, added JSON as prerequisite for Gadgetron but still fails https://github.com/SyneRBI/SIRF-SuperBuild/runs/4139944170?check_suite_focus=true#step:6:18829
Another point is, I'm currently using RocksDB from ubuntu, but it may not be a correct version? On the other hand the compilation fails both on Ubuntu 18.04 and 20.04
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or unsubscribe.
@paskino pushed 1 commit.
—
You are receiving this because you are subscribed to this thread.
View it on GitHub or unsubscribe.
The latest error comes from missing gadgetron.xml.example
in the Gadgetron repo, gadgetron/gadgetron#1024
This build doesn't build Gadgetron tests, however trying that would fail linking with
[ 55%] Linking CXX executable test_all
cd /home/ofn77899/devel/bgm2/builds/Gadgetron/build/test && /usr/local/bin/cmake -E cmake_link_script CMakeFiles/test_all.dir/link.txt --verbose=1
/usr/bin/g++-9 -DBOOST_ERROR_CODE_HEADER_ONLY -DBOOST_SYSTEM_NO_DEPRECATED -fopenmp -Werror=return-type -Werror=terminate -Werror=non-virtual-dtor -Werror=format-overflow -O3 -DNDEBUG CMakeFiles/test_all.dir/tests.cpp.o CMakeFiles/test_all.dir/hoNDArray_elemwise_test.cpp.o CMakeFiles/test_all.dir/hoNDArray_blas_test.cpp.o CMakeFiles/test_all.dir/hoNDArray_utils_test.cpp.o CMakeFiles/test_all.dir/hoNDArray_reductions_test.cpp.o CMakeFiles/test_all.dir/read_writer_test.cpp.o CMakeFiles/test_all.dir/hoNDFFT_test.cpp.o CMakeFiles/test_all.dir/hoNFFT_test.cpp.o CMakeFiles/test_all.dir/hoNDWavelet_test.cpp.o CMakeFiles/test_all.dir/curveFitting_test.cpp.o CMakeFiles/test_all.dir/image_morphology_test.cpp.o CMakeFiles/test_all.dir/pattern_recognition_test.cpp.o CMakeFiles/test_all.dir/cmr_mapping_test.cpp.o CMakeFiles/test_all.dir/hoNDArray_linalg_test.cpp.o CMakeFiles/test_all.dir/core_test.cpp.o CMakeFiles/test_all.dir/threadpool_test.cpp.o CMakeFiles/test_all.dir/from_string_test.cpp.o CMakeFiles/test_all.dir/hoNDArrayView_test.cpp.o CMakeFiles/test_all.dir/ChannelAlgorithmsTest.cpp.o CMakeFiles/test_all.dir/cmr_strain_test.cpp.o CMakeFiles/test_all.dir/cmr_thickening_test.cpp.o CMakeFiles/test_all.dir/cmr_analytical_strain_test.cpp.o CMakeFiles/test_all.dir/hoSDC_test.cpp.o CMakeFiles/test_all.dir/nhlbi_compression_tests.cpp.o CMakeFiles/test_all.dir/gadgets/AcquisitionAccumulateTrigget_test.cpp.o CMakeFiles/test_all.dir/gadgets/FlagTriggerParsing_test.cpp.o -o test_all -Wl,-rpath,/home/ofn77899/devel/bgm2/builds/Gadgetron/build/core/readers:/home/ofn77899/devel/bgm2/builds/Gadgetron/build/gadgets/mri_core:/home/ofn77899/devel/bgm2/builds/Gadgetron/build/toolboxes/cmr:/home/ofn77899/devel/bgm2/builds/Gadgetron/build/toolboxes/pattern_recognition:/home/ofn77899/devel/bgm2/builds/Gadgetron/build/toolboxes/mri/sdc/cpu:/home/ofn77899/devel/bgm2/builds/Gadgetron/build/core/writers:/home/ofn77899/devel/bgm2/builds/Gadgetron/build/toolboxes/denoise:/home/ofn77899/devel/bgm2/builds/Gadgetron/build/toolboxes/operators/cpu:/home/ofn77899/devel/bgm2/builds/Gadgetron/build/toolboxes/mri_core:/home/ofn77899/devel/bgm2/builds/Gadgetron/build/toolboxes/registration/optical_flow/cpu:/home/ofn77899/devel/bgm2/builds/Gadgetron/build/toolboxes/dwt/cpu:/home/ofn77899/devel/bgm2/builds/Gadgetron/build/toolboxes/image/cpu:/home/ofn77899/devel/bgm2/builds/Gadgetron/build/toolboxes/klt/cpu:/home/ofn77899/devel/bgm2/builds/Gadgetron/build/toolboxes/image_io:/home/ofn77899/devel/bgm2/builds/Gadgetron/build/toolboxes/nfft/cpu:/home/ofn77899/devel/bgm2/builds/Gadgetron/build/toolboxes/fft/cpu:/home/ofn77899/devel/bgm2/builds/Gadgetron/build/toolboxes/core/cpu/math:/home/ofn77899/devel/bgm2/builds/Gadgetron/build/toolboxes/core/cpu/hostutils:/home/ofn77899/devel/bgm2/builds/Gadgetron/build/core:/home/ofn77899/devel/bgm2/builds/Gadgetron/build/toolboxes/core/cpu:/home/ofn77899/devel/bgm2/builds/Gadgetron/build/toolboxes/log:/home/ofn77899/devel/bgm2/INSTALL/lib: ../core/readers/libgadgetron_core_readers.so.4.1.2 ../gadgets/mri_core/libgadgetron_mricore.so.4.1.2 ../toolboxes/cmr/libgadgetron_toolbox_cmr.so.4.1.2 ../toolboxes/pattern_recognition/libgadgetron_toolbox_pr.so.4.1.2 ../toolboxes/mri/sdc/cpu/libgadgetron_toolbox_cpusdc.so.4.1.2 /home/ofn77899/devel/bgm2/INSTALL/lib/libgtest.a ../core/writers/libgadgetron_core_writers.so.4.1.2 ../toolboxes/denoise/libgadgetron_toolbox_denoise.so.4.1.2 ../toolboxes/operators/cpu/libgadgetron_toolbox_cpuoperator.so.4.1.2 ../toolboxes/mri_core/libgadgetron_toolbox_mri_core.so.4.1.2 ../toolboxes/registration/optical_flow/cpu/libgadgetron_toolbox_cpureg.so.4.1.2 ../toolboxes/dwt/cpu/libgadgetron_toolbox_cpudwt.so.4.1.2 ../toolboxes/image/cpu/libgadgetron_toolbox_cpu_image.so.4.1.2 ../toolboxes/klt/cpu/libgadgetron_toolbox_cpuklt.so.4.1.2 ../toolboxes/image_io/libgadgetron_toolbox_image_analyze_io.so.4.1.2 ../toolboxes/nfft/cpu/libgadgetron_toolbox_cpunfft.so.4.1.2 ../toolboxes/fft/cpu/libgadgetron_toolbox_cpufft.so.4.1.2 ../toolboxes/core/cpu/math/libgadgetron_toolbox_cpucore_math.so.4.1.2 -llapacke /usr/lib/x86_64-linux-gnu/liblapacke.so /usr/lib/x86_64-linux-gnu/libopenblas.so /home/ofn77899/devel/bgm2/INSTALL/lib/libfftw3f.a /home/ofn77899/devel/bgm2/INSTALL/lib/libfftw3.a ../toolboxes/core/cpu/hostutils/libgadgetron_toolbox_hostutils.so.4.1.2 ../core/libgadgetron_core.so.4.1.2 ../toolboxes/core/cpu/libgadgetron_toolbox_cpucore.so.4.1.2 /home/ofn77899/devel/bgm2/INSTALL/lib/libismrmrd.so.1.5.0 /home/ofn77899/devel/bgm2/INSTALL/lib/libhdf5.so /home/ofn77899/devel/bgm2/INSTALL/lib/libboost_filesystem.so.1.78.0 /home/ofn77899/devel/bgm2/INSTALL/lib/libboost_atomic.so.1.78.0 ../toolboxes/log/libgadgetron_toolbox_log.so.4.1.2 /home/ofn77899/devel/bgm2/INSTALL/lib/libboost_system.so.1.78.0
cd /home/ofn77899/devel/bgm2/builds/Gadgetron/build/test && /usr/local/bin/cmake -D TEST_TARGET=test_all -D TEST_EXECUTABLE=/home/ofn77899/devel/bgm2/builds/Gadgetron/build/test/test_all -D TEST_EXECUTOR= -D TEST_WORKING_DIR=/home/ofn77899/devel/bgm2/builds/Gadgetron/build/test -D TEST_EXTRA_ARGS= -D TEST_PROPERTIES= -D TEST_PREFIX= -D TEST_SUFFIX= -D NO_PRETTY_TYPES=FALSE -D NO_PRETTY_VALUES=FALSE -D TEST_LIST=test_all_TESTS -D CTEST_FILE=/home/ofn77899/devel/bgm2/builds/Gadgetron/build/test/test_all[1]_tests.cmake -D TEST_DISCOVERY_TIMEOUT=5 -P /usr/local/share/cmake-3.17/Modules/GoogleTestAddTests.cmake
/home/ofn77899/devel/bgm2/builds/Gadgetron/build/test/test_all: error while loading shared libraries: libhdf5.so.100.1.0: cannot open shared object file: No such file or directory
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or unsubscribe.
This build doesn't build Gadgetron tests, however trying that would fail linking with
cd /home/ofn77899/devel/bgm2/builds/Gadgetron/build/test && /usr/local/bin/cmake -D TEST_TARGET=test_all -D TEST_EXECUTABLE=/home/ofn77899/devel/bgm2/builds/Gadgetron/build/test/test_all -D TEST_EXECUTOR= -D TEST_WORKING_DIR=/home/ofn77899/devel/bgm2/builds/Gadgetron/build/test -D TEST_EXTRA_ARGS= -D TEST_PROPERTIES= -D TEST_PREFIX= -D TEST_SUFFIX= -D NO_PRETTY_TYPES=FALSE -D NO_PRETTY_VALUES=FALSE -D TEST_LIST=test_all_TESTS -D CTEST_FILE=/home/ofn77899/devel/bgm2/builds/Gadgetron/build/test/test_all[1]_tests.cmake -D TEST_DISCOVERY_TIMEOUT=5 -P /usr/local/share/cmake-3.17/Modules/GoogleTestAddTests.cmake /home/ofn77899/devel/bgm2/builds/Gadgetron/build/test/test_all: error while loading shared libraries: libhdf5.so.100.1.0: cannot open shared object file: No such file or directory
While libhdf5.so.100.1.0 does exist.
This is not a linking error but a run-time error (when executing the test). It is linking fine with /home/ofn77899/devel/bgm2/INSTALL/lib/libhdf5.so
. I cannot check if that is a symbolic link to libhdf5.so.100.1.0
. (in the same location). Did you set LD_LIBRARY_PATH
(i.e. source env_sirf.sh
) before running the test?
ah, that's good. No, I haven't set the LD_LIBRARY_PATH
as this happens during make Gadgetron
.
I will set it.
On my machine
ls -lh INSTALL/lib/libhdf5*
-rw-r--r-- 1 ofn77899 ofn77899 7.9M Nov 15 15:02 INSTALL/lib/libhdf5.a
-rw-r--r-- 1 ofn77899 ofn77899 851K Nov 15 15:02 INSTALL/lib/libhdf5_cpp.a
lrwxrwxrwx 1 ofn77899 ofn77899 22 Nov 15 15:02 INSTALL/lib/libhdf5_cpp.so -> libhdf5_cpp.so.100.1.0
lrwxrwxrwx 1 ofn77899 ofn77899 21 Nov 15 15:02 INSTALL/lib/libhdf5_cpp.so.100.1.0 -> libhdf5_cpp.so.1.10.1
-rw-r--r-- 1 ofn77899 ofn77899 527K Nov 15 15:02 INSTALL/lib/libhdf5_cpp.so.1.10.1
-rw-r--r-- 1 ofn77899 ofn77899 3.0K Nov 15 15:01 INSTALL/lib/libhdf5.settings
lrwxrwxrwx 1 ofn77899 ofn77899 18 Nov 15 15:02 INSTALL/lib/libhdf5.so -> libhdf5.so.100.1.0
lrwxrwxrwx 1 ofn77899 ofn77899 17 Nov 15 15:02 INSTALL/lib/libhdf5.so.100.1.0 -> libhdf5.so.1.10.1
-rw-r--r-- 1 ofn77899 ofn77899 4.1M Nov 15 15:02 INSTALL/lib/libhdf5.so.1.10.1
ah, that's good. No, I haven't set the
LD_LIBRARY_PATH
as this happens duringmake Gadgetron
.
They run a test during building? That's very non-standard...
@paskino pushed 3 commits.
—
You are receiving this because you are subscribed to this thread.
View it on GitHub or unsubscribe.
let me celebrate the last commit which meant that Gadgetron built!
The failure is related to Siemens_to_ISMRMRD
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or unsubscribe.
@paskino pushed 1 commit.
—
You are receiving this because you are subscribed to this thread.
View it on GitHub or unsubscribe.
I'm sure it built at some point! :(
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or unsubscribe.
Random search on the error throws up google/googletest#2702 where they had the same illegal instruction
which was related to RocksDB. Obviously that could be a red herring, but as Gadgetron uses that as well, just maybe it has the same cause. Not sure if RocksDB can be tested (or if that issue would allow you to find what the RocksDB problem was)
@paskino pushed 1 commit.
—
You are receiving this because you are subscribed to this thread.
View it on GitHub or unsubscribe.
@KrisThielemans requested changes on this pull request.
In docker/build_gadgetron-ubuntu.sh:
> @@ -6,10 +6,10 @@ apt-get update -qq apt-get install -yq --no-install-recommends \ libhdf5-serial-dev \ libboost-dev libboost-chrono-dev \ - libboost-filesystem-dev libboost-thread-dev \ - libboost-date-time-dev libboost-regex-dev \ - libboost-program-options-dev libboost-atomic-dev \ - libboost-test-dev libboost-timer-dev \ + libboost-filesystem-dev libboost-thread-dev \ + libboost-date-time-dev libboost-regex-dev \ + libboost-program-options-dev libboost-atomic-dev \ + libboost-test-dev libboost-timer-dev \
don't we need coroutine
and context
now? Also in the VB script...
In patches/copy_file_if_not_exists.py:
> @@ -5,7 +5,7 @@ def copy_if_not_exists(src, dst): from_file = os.path.abspath(src) to_file = os.path.abspath(dst) - if not os.path.exists(to_file): + if not os.path.exists(to_file) and os.path.exists(from_file):
not sure why you do this, but shouldn't you check then if the file is the same?
> else() # Ubutnu 16.04 version should be fine set(Boost_REQUIRED_VERSION 1.58.0) endif() - set(Boost_URL http://downloads.sourceforge.net/project/boost/boost/${Boost_VERSION}/boost_1_65_1.zip) - set(Boost_MD5 9824a7a3e25c9d4fdf2def07bce8651c) + # set(Boost_URL http://downloads.sourceforge.net/project/boost/boost/${Boost_VERSION}/boost_1_71_0.zip) + # https://github.com/boostorg/math/pull/676 + # https://github.com/boostorg/math/commit/720536a08e4e33639869e1b7a99d9ec923409c0b + # seems the bugfix entered Boost 1.78.0 which is not yet released, but probably 1.71.0 is patched on Ubuntu + set (Boost_URL https://sourceforge.net/projects/boost/files/boost/1.78.0.beta1/boost_1_78_0_b1.zip)
we'd need to create an issue to move to the released version then
> @@ -108,17 +113,19 @@ set(DEFAULT_NIFTYREG_TAG 99d584e2b8ea0bffe7e65e40c8dc818751782d92 ) set(DEFAULT_NIFTYREG_REQUIRED_VERSION 1.5.68) ## ISMRMRD -if (WIN32) - set(DEFAULT_ISMRMRD_URL https://github.com/SyneRBI/ismrmrd ) - set(DEFAULT_ISMRMRD_TAG program_options_fix) -else() - set(DEFAULT_ISMRMRD_URL https://github.com/ismrmrd/ismrmrd ) - set(DEFAULT_ISMRMRD_TAG v1.4.1) -endif() +set(DEFAULT_ISMRMRD_URL https://github.com/ismrmrd/ismrmrd ) +set(DEFAULT_ISMRMRD_TAG origin/master)
can't keep this when merging
> ## Gadgetron set(DEFAULT_Gadgetron_URL https://github.com/gadgetron/gadgetron ) -set(DEFAULT_Gadgetron_TAG b6191eaaa72ccca6c6a5fe4c0fa3319694f512ab) +set(DEFAULT_Gadgetron_TAG origin/master)
will have to fix before merging
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or unsubscribe.
@paskino commented on this pull request.
In docker/build_gadgetron-ubuntu.sh:
> @@ -6,10 +6,10 @@ apt-get update -qq apt-get install -yq --no-install-recommends \ libhdf5-serial-dev \ libboost-dev libboost-chrono-dev \ - libboost-filesystem-dev libboost-thread-dev \ - libboost-date-time-dev libboost-regex-dev \ - libboost-program-options-dev libboost-atomic-dev \ - libboost-test-dev libboost-timer-dev \ + libboost-filesystem-dev libboost-thread-dev \ + libboost-date-time-dev libboost-regex-dev \ + libboost-program-options-dev libboost-atomic-dev \ + libboost-test-dev libboost-timer-dev \
Currently I cannot compile with the version of Boost in Ubuntu 18.04, so this is irrelevant.
I need to start using 20.04.
@paskino commented on this pull request.
In patches/copy_file_if_not_exists.py:
> @@ -5,7 +5,7 @@ def copy_if_not_exists(src, dst): from_file = os.path.abspath(src) to_file = os.path.abspath(dst) - if not os.path.exists(to_file): + if not os.path.exists(to_file) and os.path.exists(from_file):
I do this because of gadgetron/gadgetron#1024
In practice in the new Gadgetron repo the example xml config is not there.
@paskino commented on this pull request.
> ## Gadgetron set(DEFAULT_Gadgetron_URL https://github.com/gadgetron/gadgetron ) -set(DEFAULT_Gadgetron_TAG b6191eaaa72ccca6c6a5fe4c0fa3319694f512ab) +set(DEFAULT_Gadgetron_TAG origin/master)
yes, as with ISMRMRD we will need to choose a version or commit
@paskino commented on this pull request.
In patches/copy_file_if_not_exists.py:
> @@ -5,7 +5,7 @@ def copy_if_not_exists(src, dst): from_file = os.path.abspath(src) to_file = os.path.abspath(dst) - if not os.path.exists(to_file): + if not os.path.exists(to_file) and os.path.exists(from_file):
The file is no longer needed
—
Reply to this email directly, view it on GitHub, or unsubscribe.
Triage notifications on the go with GitHub Mobile for iOS or Android.
You are receiving this because you are subscribed to this thread.
@KrisThielemans commented on this pull request.
> @@ -30,15 +30,20 @@ if (APPLE) # really should be checking for CLang set(Boost_MD5 f4096c4583947b0eb103c8539f1623a3) else() # Use version in Ubuntu 18.04
change comment
—
Reply to this email directly, view it on GitHub, or unsubscribe.
Triage notifications on the go with GitHub Mobile for iOS or Android.
You are receiving this because you are subscribed to this thread.
> @@ -108,17 +113,19 @@ set(DEFAULT_NIFTYREG_TAG 99d584e2b8ea0bffe7e65e40c8dc818751782d92 ) set(DEFAULT_NIFTYREG_REQUIRED_VERSION 1.5.68) ## ISMRMRD -if (WIN32) - set(DEFAULT_ISMRMRD_URL https://github.com/SyneRBI/ismrmrd ) - set(DEFAULT_ISMRMRD_TAG program_options_fix) -else() - set(DEFAULT_ISMRMRD_URL https://github.com/ismrmrd/ismrmrd ) - set(DEFAULT_ISMRMRD_TAG v1.4.1) -endif() +set(DEFAULT_ISMRMRD_URL https://github.com/ismrmrd/ismrmrd ) +set(DEFAULT_ISMRMRD_TAG origin/master)
change to v1.5.0 (i.e. merge master
and resolve conflicts)
—
Reply to this email directly, view it on GitHub, or unsubscribe.
Triage notifications on the go with GitHub Mobile for iOS or Android.
You are receiving this because you are subscribed to this thread.
@KrisThielemans requested changes on this pull request.
> else() # Ubutnu 16.04 version should be fine set(Boost_REQUIRED_VERSION 1.58.0) endif() - set(Boost_URL http://downloads.sourceforge.net/project/boost/boost/${Boost_VERSION}/boost_1_65_1.zip) - set(Boost_MD5 9824a7a3e25c9d4fdf2def07bce8651c) + # set(Boost_URL http://downloads.sourceforge.net/project/boost/boost/${Boost_VERSION}/boost_1_71_0.zip) + # https://github.com/boostorg/math/pull/676
+ # https://github.com/boostorg/math/commit/720536a08e4e33639869e1b7a99d9ec923409c0b + # seems the bugfix entered Boost 1.78.0 which is not yet released, but probably 1.71.0 is patched on Ubuntu + set (Boost_URL https://sourceforge.net/projects/boost/files/boost/1.78.0.beta1/boost_1_78_0_b1.zip)
1.78 is released
> else() # Ubutnu 16.04 version should be fine set(Boost_REQUIRED_VERSION 1.58.0) endif() - set(Boost_URL http://downloads.sourceforge.net/project/boost/boost/${Boost_VERSION}/boost_1_65_1.zip) - set(Boost_MD5 9824a7a3e25c9d4fdf2def07bce8651c) + # set(Boost_URL http://downloads.sourceforge.net/project/boost/boost/${Boost_VERSION}/boost_1_71_0.zip) + # https://github.com/boostorg/math/pull/676 + # https://github.com/boostorg/math/commit/720536a08e4e33639869e1b7a99d9ec923409c0b + # seems the bugfix entered Boost 1.78.0 which is not yet released, but probably 1.71.0 is patched on Ubuntu + set (Boost_URL https://sourceforge.net/projects/boost/files/boost/1.78.0.beta1/boost_1_78_0_b1.zip)
we could switch to a git (recursive) checkout of https://github.com/boostorg/boost. Avoids having to mess with md5s
—
Reply to this email directly, view it on GitHub, or unsubscribe.
Triage notifications on the go with GitHub Mobile for iOS or Android.
You are receiving this because you are subscribed to this thread.
@KrisThielemans requested changes on this pull request.
I'd like to get rid of the gcc9 work-arounds. People might be using clang or whatever anyway.
With any luck, their CMake checks compiler capabilities. We could potentially copy some stuff from them that checks this such that it would fall-over early. Or just tell people. Not sure
In SuperBuild/External_Gadgetron.cmake:
> @@ -55,14 +59,19 @@ if(NOT ( DEFINED "USE_SYSTEM_${externalProjName}" AND "${USE_SYSTEM_${externalPr # BLAS find_package(BLAS) - if (APPLE AND NOT (CBLAS_LIBRARY AND CBLAS_INCLUDE_DIR)) - # if the variables don't exist, let the user set them. - SET(CBLAS_LIBRARY "" CACHE FILEPATH "CBLAS library") - SET(CBLAS_INCLUDE_DIR "" CACHE PATH "CBLAS include directory") - message(FATAL_ERROR "Gadgetron needs CBLAS_LIBRARY and CBLAS_INCLUDE_DIR. If - these variables do not exist in your CMake, create them manually. CBLAS_LIBRARY - and CBLAS_INCLUDE_DIR should be FILEPATH and PATH, respectively, and live in - /usr/local/Cellar/openblas/ if installed with \"brew install openblas\".") + + message(STATUS "CBLAS ${CBLAS_LIBRARY} ${CBLAS_INCLUDE_DIR}") + if (NOT (CBLAS_LIBRARY AND CBLAS_INCLUDE_DIR)) + if (APPLE)
I guess I'd remove this. Probably useful for other systems as well. Although see below
In SuperBuild/External_Gadgetron.cmake:
> - -DCBLAS_INCLUDE_DIR:PATH=${CBLAS_INCLUDE_DIR} - -DCBLAS_LIBRARY:FILEPATH=${CBLAS_LIBRARY}
this removal means that the APPLE
stuff above will be ignored.
This might take some more thought. (maybe create a CBLAS_FLAGS
variable which defaults to empty).
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you are subscribed to this thread.
@KrisThielemans I updated to the latest master, but the build fails miserably at CMake time in Gadgetron:
CMake Error at CMakeLists.txt:279 (find_package): By not providing "Findcpr.cmake" in CMAKE_MODULE_PATH this project has asked CMake to find a package configuration file provided by "cpr", but CMake did not find one. Could not find a package configuration file provided by "cpr" with any of the following names: cprConfig.cmake cpr-config.cmake Add the installation prefix of "cpr" to CMAKE_PREFIX_PATH or set "cpr_DIR" to a directory containing one of the above files. If "cpr" provides a separate development package or SDK, be sure it has been installed. -- Configuring incomplete, errors occurred!
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you are subscribed to this thread.
ah well, I guess we can try to get through it with the system curl for the moment?
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you are subscribed to this thread.
probably disable the docker CI for this PR for a while longer.
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you are subscribed to this thread.