NativeInstruments / ni-media

NI Media is a C++ library for reading and writing audio streams.
MIT License
235 stars 34 forks source link

Compilation issues #12

Closed mpoullet closed 6 years ago

mpoullet commented 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
marcrambo commented 6 years ago

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