This:
boost::double_ended::devectorstd::uint64_t v ( 16, 123 );
does not work on both Clang/LLVM-6.0 and VS2017 on Windows. One has to
explicitely cast 123 to std::uint64_t, i.e.
boost::double_ended::devectorstd::uint64_t v ( 16, ( std::uint64_t )
123 );
does work.
This is inconsistent with std::vector, which quite happily implicitely
converts the int to std::uint64_t.
Clang has this to say about it:
1>z:\vc\x64\include\boost/double_ended/devector.hpp(414): error : no
matching function for call to 'distance'
1>pfr.cpp(70): note: in instantiation of function template specialization
'boost::double_ended::devector,
boost::double_ended::devector_growth_policy, std::allocator<unsigned long
long> >::devector' requested here
1>C:\Program Files (x86)\Microsoft Visual
Studio\2017\Community\VC\Tools\MSVC\14.11.25503\include\xutility(1104):
note: candidate template ignored: substitution failure [with _InIt = int]:
no type named 'difference_type' in 'std::iterator_traits<int>'
1>In file included from pfr.cpp:44:
1>z:\vc\x64\include\boost/double_ended/devector.hpp(417): error : no
matching function for call to 'distance'
1>C:\Program Files (x86)\Microsoft Visual
Studio\2017\Community\VC\Tools\MSVC\14.11.25503\include\xutility(1104):
note: candidate template ignored: substitution failure [with _InIt = int]:
no type named 'difference_type' in 'std::iterator_traits<int>'
1>In file included from pfr.cpp:44:
1>z:\vc\x64\include\boost/double_ended/devector.hpp(2188): error :
indirection requires pointer operand ('int' invalid)
1>z:\vc\x64\include\boost/double_ended/devector.hpp(2178): note: in
instantiation of function template specialization
'boost::double_ended::devector,
boost::double_ended::devector_growth_policy, std::allocator<unsigned long
long> >::opt_copy' requested here
1>z:\vc\x64\include\boost/double_ended/devector.hpp(2655): note: in
instantiation of function template specialization
'boost::double_ended::devector,
boost::double_ended::devector_growth_policy, std::allocator<unsigned long
long> >::opt_copy<int>' requested here
1>z:\vc\x64\include\boost/double_ended/devector.hpp(419): note: in
instantiation of function template specialization
'boost::double_ended::devector,
boost::double_ended::devector_growth_policy, std::allocator<unsigned long
long> >::construct_from_range<int>' requested here
1>pfr.cpp(70): note: in instantiation of function template specialization
'boost::double_ended::devector,
boost::double_ended::devector_growth_policy, std::allocator<unsigned long
long> >::devector' requested here
degski
--
"*Ihre sogenannte Religion wirkt bloß wie ein Opiat reizend, betäubend,
Schmerzen aus Schwäche stillend.*" - Novalis 1798