Closed mpoullet closed 6 years ago
I've tried to build it (Ubuntu 16.04 / x64) with Clang 5.0 and GCC 7.0 with no luck.
Maybe could someone help me understand what the problem is:
mpoullet@ub-mpoullet:~/Documents/AV/ni-media (master u=)$ mkdir build mpoullet@ub-mpoullet:~/Documents/AV/ni-media (master u=)$ cd build/ mpoullet@ub-mpoullet:~/Documents/AV/ni-media/build (master u=)$ CC=gcc-7 CXX=g++-7 cmake .. -- The C compiler identification is GNU 7.2.0 -- The CXX compiler identification is GNU 7.2.0 -- Check for working C compiler: /usr/bin/gcc-7 -- Check for working C compiler: /usr/bin/gcc-7 -- works -- Detecting C compiler ABI info -- Detecting C compiler ABI info - done -- Detecting C compile features -- Detecting C compile features - done -- Check for working CXX compiler: /usr/bin/g++-7 -- Check for working CXX compiler: /usr/bin/g++-7 -- works -- Detecting CXX compiler ABI info -- Detecting CXX compiler ABI info - done -- Detecting CXX compile features -- Detecting CXX compile features - done -- Found GTest: /usr/lib/libgtest.a -- Looking for pthread.h -- Looking for pthread.h - found -- Looking for pthread_create -- Looking for pthread_create - not found -- Looking for pthread_create in pthreads -- Looking for pthread_create in pthreads - not found -- Looking for pthread_create in pthread -- Looking for pthread_create in pthread - found -- Found Threads: TRUE -- Boost version: 1.58.0 -- Boost version: 1.58.0 -- Found the following Boost libraries: -- iostreams -- filesystem -- system -- regex -- Found Ogg: /usr/include -- Found FLAC: /usr/include -- Found Vorbis: /usr/include -- Configuring done -- Generating done -- Build files have been written to: /home/mpoullet/Documents/AV/ni-media/build mpoullet@ub-mpoullet:~/Documents/AV/ni-media/build (master u=)$ make Scanning dependencies of target pcm [ 1%] Building CXX object pcm/CMakeFiles/pcm.dir/src/ni/media/pcm/dummy.cpp.o [ 3%] Linking CXX static library libpcm.a [ 3%] Built target pcm Scanning dependencies of target pcm_test [ 5%] Building CXX object pcm/test/CMakeFiles/pcm_test.dir/main.cpp.o [ 7%] Building CXX object pcm/test/CMakeFiles/pcm_test.dir/ni/media/pcm/format.test.cpp.o [ 9%] Building CXX object pcm/test/CMakeFiles/pcm_test.dir/ni/media/pcm/converter.test.cpp.o [ 11%] Building CXX object pcm/test/CMakeFiles/pcm_test.dir/ni/media/pcm/dispatch.test.cpp.o [ 13%] Building CXX object pcm/test/CMakeFiles/pcm_test.dir/ni/media/pcm/limits.test.cpp.o [ 15%] Building CXX object pcm/test/CMakeFiles/pcm_test.dir/ni/media/pcm/iterator.test.cpp.o [ 17%] Building CXX object pcm/test/CMakeFiles/pcm_test.dir/ni/media/pcm/iterator_copy_unsigned_integer.test.cpp.o [ 19%] Building CXX object pcm/test/CMakeFiles/pcm_test.dir/ni/media/pcm/iterator_copy_signed_integer.test.cpp.o [ 21%] Building CXX object pcm/test/CMakeFiles/pcm_test.dir/ni/media/pcm/iterator_copy_floating_point.test.cpp.o [ 23%] Building CXX object pcm/test/CMakeFiles/pcm_test.dir/ni/media/pcm/detail/tuple_find.test.cpp.o [ 25%] Building CXX object pcm/test/CMakeFiles/pcm_test.dir/ni/media/pcm/detail/tuple_to_array.test.cpp.o [ 27%] Linking CXX executable pcm_test [ 27%] Built target pcm_test Scanning dependencies of target audiostream [ 29%] Building CXX object audiostream/CMakeFiles/audiostream.dir/src/ni/media/audio/iotools.cpp.o [ 31%] Building CXX object audiostream/CMakeFiles/audiostream.dir/src/ni/media/audio/stream_info.cpp.o [ 33%] Building CXX object audiostream/CMakeFiles/audiostream.dir/src/ni/media/audio/istream.cpp.o [ 35%] Building CXX object audiostream/CMakeFiles/audiostream.dir/src/ni/media/audio/istream_info.cpp.o [ 37%] Building CXX object audiostream/CMakeFiles/audiostream.dir/src/ni/media/audio/ostream.cpp.o [ 39%] Building CXX object audiostream/CMakeFiles/audiostream.dir/src/ni/media/audio/ivectorstream.cpp.o [ 41%] Building CXX object audiostream/CMakeFiles/audiostream.dir/src/ni/media/audio/ifstream.cpp.o [ 43%] Building CXX object audiostream/CMakeFiles/audiostream.dir/src/ni/media/audio/ofstream.cpp.o [ 45%] Building CXX object audiostream/CMakeFiles/audiostream.dir/src/ni/media/audio/ifvectorstream.cpp.o [ 47%] Building CXX object audiostream/CMakeFiles/audiostream.dir/src/ni/media/audio/fstream_info.cpp.o [ 49%] Building CXX object audiostream/CMakeFiles/audiostream.dir/src/ni/media/audio/ifstream_info.cpp.o [ 50%] Building CXX object audiostream/CMakeFiles/audiostream.dir/src/ni/media/audio/ofstream_info.cpp.o [ 52%] Building CXX object audiostream/CMakeFiles/audiostream.dir/src/ni/media/audio/wav/wav_ofstream.cpp.o [ 54%] Building CXX object audiostream/CMakeFiles/audiostream.dir/src/ni/media/audio/source/flac_file_source.cpp.o [ 56%] Building CXX object audiostream/CMakeFiles/audiostream.dir/src/ni/media/audio/source/ogg_file_source.cpp.o [ 58%] Linking CXX static library libaudiostream.a [ 58%] Built target audiostream Scanning dependencies of target audiostream_test [ 60%] Building CXX object audiostream/test/CMakeFiles/audiostream_test.dir/main.cpp.o [ 62%] Building CXX object audiostream/test/CMakeFiles/audiostream_test.dir/ni/media/test_helper.cpp.o In file included from /usr/include/boost/range/algorithm/find_if.hpp:12:0, from /home/mpoullet/Documents/AV/ni-media/pcm/inc/ni/media/pcm/runtime_format.h:30, from /home/mpoullet/Documents/AV/ni-media/pcm/inc/ni/media/pcm/format.h:27, from /home/mpoullet/Documents/AV/ni-media/audiostream/inc/ni/media/audio/stream_info.h:25, from /home/mpoullet/Documents/AV/ni-media/audiostream/inc/ni/media/audio/istream_info.h:25, from /home/mpoullet/Documents/AV/ni-media/audiostream/inc/ni/media/audio/ifstream_info.h:26, from /home/mpoullet/Documents/AV/ni-media/audiostream/test/../src/ni/media/audio/iotools.h:25, from /home/mpoullet/Documents/AV/ni-media/audiostream/test/ni/media/test_helper.cpp:23: /usr/include/boost/concept_check.hpp: In instantiation of ‘boost::Convertible<X, Y>::~Convertible() [with X = boost::iterators::single_pass_traversal_tag; Y = boost::iterators::forward_traversal_tag]’: /usr/include/boost/concept/detail/general.hpp:38:28: required from ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::Convertible<boost::iterators::single_pass_traversal_tag, boost::iterators::forward_traversal_tag>]’ /usr/include/boost/range/concepts.hpp:189:13: required from ‘struct boost::range_detail::ForwardIteratorConcept<boost::iterators::transform_iterator<boost::range_detail::default_constructible_unary_fn_wrapper<{anonymous}::supported_files(const boost::filesystem::path&, boost::optional<audio::ifstream_info::container_type>)::<lambda(const boost::filesystem::path&)>, std::__cxx11::basic_string<char> >, boost::filesystem::recursive_directory_iterator, boost::iterators::use_default, boost::iterators::use_default> >’ /usr/include/boost/concept/detail/has_constraints.hpp:32:62: required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, boost::concepts::detail::wrap_constraints<Model, (& Model:: constraints)>*) [with Model = boost::range_detail::ForwardIteratorConcept<boost::iterators::transform_iterator<boost::range_detail::default_constructible_unary_fn_wrapper<{anonymous}::supported_files(const boost::filesystem::path&, boost::optional<audio::ifstream_info::container_type>)::<lambda(const boost::filesystem::path&)>, std::__cxx11::basic_string<char> >, boost::filesystem::recursive_directory_iterator, boost::iterators::use_default, boost::iterators::use_default> >]’ /usr/include/boost/concept/detail/has_constraints.hpp:42:5: required from ‘const bool boost::concepts::not_satisfied<boost::range_detail::ForwardIteratorConcept<boost::iterators::transform_iterator<boost::range_detail::default_constructible_unary_fn_wrapper<{anonymous}::supported_files(const boost::filesystem::path&, boost::optional<audio::ifstream_info::container_type>)::<lambda(const boost::filesystem::path&)>, std::__cxx11::basic_string<char> >, boost::filesystem::recursive_directory_iterator, boost::iterators::use_default, boost::iterators::use_default> > >::value’ /usr/include/boost/concept/detail/has_constraints.hpp:45:31: required from ‘struct boost::concepts::not_satisfied<boost::range_detail::ForwardIteratorConcept<boost::iterators::transform_iterator<boost::range_detail::default_constructible_unary_fn_wrapper<{anonymous}::supported_files(const boost::filesystem::path&, boost::optional<audio::ifstream_info::container_type>)::<lambda(const boost::filesystem::path&)>, std::__cxx11::basic_string<char> >, boost::filesystem::recursive_directory_iterator, boost::iterators::use_default, boost::iterators::use_default> > >’ /usr/include/boost/mpl/if.hpp:63:11: [ skipping 4 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ] /usr/include/boost/concept/detail/has_constraints.hpp:42:5: required from ‘const bool boost::concepts::not_satisfied<boost::ForwardRangeConcept<const boost::range_detail::transformed_range<{anonymous}::supported_files(const boost::filesystem::path&, boost::optional<audio::ifstream_info::container_type>)::<lambda(const boost::filesystem::path&)>, const boost::iterator_range<boost::filesystem::recursive_directory_iterator> > > >::value’ /usr/include/boost/concept/detail/has_constraints.hpp:45:31: required from ‘struct boost::concepts::not_satisfied<boost::ForwardRangeConcept<const boost::range_detail::transformed_range<{anonymous}::supported_files(const boost::filesystem::path&, boost::optional<audio::ifstream_info::container_type>)::<lambda(const boost::filesystem::path&)>, const boost::iterator_range<boost::filesystem::recursive_directory_iterator> > > >’ /usr/include/boost/mpl/if.hpp:63:11: required from ‘struct boost::mpl::if_<boost::concepts::not_satisfied<boost::ForwardRangeConcept<const boost::range_detail::transformed_range<{anonymous}::supported_files(const boost::filesystem::path&, boost::optional<audio::ifstream_info::container_type>)::<lambda(const boost::filesystem::path&)>, const boost::iterator_range<boost::filesystem::recursive_directory_iterator> > > >, boost::concepts::constraint<boost::ForwardRangeConcept<const boost::range_detail::transformed_range<{anonymous}::supported_files(const boost::filesystem::path&, boost::optional<audio::ifstream_info::container_type>)::<lambda(const boost::filesystem::path&)>, const boost::iterator_range<boost::filesystem::recursive_directory_iterator> > > >, boost::concepts::requirement<boost::concepts::failed************ boost::ForwardRangeConcept<const boost::range_detail::transformed_range<{anonymous}::supported_files(const boost::filesystem::path&, boost::optional<audio::ifstream_info::container_type>)::<lambda(const boost::filesystem::path&)>, const boost::iterator_range<boost::filesystem::recursive_directory_iterator> > >::************> >’ /usr/include/boost/concept/detail/general.hpp:50:8: required from ‘struct boost::concepts::requirement_<void (*)(boost::ForwardRangeConcept<const boost::range_detail::transformed_range<{anonymous}::supported_files(const boost::filesystem::path&, boost::optional<audio::ifstream_info::container_type>)::<lambda(const boost::filesystem::path&)>, const boost::iterator_range<boost::filesystem::recursive_directory_iterator> > >)>’ /usr/include/boost/range/adaptor/filtered.hpp:73:13: required from ‘boost::range_detail::filtered_range<Predicate, const ForwardRange> boost::range_detail::operator|(const ForwardRange&, const boost::range_detail::filter_holder<Predicate>&) [with ForwardRange = boost::range_detail::transformed_range<{anonymous}::supported_files(const boost::filesystem::path&, boost::optional<audio::ifstream_info::container_type>)::<lambda(const boost::filesystem::path&)>, const boost::iterator_range<boost::filesystem::recursive_directory_iterator> >; Predicate = {anonymous}::supported_files(const boost::filesystem::path&, boost::optional<audio::ifstream_info::container_type>)::<lambda(const auto:2&)>]’ /home/mpoullet/Documents/AV/ni-media/audiostream/test/ni/media/test_helper.cpp:64:38: required from here /usr/include/boost/concept_check.hpp:210:13: error: conversion from ‘boost::iterators::single_pass_traversal_tag’ to non-scalar type ‘boost::iterators::forward_traversal_tag’ requested Y y = x; ^ In file included from /usr/include/boost/range/algorithm/find_if.hpp:15:0, from /home/mpoullet/Documents/AV/ni-media/pcm/inc/ni/media/pcm/runtime_format.h:30, from /home/mpoullet/Documents/AV/ni-media/pcm/inc/ni/media/pcm/format.h:27, from /home/mpoullet/Documents/AV/ni-media/audiostream/inc/ni/media/audio/stream_info.h:25, from /home/mpoullet/Documents/AV/ni-media/audiostream/inc/ni/media/audio/istream_info.h:25, from /home/mpoullet/Documents/AV/ni-media/audiostream/inc/ni/media/audio/ifstream_info.h:26, from /home/mpoullet/Documents/AV/ni-media/audiostream/test/../src/ni/media/audio/iotools.h:25, from /home/mpoullet/Documents/AV/ni-media/audiostream/test/ni/media/test_helper.cpp:23: /usr/include/boost/range/concepts.hpp: In instantiation of ‘boost::range_detail::ForwardIteratorConcept<Iterator>::~ForwardIteratorConcept() [with Iterator = boost::iterators::transform_iterator<boost::range_detail::default_constructible_unary_fn_wrapper<{anonymous}::supported_files(const boost::filesystem::path&, boost::optional<audio::ifstream_info::container_type>)::<lambda(const boost::filesystem::path&)>, std::__cxx11::basic_string<char> >, boost::filesystem::recursive_directory_iterator, boost::iterators::use_default, boost::iterators::use_default>]’: /usr/include/boost/concept/detail/general.hpp:38:28: required from ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::range_detail::ForwardIteratorConcept<boost::iterators::transform_iterator<boost::range_detail::default_constructible_unary_fn_wrapper<{anonymous}::supported_files(const boost::filesystem::path&, boost::optional<audio::ifstream_info::container_type>)::<lambda(const boost::filesystem::path&)>, std::__cxx11::basic_string<char> >, boost::filesystem::recursive_directory_iterator, boost::iterators::use_default, boost::iterators::use_default> >]’ /usr/include/boost/range/concepts.hpp:319:9: required from ‘struct boost::ForwardRangeConcept<const boost::range_detail::transformed_range<{anonymous}::supported_files(const boost::filesystem::path&, boost::optional<audio::ifstream_info::container_type>)::<lambda(const boost::filesystem::path&)>, const boost::iterator_range<boost::filesystem::recursive_directory_iterator> > >’ /usr/include/boost/concept/detail/has_constraints.hpp:32:62: required by substitution of ‘template<class Model> boost::concepts::detail::yes boost::concepts::detail::has_constraints_(Model*, boost::concepts::detail::wrap_constraints<Model, (& Model:: constraints)>*) [with Model = boost::ForwardRangeConcept<const boost::range_detail::transformed_range<{anonymous}::supported_files(const boost::filesystem::path&, boost::optional<audio::ifstream_info::container_type>)::<lambda(const boost::filesystem::path&)>, const boost::iterator_range<boost::filesystem::recursive_directory_iterator> > >]’ /usr/include/boost/concept/detail/has_constraints.hpp:42:5: required from ‘const bool boost::concepts::not_satisfied<boost::ForwardRangeConcept<const boost::range_detail::transformed_range<{anonymous}::supported_files(const boost::filesystem::path&, boost::optional<audio::ifstream_info::container_type>)::<lambda(const boost::filesystem::path&)>, const boost::iterator_range<boost::filesystem::recursive_directory_iterator> > > >::value’ /usr/include/boost/concept/detail/has_constraints.hpp:45:31: required from ‘struct boost::concepts::not_satisfied<boost::ForwardRangeConcept<const boost::range_detail::transformed_range<{anonymous}::supported_files(const boost::filesystem::path&, boost::optional<audio::ifstream_info::container_type>)::<lambda(const boost::filesystem::path&)>, const boost::iterator_range<boost::filesystem::recursive_directory_iterator> > > >’ /usr/include/boost/mpl/if.hpp:63:11: required from ‘struct boost::mpl::if_<boost::concepts::not_satisfied<boost::ForwardRangeConcept<const boost::range_detail::transformed_range<{anonymous}::supported_files(const boost::filesystem::path&, boost::optional<audio::ifstream_info::container_type>)::<lambda(const boost::filesystem::path&)>, const boost::iterator_range<boost::filesystem::recursive_directory_iterator> > > >, boost::concepts::constraint<boost::ForwardRangeConcept<const boost::range_detail::transformed_range<{anonymous}::supported_files(const boost::filesystem::path&, boost::optional<audio::ifstream_info::container_type>)::<lambda(const boost::filesystem::path&)>, const boost::iterator_range<boost::filesystem::recursive_directory_iterator> > > >, boost::concepts::requirement<boost::concepts::failed************ boost::ForwardRangeConcept<const boost::range_detail::transformed_range<{anonymous}::supported_files(const boost::filesystem::path&, boost::optional<audio::ifstream_info::container_type>)::<lambda(const boost::filesystem::path&)>, const boost::iterator_range<boost::filesystem::recursive_directory_iterator> > >::************> >’ /usr/include/boost/concept/detail/general.hpp:50:8: required from ‘struct boost::concepts::requirement_<void (*)(boost::ForwardRangeConcept<const boost::range_detail::transformed_range<{anonymous}::supported_files(const boost::filesystem::path&, boost::optional<audio::ifstream_info::container_type>)::<lambda(const boost::filesystem::path&)>, const boost::iterator_range<boost::filesystem::recursive_directory_iterator> > >)>’ /usr/include/boost/range/adaptor/filtered.hpp:73:13: required from ‘boost::range_detail::filtered_range<Predicate, const ForwardRange> boost::range_detail::operator|(const ForwardRange&, const boost::range_detail::filter_holder<Predicate>&) [with ForwardRange = boost::range_detail::transformed_range<{anonymous}::supported_files(const boost::filesystem::path&, boost::optional<audio::ifstream_info::container_type>)::<lambda(const boost::filesystem::path&)>, const boost::iterator_range<boost::filesystem::recursive_directory_iterator> >; Predicate = {anonymous}::supported_files(const boost::filesystem::path&, boost::optional<audio::ifstream_info::container_type>)::<lambda(const auto:2&)>]’ /home/mpoullet/Documents/AV/ni-media/audiostream/test/ni/media/test_helper.cpp:64:38: required from here /usr/include/boost/range/concepts.hpp:201:26: error: no matching function for call to ‘boost::iterators::transform_iterator<boost::range_detail::default_constructible_unary_fn_wrapper<{anonymous}::supported_files(const boost::filesystem::path&, boost::optional<audio::ifstream_info::container_type>)::<lambda(const boost::filesystem::path&)>, std::__cxx11::basic_string<char> >, boost::filesystem::recursive_directory_iterator, boost::iterators::use_default, boost::iterators::use_default>::transform_iterator(boost::mpl::eval_if<boost::mpl::and_<boost::is_convertible<std::__cxx11::basic_string<char>, const std::__cxx11::basic_string<char>&>, boost::mpl::not_<boost::is_convertible<boost::iterators::single_pass_traversal_tag, boost::iterators::forward_traversal_tag> >, mpl_::bool_<true>, mpl_::bool_<true>, mpl_::bool_<true> >, boost::mpl::if_<boost::iterators::detail::is_non_proxy_reference<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> >, boost::iterators::detail::postfix_increment_proxy<boost::iterators::transform_iterator<boost::range_detail::default_constructible_unary_fn_wrapper<{anonymous}::supported_files(const boost::filesystem::path&, boost::optional<audio::ifstream_info::container_type>)::<lambda(const boost::filesystem::path&)>, std::__cxx11::basic_string<char> >, boost::filesystem::recursive_directory_iterator, boost::iterators::use_default, boost::iterators::use_default> >, boost::iterators::detail::writable_postfix_increment_proxy<boost::iterators::transform_iterator<boost::range_detail::default_constructible_unary_fn_wrapper<{anonymous}::supported_files(const boost::filesystem::path&, boost::optional<audio::ifstream_info::container_type>)::<lambda(const boost::filesystem::path&)>, std::__cxx11::basic_string<char> >, boost::filesystem::recursive_directory_iterator, boost::iterators::use_default, boost::iterators::use_default> > >, boost::mpl::identity<boost::iterators::transform_iterator<boost::range_detail::default_constructible_unary_fn_wrapper<{anonymous}::supported_files(const boost::filesystem::path&, boost::optional<audio::ifstream_info::container_type>)::<lambda(const boost::filesystem::path&)>, std::__cxx11::basic_string<char> >, boost::filesystem::recursive_directory_iterator, boost::iterators::use_default, boost::iterators::use_default> > >::type)’ Iterator i2(i++); ^~ In file included from /usr/include/boost/range/adaptor/transformed.hpp:18:0, from /home/mpoullet/Documents/AV/ni-media/audiostream/test/ni/media/test_helper.cpp:29: /usr/include/boost/iterator/transform_iterator.hpp:107:5: note: candidate: template<class OtherUnaryFunction, class OtherIterator, class OtherReference, class OtherValue> boost::iterators::transform_iterator<UnaryFunction, Iterator, Reference, Value>::transform_iterator(const boost::iterators::transform_iterator<OtherUnaryFunction, OtherIterator, OtherReference, OtherValue>&, typename boost::iterators::enable_if_convertible<OtherIterator, Iterator>::type*, typename boost::iterators::enable_if_convertible<OtherIterator, Iterator>::type*) transform_iterator( ^~~~~~~~~~~~~~~~~~ /usr/include/boost/iterator/transform_iterator.hpp:107:5: note: template argument deduction/substitution failed: In file included from /usr/include/boost/range/algorithm/find_if.hpp:15:0, from /home/mpoullet/Documents/AV/ni-media/pcm/inc/ni/media/pcm/runtime_format.h:30, from /home/mpoullet/Documents/AV/ni-media/pcm/inc/ni/media/pcm/format.h:27, from /home/mpoullet/Documents/AV/ni-media/audiostream/inc/ni/media/audio/stream_info.h:25, from /home/mpoullet/Documents/AV/ni-media/audiostream/inc/ni/media/audio/istream_info.h:25, from /home/mpoullet/Documents/AV/ni-media/audiostream/inc/ni/media/audio/ifstream_info.h:26, from /home/mpoullet/Documents/AV/ni-media/audiostream/test/../src/ni/media/audio/iotools.h:25, from /home/mpoullet/Documents/AV/ni-media/audiostream/test/ni/media/test_helper.cpp:23: /usr/include/boost/range/concepts.hpp:201:26: note: ‘boost::mpl::eval_if<boost::mpl::and_<boost::is_convertible<std::__cxx11::basic_string<char>, const std::__cxx11::basic_string<char>&>, boost::mpl::not_<boost::is_convertible<boost::iterators::single_pass_traversal_tag, boost::iterators::forward_traversal_tag> >, mpl_::bool_<true>, mpl_::bool_<true>, mpl_::bool_<true> >, boost::mpl::if_<boost::iterators::detail::is_non_proxy_reference<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> >, boost::iterators::detail::postfix_increment_proxy<boost::iterators::transform_iterator<boost::range_detail::default_constructible_unary_fn_wrapper<{anonymous}::supported_files(const boost::filesystem::path&, boost::optional<audio::ifstream_info::container_type>)::<lambda(const boost::filesystem::path&)>, std::__cxx11::basic_string<char> >, boost::filesystem::recursive_directory_iterator, boost::iterators::use_default, boost::iterators::use_default> >, boost::iterators::detail::writable_postfix_increment_proxy<boost::iterators::transform_iterator<boost::range_detail::default_constructible_unary_fn_wrapper<{anonymous}::supported_files(const boost::filesystem::path&, boost::optional<audio::ifstream_info::container_type>)::<lambda(const boost::filesystem::path&)>, std::__cxx11::basic_string<char> >, boost::filesystem::recursive_directory_iterator, boost::iterators::use_default, boost::iterators::use_default> > >, boost::mpl::identity<boost::iterators::transform_iterator<boost::range_detail::default_constructible_unary_fn_wrapper<{anonymous}::supported_files(const boost::filesystem::path&, boost::optional<audio::ifstream_info::container_type>)::<lambda(const boost::filesystem::path&)>, std::__cxx11::basic_string<char> >, boost::filesystem::recursive_directory_iterator, boost::iterators::use_default, boost::iterators::use_default> > >::type {aka boost::iterators::detail::postfix_increment_proxy<boost::iterators::transform_iterator<boost::range_detail::default_constructible_unary_fn_wrapper<{anonymous}::supported_files(const boost::filesystem::path&, boost::optional<audio::ifstream_info::container_type>)::<lambda(const boost::filesystem::path&)>, std::__cxx11::basic_string<char> >, boost::filesystem::recursive_directory_iterator, boost::iterators::use_default, boost::iterators::use_default> >}’ is not derived from ‘const boost::iterators::transform_iterator<UnaryFunc, Iterator, Reference, Value>’ Iterator i2(i++); ^~ In file included from /usr/include/boost/range/adaptor/transformed.hpp:18:0, from /home/mpoullet/Documents/AV/ni-media/audiostream/test/ni/media/test_helper.cpp:29: /usr/include/boost/iterator/transform_iterator.hpp:90:14: note: candidate: boost::iterators::transform_iterator<UnaryFunction, Iterator, Reference, Value>::transform_iterator(const Iterator&) [with UnaryFunc = boost::range_detail::default_constructible_unary_fn_wrapper<{anonymous}::supported_files(const boost::filesystem::path&, boost::optional<audio::ifstream_info::container_type>)::<lambda(const boost::filesystem::path&)>, std::__cxx11::basic_string<char> >; Iterator = boost::filesystem::recursive_directory_iterator; Reference = boost::iterators::use_default; Value = boost::iterators::use_default] explicit transform_iterator(Iterator const& x) ^~~~~~~~~~~~~~~~~~ /usr/include/boost/iterator/transform_iterator.hpp:90:14: note: no known conversion for argument 1 from ‘boost::mpl::eval_if<boost::mpl::and_<boost::is_convertible<std::__cxx11::basic_string<char>, const std::__cxx11::basic_string<char>&>, boost::mpl::not_<boost::is_convertible<boost::iterators::single_pass_traversal_tag, boost::iterators::forward_traversal_tag> >, mpl_::bool_<true>, mpl_::bool_<true>, mpl_::bool_<true> >, boost::mpl::if_<boost::iterators::detail::is_non_proxy_reference<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> >, boost::iterators::detail::postfix_increment_proxy<boost::iterators::transform_iterator<boost::range_detail::default_constructible_unary_fn_wrapper<{anonymous}::supported_files(const boost::filesystem::path&, boost::optional<audio::ifstream_info::container_type>)::<lambda(const boost::filesystem::path&)>, std::__cxx11::basic_string<char> >, boost::filesystem::recursive_directory_iterator, boost::iterators::use_default, boost::iterators::use_default> >, boost::iterators::detail::writable_postfix_increment_proxy<boost::iterators::transform_iterator<boost::range_detail::default_constructible_unary_fn_wrapper<{anonymous}::supported_files(const boost::filesystem::path&, boost::optional<audio::ifstream_info::container_type>)::<lambda(const boost::filesystem::path&)>, std::__cxx11::basic_string<char> >, boost::filesystem::recursive_directory_iterator, boost::iterators::use_default, boost::iterators::use_default> > >, boost::mpl::identity<boost::iterators::transform_iterator<boost::range_detail::default_constructible_unary_fn_wrapper<{anonymous}::supported_files(const boost::filesystem::path&, boost::optional<audio::ifstream_info::container_type>)::<lambda(const boost::filesystem::path&)>, std::__cxx11::basic_string<char> >, boost::filesystem::recursive_directory_iterator, boost::iterators::use_default, boost::iterators::use_default> > >::type {aka boost::iterators::detail::postfix_increment_proxy<boost::iterators::transform_iterator<boost::range_detail::default_constructible_unary_fn_wrapper<{anonymous}::supported_files(const boost::filesystem::path&, boost::optional<audio::ifstream_info::container_type>)::<lambda(const boost::filesystem::path&)>, std::__cxx11::basic_string<char> >, boost::filesystem::recursive_directory_iterator, boost::iterators::use_default, boost::iterators::use_default> >}’ to ‘const boost::filesystem::recursive_directory_iterator&’ /usr/include/boost/iterator/transform_iterator.hpp:87:5: note: candidate: boost::iterators::transform_iterator<UnaryFunction, Iterator, Reference, Value>::transform_iterator(const Iterator&, UnaryFunc) [with UnaryFunc = boost::range_detail::default_constructible_unary_fn_wrapper<{anonymous}::supported_files(const boost::filesystem::path&, boost::optional<audio::ifstream_info::container_type>)::<lambda(const boost::filesystem::path&)>, std::__cxx11::basic_string<char> >; Iterator = boost::filesystem::recursive_directory_iterator; Reference = boost::iterators::use_default; Value = boost::iterators::use_default] transform_iterator(Iterator const& x, UnaryFunc f) ^~~~~~~~~~~~~~~~~~ /usr/include/boost/iterator/transform_iterator.hpp:87:5: note: candidate expects 2 arguments, 1 provided /usr/include/boost/iterator/transform_iterator.hpp:85:5: note: candidate: boost::iterators::transform_iterator<UnaryFunction, Iterator, Reference, Value>::transform_iterator() [with UnaryFunc = boost::range_detail::default_constructible_unary_fn_wrapper<{anonymous}::supported_files(const boost::filesystem::path&, boost::optional<audio::ifstream_info::container_type>)::<lambda(const boost::filesystem::path&)>, std::__cxx11::basic_string<char> >; Iterator = boost::filesystem::recursive_directory_iterator; Reference = boost::iterators::use_default; Value = boost::iterators::use_default] transform_iterator() { } ^~~~~~~~~~~~~~~~~~ /usr/include/boost/iterator/transform_iterator.hpp:85:5: note: candidate expects 0 arguments, 1 provided /usr/include/boost/iterator/transform_iterator.hpp:75:9: note: candidate: boost::iterators::transform_iterator<boost::range_detail::default_constructible_unary_fn_wrapper<{anonymous}::supported_files(const boost::filesystem::path&, boost::optional<audio::ifstream_info::container_type>)::<lambda(const boost::filesystem::path&)>, std::__cxx11::basic_string<char> >, boost::filesystem::recursive_directory_iterator, boost::iterators::use_default, boost::iterators::use_default>::transform_iterator(const boost::iterators::transform_iterator<boost::range_detail::default_constructible_unary_fn_wrapper<{anonymous}::supported_files(const boost::filesystem::path&, boost::optional<audio::ifstream_info::container_type>)::<lambda(const boost::filesystem::path&)>, std::__cxx11::basic_string<char> >, boost::filesystem::recursive_directory_iterator, boost::iterators::use_default, boost::iterators::use_default>&) class transform_iterator ^~~~~~~~~~~~~~~~~~ /usr/include/boost/iterator/transform_iterator.hpp:75:9: note: no known conversion for argument 1 from ‘boost::mpl::eval_if<boost::mpl::and_<boost::is_convertible<std::__cxx11::basic_string<char>, const std::__cxx11::basic_string<char>&>, boost::mpl::not_<boost::is_convertible<boost::iterators::single_pass_traversal_tag, boost::iterators::forward_traversal_tag> >, mpl_::bool_<true>, mpl_::bool_<true>, mpl_::bool_<true> >, boost::mpl::if_<boost::iterators::detail::is_non_proxy_reference<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> >, boost::iterators::detail::postfix_increment_proxy<boost::iterators::transform_iterator<boost::range_detail::default_constructible_unary_fn_wrapper<{anonymous}::supported_files(const boost::filesystem::path&, boost::optional<audio::ifstream_info::container_type>)::<lambda(const boost::filesystem::path&)>, std::__cxx11::basic_string<char> >, boost::filesystem::recursive_directory_iterator, boost::iterators::use_default, boost::iterators::use_default> >, boost::iterators::detail::writable_postfix_increment_proxy<boost::iterators::transform_iterator<boost::range_detail::default_constructible_unary_fn_wrapper<{anonymous}::supported_files(const boost::filesystem::path&, boost::optional<audio::ifstream_info::container_type>)::<lambda(const boost::filesystem::path&)>, std::__cxx11::basic_string<char> >, boost::filesystem::recursive_directory_iterator, boost::iterators::use_default, boost::iterators::use_default> > >, boost::mpl::identity<boost::iterators::transform_iterator<boost::range_detail::default_constructible_unary_fn_wrapper<{anonymous}::supported_files(const boost::filesystem::path&, boost::optional<audio::ifstream_info::container_type>)::<lambda(const boost::filesystem::path&)>, std::__cxx11::basic_string<char> >, boost::filesystem::recursive_directory_iterator, boost::iterators::use_default, boost::iterators::use_default> > >::type {aka boost::iterators::detail::postfix_increment_proxy<boost::iterators::transform_iterator<boost::range_detail::default_constructible_unary_fn_wrapper<{anonymous}::supported_files(const boost::filesystem::path&, boost::optional<audio::ifstream_info::container_type>)::<lambda(const boost::filesystem::path&)>, std::__cxx11::basic_string<char> >, boost::filesystem::recursive_directory_iterator, boost::iterators::use_default, boost::iterators::use_default> >}’ to ‘const boost::iterators::transform_iterator<boost::range_detail::default_constructible_unary_fn_wrapper<{anonymous}::supported_files(const boost::filesystem::path&, boost::optional<audio::ifstream_info::container_type>)::<lambda(const boost::filesystem::path&)>, std::__cxx11::basic_string<char> >, boost::filesystem::recursive_directory_iterator, boost::iterators::use_default, boost::iterators::use_default>&’ /usr/include/boost/iterator/transform_iterator.hpp:75:9: note: candidate: boost::iterators::transform_iterator<boost::range_detail::default_constructible_unary_fn_wrapper<{anonymous}::supported_files(const boost::filesystem::path&, boost::optional<audio::ifstream_info::container_type>)::<lambda(const boost::filesystem::path&)>, std::__cxx11::basic_string<char> >, boost::filesystem::recursive_directory_iterator, boost::iterators::use_default, boost::iterators::use_default>::transform_iterator(boost::iterators::transform_iterator<boost::range_detail::default_constructible_unary_fn_wrapper<{anonymous}::supported_files(const boost::filesystem::path&, boost::optional<audio::ifstream_info::container_type>)::<lambda(const boost::filesystem::path&)>, std::__cxx11::basic_string<char> >, boost::filesystem::recursive_directory_iterator, boost::iterators::use_default, boost::iterators::use_default>&&) /usr/include/boost/iterator/transform_iterator.hpp:75:9: note: no known conversion for argument 1 from ‘boost::mpl::eval_if<boost::mpl::and_<boost::is_convertible<std::__cxx11::basic_string<char>, const std::__cxx11::basic_string<char>&>, boost::mpl::not_<boost::is_convertible<boost::iterators::single_pass_traversal_tag, boost::iterators::forward_traversal_tag> >, mpl_::bool_<true>, mpl_::bool_<true>, mpl_::bool_<true> >, boost::mpl::if_<boost::iterators::detail::is_non_proxy_reference<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> >, boost::iterators::detail::postfix_increment_proxy<boost::iterators::transform_iterator<boost::range_detail::default_constructible_unary_fn_wrapper<{anonymous}::supported_files(const boost::filesystem::path&, boost::optional<audio::ifstream_info::container_type>)::<lambda(const boost::filesystem::path&)>, std::__cxx11::basic_string<char> >, boost::filesystem::recursive_directory_iterator, boost::iterators::use_default, boost::iterators::use_default> >, boost::iterators::detail::writable_postfix_increment_proxy<boost::iterators::transform_iterator<boost::range_detail::default_constructible_unary_fn_wrapper<{anonymous}::supported_files(const boost::filesystem::path&, boost::optional<audio::ifstream_info::container_type>)::<lambda(const boost::filesystem::path&)>, std::__cxx11::basic_string<char> >, boost::filesystem::recursive_directory_iterator, boost::iterators::use_default, boost::iterators::use_default> > >, boost::mpl::identity<boost::iterators::transform_iterator<boost::range_detail::default_constructible_unary_fn_wrapper<{anonymous}::supported_files(const boost::filesystem::path&, boost::optional<audio::ifstream_info::container_type>)::<lambda(const boost::filesystem::path&)>, std::__cxx11::basic_string<char> >, boost::filesystem::recursive_directory_iterator, boost::iterators::use_default, boost::iterators::use_default> > >::type {aka boost::iterators::detail::postfix_increment_proxy<boost::iterators::transform_iterator<boost::range_detail::default_constructible_unary_fn_wrapper<{anonymous}::supported_files(const boost::filesystem::path&, boost::optional<audio::ifstream_info::container_type>)::<lambda(const boost::filesystem::path&)>, std::__cxx11::basic_string<char> >, boost::filesystem::recursive_directory_iterator, boost::iterators::use_default, boost::iterators::use_default> >}’ to ‘boost::iterators::transform_iterator<boost::range_detail::default_constructible_unary_fn_wrapper<{anonymous}::supported_files(const boost::filesystem::path&, boost::optional<audio::ifstream_info::container_type>)::<lambda(const boost::filesystem::path&)>, std::__cxx11::basic_string<char> >, boost::filesystem::recursive_directory_iterator, boost::iterators::use_default, boost::iterators::use_default>&&’ audiostream/test/CMakeFiles/audiostream_test.dir/build.make:86: recipe for target 'audiostream/test/CMakeFiles/audiostream_test.dir/ni/media/test_helper.cpp.o' failed make[2]: *** [audiostream/test/CMakeFiles/audiostream_test.dir/ni/media/test_helper.cpp.o] Error 1 CMakeFiles/Makefile2:243: recipe for target 'audiostream/test/CMakeFiles/audiostream_test.dir/all' failed make[1]: *** [audiostream/test/CMakeFiles/audiostream_test.dir/all] Error 2 Makefile:94: recipe for target 'all' failed make: *** [all] Error 2
Hi Matthieu,
it is most likely your boost version. Boost 1.58 is pretty old, and i guess the boost::transformed range adaptor does not support lambdas yet. Try updating to version 1.63 or later.
Best, Marc
I've tried to build it (Ubuntu 16.04 / x64) with Clang 5.0 and GCC 7.0 with no luck.
Maybe could someone help me understand what the problem is: