Boost C++ Libraries: Ticket #12006: Compile error on Windows of boost/functional/hash/extensions.hpp https://svn.boost.org/trac10/ticket/12006 <p> I use STLport 4.5.0 and Visual Studio 2013. I get the following compiler error: </p> <pre class="wiki">base\boost\boost/functional/hash/extensions.hpp(262) : error C2784: 'size_t boost::hash_value(const _STL::complex&lt;_Tp&gt; &amp;)' : could not deduce template argument for 'const _STL::complex&lt;_Tp&gt; &amp;' from 'const wchar_t' boost/functional/hash/extensions.hpp(64) : see declaration of 'boost::hash_value' boost/functional/hash/extensions.hpp(261) : while compiling class template member function 'size_t boost::hash&lt;T&gt;::operator ()(const T &amp;) const' with [ T=wchar_t ] boost/functional/hash/hash.hpp(313) : see reference to function template instantiation 'size_t boost::hash&lt;T&gt;::operator ()(const T &amp;) const' being compiled with [ T=wchar_t ] boost/functional/hash/hash.hpp(312) : see reference to class template instantiation 'boost::hash&lt;T&gt;' being compiled with [ T=wchar_t ] boost\boost/functional/hash/hash.hpp(327) : see reference to function template instantiation 'void boost::hash_combine&lt;wchar_t&gt;(size_t &amp;,const T &amp;)' being compiled with [ T=wchar_t ] boost/functional/hash/hash.hpp(386) : see reference to function template instantiation 'size_t boost::hash_range&lt;const wchar_t*&gt;(It,It)' being compiled with [ It=const wchar_t * ] boost/functional/hash/hash.hpp(458) : see reference to function template instantiation 'size_t boost::hash_value&lt;wchar_t,_STL::allocator&lt;wchar_t&gt;&gt;(const _STL::basic_string&lt;wchar_t,_STL::char_traits&lt;wchar_t&gt;,_STL::allocator&lt;wchar_t&gt;&gt; &amp;)' being compiled base\boost\boost/functional/hash/extensions.hpp(262) : error C2784: 'size_t boost::hash_value(const _STL::multimap&lt;_Key,_Tp,_Compare,_Alloc&gt; &amp;)' : could not deduce template argument for 'const _STL::multimap&lt;_Key,_Tp,_Compare,_Alloc&gt; &amp;' from 'const wchar_t' boost\boost/functional/hash/extensions.hpp(61) : see declaration of 'boost::hash_value' base\boost\boost/functional/hash/extensions.hpp(262) : error C2784: 'size_t boost::hash_value(const _STL::map&lt;_Key,_Tp,_Compare,_Alloc&gt; &amp;)' : could not deduce template argument for 'const _STL::map&lt;_Key,_Tp,_Compare,_Alloc&gt; &amp;' from 'const wchar_t' boost\boost/functional/hash/extensions.hpp(59) : see declaration of 'boost::hash_value' base\boost\boost/functional/hash/extensions.hpp(262) : error C2784: 'size_t boost::hash_value(const _STL::multiset&lt;_Key,_Compare,_Alloc&gt; &amp;)' : could not deduce template argument for 'const _STL::multiset&lt;_Key,_Compare,_Alloc&gt; &amp;' from 'const wchar_t' boost\boost/functional/hash/extensions.hpp(57) : see declaration of 'boost::hash_value' base\boost\boost/functional/hash/extensions.hpp(262) : error C2784: 'size_t boost::hash_value(const _STL::set&lt;_Key,_Compare,_Alloc&gt; &amp;)' : could not deduce template argument for 'const _STL::set&lt;_Key,_Compare,_Alloc&gt; &amp;' from 'const wchar_t' boost\boost/functional/hash/extensions.hpp(55) : see declaration of 'boost::hash_value' base\boost\boost/functional/hash/extensions.hpp(262) : error C2784: 'size_t boost::hash_value(const _STL::deque&lt;_Tp,_Alloc&gt; &amp;)' : could not deduce template argument for 'const _STL::deque&lt;_Tp,_Alloc&gt; &amp;' from 'const wchar_t' boost\boost/functional/hash/extensions.hpp(53) : see declaration of 'boost::hash_value' base\boost\boost/functional/hash/extensions.hpp(262) : error C2784: 'size_t boost::hash_value(const _STL::list&lt;_Tp,_Alloc&gt; &amp;)' : could not deduce template argument for 'const _STL::list&lt;_Tp,_Alloc&gt; &amp;' from 'const wchar_t' boost\boost/functional/hash/extensions.hpp(51) : see declaration of 'boost::hash_value' base\boost\boost/functional/hash/extensions.hpp(262) : error C2784: 'size_t boost::hash_value(const _STL::vector&lt;_Tp,_Alloc&gt; &amp;)' : could not deduce template argument for 'const _STL::vector&lt;_Tp,_Alloc&gt; &amp;' from 'const wchar_t' boost\boost/functional/hash/extensions.hpp(49) : see declaration of 'boost::hash_value' base\boost\boost/functional/hash/extensions.hpp(262) : error C2784: 'size_t boost::hash_value(const _STL::pair&lt;_T1,_T2&gt; &amp;)' : could not deduce template argument for 'const _STL::pair&lt;_T1,_T2&gt; &amp;' from 'const wchar_t' boost\boost/functional/hash/extensions.hpp(47) : see declaration of 'boost::hash_value' base\boost\boost/functional/hash/extensions.hpp(262) : error C2893: Failed to specialize function template 'boost::hash_detail::float_numbers&lt;T&gt;::type boost::hash_value(T)' With the following template arguments: 'T=wchar_t' base\boost\boost/functional/hash/extensions.hpp(262) : error C2784: 'size_t boost::hash_value(const _STL::basic_string&lt;Ch,_STL::char_traits&lt;_CharT&gt;,A&gt; &amp;)' : could not deduce template argument for 'const _STL::basic_string&lt;Ch,_STL::char_traits&lt;_CharT&gt;,A&gt; &amp;' from 'const wchar_t' boost\boost/functional/hash/hash.hpp(154) : see declaration of 'boost::hash_value' base\boost\boost/functional/hash/extensions.hpp(262) : error C2784: 'size_t boost::hash_value(T (&amp;)[N])' : could not deduce template argument for 'T (&amp;)[N]' from 'const wchar_t' boost/functional/hash/hash.hpp(150) : see declaration of 'boost::hash_value' base\boost\boost/functional/hash/extensions.hpp(262) : error C2784: 'size_t boost::hash_value(const T (&amp;)[N])' : could not deduce template argument for 'const T (&amp;)[N]' from 'const wchar_t' boost/functional/hash/hash.hpp(147) : see declaration of 'boost::hash_value' base\boost\boost/functional/hash/extensions.hpp(262) : error C2784: 'size_t boost::hash_value(T *const &amp;)' : could not deduce template argument for 'T *const &amp;' from 'const wchar_t' boost/functional/hash/hash.hpp(140) : see declaration of 'boost::hash_value' base\boost\boost/functional/hash/extensions.hpp(262) : error C2893: Failed to specialize function template 'boost::enable_if&lt;boost::is_enum&lt;T&gt;,size_t&gt;::type boost::hash_value(T)' With the following template arguments: 'T=wchar_t' base\boost\boost/functional/hash/extensions.hpp(262) : error C2893: Failed to specialize function template 'boost::hash_detail::ulong_numbers&lt;T&gt;::type boost::hash_value(T)' With the following template arguments: 'T=wchar_t' base\boost\boost/functional/hash/extensions.hpp(262) : error C2893: Failed to specialize function template 'boost::hash_detail::long_numbers&lt;T&gt;::type boost::hash_value(T)' With the following template arguments: 'T=wchar_t' base\boost\boost/functional/hash/extensions.hpp(262) : error C2893: Failed to specialize function template 'boost::hash_detail::basic_numbers&lt;T&gt;::type boost::hash_value(T)' With the following template arguments: 'T=wchar_t' </pre><p> If I set BOOST_NO_FUNCTION_TEMPLATE_ORDERING, I get a similar error. </p> <p> I don't know where they come from. With old boost versions, it worked just fine. Do you have any clue? </p> <p> Best regards, Kilian. </p> en-us Boost C++ Libraries /htdocs/site/boost.png https://svn.boost.org/trac10/ticket/12006 Trac 1.4.3 John Maddock Sat, 12 Mar 2016 18:16:54 GMT component changed; owner set https://svn.boost.org/trac10/ticket/12006#comment:1 https://svn.boost.org/trac10/ticket/12006#comment:1 <ul> <li><strong>owner</strong> set to <span class="trac-author">Daniel James</span> </li> <li><strong>component</strong> <span class="trac-field-old">None</span> → <span class="trac-field-new">hash</span> </li> </ul> Ticket