chriskohlhoff / asio

Asio C++ Library
http://think-async.com/Asio
4.72k stars 1.19k forks source link

C2955 and C2066 erros when including `spawn.hpp` header in MSVC-14.0 #1488

Open ashtum opened 3 weeks ago

ashtum commented 3 weeks ago

The inclusion of boost/asio/spawn.hpp is enough to reproduce the error. This only happens in MSVC-14.0.

#include <boost/asio/spawn.hpp>

int main(){}
D:\a\beast\boost-root\boost/asio/spawn.hpp(424): error C2955: 'boost::asio::basic_yield_context': use of class template requires template argument list
D:\a\beast\boost-root\boost/asio/spawn.hpp(188): note: see declaration of 'boost::asio::basic_yield_context'
D:\a\beast\boost-root\boost/asio/spawn.hpp(424): error C2066: cast to function type is illegal
D:\a\beast\boost-root\boost/asio/spawn.hpp(481): error C2066: cast to function type is illegal
D:\a\beast\boost-root\boost/asio/spawn.hpp(481): error C2955: 'boost::asio::basic_yield_context': use of class template requires template argument list
D:\a\beast\boost-root\boost/asio/spawn.hpp(188): note: see declaration of 'boost::asio::basic_yield_context'
D:\a\beast\boost-root\boost/asio/spawn.hpp(537): error C2066: cast to function type is illegal
D:\a\beast\boost-root\boost/asio/spawn.hpp(537): error C2955: 'boost::asio::basic_yield_context': use of class template requires template argument list
D:\a\beast\boost-root\boost/asio/spawn.hpp(188): note: see declaration of 'boost::asio::basic_yield_context'
D:\a\beast\boost-root\boost/asio/spawn.hpp(590): error C2066: cast to function type is illegal
D:\a\beast\boost-root\boost/asio/spawn.hpp(590): error C2955: 'boost::asio::basic_yield_context': use of class template requires template argument list
D:\a\beast\boost-root\boost/asio/spawn.hpp(188): note: see declaration of 'boost::asio::basic_yield_context'
D:\a\beast\boost-root\boost/asio/spawn.hpp(646): error C2066: cast to function type is illegal
D:\a\beast\boost-root\boost/asio/spawn.hpp(646): error C2955: 'boost::asio::basic_yield_context': use of class template requires template argument list
D:\a\beast\boost-root\boost/asio/spawn.hpp(188): note: see declaration of 'boost::asio::basic_yield_context'
D:\a\beast\boost-root\boost/asio/spawn.hpp(703): error C2066: cast to function type is illegal
D:\a\beast\boost-root\boost/asio/spawn.hpp(703): error C2955: 'boost::asio::basic_yield_context': use of class template requires template argument list
D:\a\beast\boost-root\boost/asio/spawn.hpp(188): note: see declaration of 'boost::asio::basic_yield_context'
D:\a\beast\boost-root\boost/asio/impl/spawn.hpp(1119): error C2066: cast to function type is illegal
D:\a\beast\boost-root\boost/asio/impl/spawn.hpp(1119): error C2955: 'boost::asio::basic_yield_context': use of class template requires template argument list
D:\a\beast\boost-root\boost/asio/spawn.hpp(188): note: see declaration of 'boost::asio::basic_yield_context'
D:\a\beast\boost-root\boost/asio/impl/spawn.hpp(1150): error C2066: cast to function type is illegal
D:\a\beast\boost-root\boost/asio/impl/spawn.hpp(1150): error C2955: 'boost::asio::basic_yield_context': use of class template requires template argument list
D:\a\beast\boost-root\boost/asio/spawn.hpp(188): note: see declaration of 'boost::asio::basic_yield_context'
D:\a\beast\boost-root\boost/asio/impl/spawn.hpp(1179): error C2066: cast to function type is illegal
D:\a\beast\boost-root\boost/asio/impl/spawn.hpp(1179): error C2955: 'boost::asio::basic_yield_context': use of class template requires template argument list
D:\a\beast\boost-root\boost/asio/spawn.hpp(188): note: see declaration of 'boost::asio::basic_yield_context'
D:\a\beast\boost-root\boost/asio/impl/spawn.hpp(1201): error C2066: cast to function type is illegal
D:\a\beast\boost-root\boost/asio/impl/spawn.hpp(1201): error C2955: 'boost::asio::basic_yield_context': use of class template requires template argument list
D:\a\beast\boost-root\boost/asio/spawn.hpp(188): note: see declaration of 'boost::asio::basic_yield_context'
D:\a\beast\boost-root\boost/asio/impl/spawn.hpp(1228): error C2066: cast to function type is illegal
D:\a\beast\boost-root\boost/asio/impl/spawn.hpp(1228): error C2955: 'boost::asio::basic_yield_context': use of class template requires template argument list
D:\a\beast\boost-root\boost/asio/spawn.hpp(188): note: see declaration of 'boost::asio::basic_yield_context'
D:\a\beast\boost-root\boost/asio/impl/spawn.hpp(1251): error C2066: cast to function type is illegal
D:\a\beast\boost-root\boost/asio/impl/spawn.hpp(1251): error C2955: 'boost::asio::basic_yield_context': use of class template requires template argument list
D:\a\beast\boost-root\boost/asio/spawn.hpp(188): note: see declaration of 'boost::asio::basic_yield_context'