HI ! We have a problem compiling Boost.threads v. 1.28 on SGI. We are running IRIX 6.5 with MipsPro Compiler 7.30 The command line we use is : 'bjam "-sTOOLS=mipspro"' The compiler retuns the following error: ---------------------------------------------------------------------- -------- cc-3161 CC: ERROR File = /ULTRA/depot/sdk/boost/boost_1_28_0/boost/thread/condition.hpp, Line = 94 A class-qualified name is required. typedef typename detail::thread::lock_ops<M> lock_ops; ^ A template was detected during header processing. instantiation of "void boost::condition::do_wait (boost::mutex &)" at line 49 instantiation of "void boost::condition::wait (boost::mutex::scoped_lock &)" at line 40 of "../src/thread.cpp" ---------------------------------------------------------------------- -------- Can anyone help us to solve the problem ? Thanks in advance
--- In Boost-Users@y..., "monteleone_a"
HI ! We have a problem compiling Boost.threads v. 1.28 on SGI. We are running IRIX 6.5 with MipsPro Compiler 7.30
The command line we use is : 'bjam "-sTOOLS=mipspro"' The compiler retuns the following error:
-------------------------------------------------------------------- -- -------- cc-3161 CC: ERROR File = /ULTRA/depot/sdk/boost/boost_1_28_0/boost/thread/condition.hpp, Line = 94 A class-qualified name is required.
typedef typename detail::thread::lock_ops<M> lock_ops; ^ A template was detected during header processing. instantiation of "void boost::condition::do_wait (boost::mutex &)" at line 49 instantiation of "void boost::condition::wait (boost::mutex::scoped_lock &)" at line 40 of "../src/thread.cpp" -------------------------------------------------------------------- -- --------
Can anyone help us to solve the problem ?
Thanks in advance
I don't have access to this compiler and the error doesn't make much sense to me. Hopefully someone familiar with this platform can speak up here. Bill Kempf
cc-3161 CC: ERROR File = /ULTRA/depot/sdk/boost/boost_1_28_0/boost/thread/condition.hpp, Line = 94 A class-qualified name is required.
typedef typename detail::thread::lock_ops<M> lock_ops; ^ A template was detected during header processing. instantiation of "void boost::condition::do_wait (boost::mutex &)" at line 49 instantiation of "void boost::condition::wait (boost::mutex::scoped_lock &)" at line 40 of "../src/thread.cpp"
You only need to use typename with dependent qualified names, and the qualifier in this case (boost::thread) is not dependent, so the typename isn't required. In fact since the qualifier isn't even a type, I'm not actually sure that it is even legal, whatever changing to: typedef detail::thread::lock_ops<M> lock_ops; should do the trick. John Maddock http://ourworld.compuserve.com/homepages/john_maddock/index.htm
cc-3161 CC: ERROR File
= /ULTRA/depot/sdk/boost/boost_1_28_0/boost/thread/condition.hpp,
Line = 94 A class-qualified name is required.
typedef typename detail::thread::lock_ops<M> lock_ops; ^ A template was detected during header processing. instantiation of "void boost::condition::do_wait (boost::mutex &)" at line 49 instantiation of "void boost::condition::wait (boost::mutex::scoped_lock &)" at line 40 of "../src/thread.cpp"
You only need to use typename with dependent qualified names, and
It works!
We just removed the typename occurrencies that caused the errors and
everything compiles!!
Thank you very much for the trick.
Antonio Monteleone
--- In Boost-Users@y..., "John Maddock"
qualifier in this case (boost::thread) is not dependent, so the typename isn't required. In fact since the qualifier isn't even a type, I'm not actually sure that it is even legal, whatever changing to:
typedef detail::thread::lock_ops<M> lock_ops;
should do the trick.
John Maddock http://ourworld.compuserve.com/homepages/john_maddock/index.htm
participants (3)
-
bill_kempf
-
John Maddock
-
monteleone_a