error C2664 when compiling DNG SDK, somewhere inside std

  • Thread starter Thread starter ET3D
  • Start date Start date
E

ET3D

Guest
2>C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include\xmemory0(952): error C2664: 'dng_std_allocator<_Newfirst>::dng_std_allocator(dng_std_allocator<_Newfirst> &&)': cannot convert argument 1 from 'std::_Wrap_alloc<dng_std_allocator<dng_noise_function>>' to 'const dng_std_allocator<_Newfirst> &'
2> with
2> [
2> _Newfirst=std::_Container_proxy
2> ]
2>C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include\xmemory0(952): note: Reason: cannot convert from 'std::_Wrap_alloc<dng_std_allocator<dng_noise_function>>' to 'const dng_std_allocator<_Newfirst>'
2> with
2> [
2> _Newfirst=std::_Container_proxy
2> ]
2>C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include\xmemory0(952): note: No user-defined-conversion operator available that can perform this conversion, or the operator cannot be called
2>C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include\vector(588): note: see reference to function template instantiation 'std::_Wrap_alloc<dng_std_allocator<_Newfirst>>::_Wrap_alloc<std::_Wrap_alloc<dng_std_allocator<dng_noise_function>>&>(_Other) noexcept' being compiled
2> with
2> [
2> _Newfirst=std::_Container_proxy,
2> _Other=std::_Wrap_alloc<dng_std_allocator<dng_noise_function>> &
2> ]
2>C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include\vector(588): note: see reference to function template instantiation 'std::_Wrap_alloc<dng_std_allocator<_Newfirst>>::_Wrap_alloc<std::_Wrap_alloc<dng_std_allocator<dng_noise_function>>&>(_Other) noexcept' being compiled
2> with
2> [
2> _Newfirst=std::_Container_proxy,
2> _Other=std::_Wrap_alloc<dng_std_allocator<dng_noise_function>> &
2> ]
2>C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include\vector(586): note: while compiling class template member function 'void std::_Vector_alloc<std::_Vec_base_types<_Ty,_Alloc>>::_Free_proxy(void)'
2> with
2> [
2> _Ty=dng_noise_function,
2> _Alloc=dng_std_allocator<dng_noise_function>
2> ]
2>C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include\vector(564): note: see reference to function template instantiation 'void std::_Vector_alloc<std::_Vec_base_types<_Ty,_Alloc>>::_Free_proxy(void)' being compiled
2> with
2> [
2> _Ty=dng_noise_function,
2> _Alloc=dng_std_allocator<dng_noise_function>
2> ]
2>C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include\vector(680): note: see reference to class template instantiation 'std::_Vector_alloc<std::_Vec_base_types<_Ty,_Alloc>>' being compiled
2> with
2> [
2> _Ty=dng_noise_function,
2> _Alloc=dng_std_allocator<dng_noise_function>
2> ]
2>e:\dev\vr\dng_sdk_1_4\dng_sdk\source\dng_negative.h(178): note: see reference to class template instantiation 'std::vector<dng_noise_function,dng_std_allocator<dng_noise_function>>' being compiled


The project is a VS 2013 project that I changed to use the VS 2015 toolset in VS 2017.

The line in question (the one mentioned at the end, in dng_negative.h, is:

dng_std_vector<dng_noise_function> fNoiseFunctions;

where dng_std_vector is:

template <class T> using dng_std_vector = std::vector<T, dng_std_allocator<T> >;



Can anyone explain this error to me? Changing this from dng_std_vector to std::vector does help.

Continue reading...
 
Back
Top