Error with Thread in 1.30.0: Tempate Depth
Hello, Has anyone else had this problem? I am trying to build a program
that uses the boost_thread library (v. 1.30.0), but get this error
repeatedly:
/usr/local/include/boost/type_traits/is_convertible.hpp: At top level:
/usr/local/include/boost/type_traits/is_convertible.hpp:184: template
instantiation depth exceeds
maximum of 17 (use -ftemplate-depth-NN to increase the maximum)
instantiating `struct boost::add_reference
On Wed, 26 Mar 2003, Reed Hedges wrote:
Hello, Has anyone else had this problem? I am trying to build a program that uses the boost_thread library (v. 1.30.0), but get this error repeatedly:
[snip errors o' plenty]
VOS::AsyncConnect is my program's class. Setting -ftempate-depth-20 resolves the problem.
This problem does not appear in Boost 1.29.0
Any information is greatly appreciated.
17 is just an arbitrary limit on the instantiation depth. It's meant to make sure the compiler terminates if instantiations would recursive forever, but in practice 17 is too small a number for practical metaprogramming. I suggest using -ftemplate-depth-99 and forgetting about it: you'll know if there's a runaway instantiation (it doesn't happen often). Doug P.S. 17 is actually specified in the C++ standard, and it's quite the joke because it's so very, very arbitrary and I think the justification of that number has been lost to time :)
participants (2)
-
Douglas Paul Gregor
-
Reed Hedges