[type_traits] typedef problem on Microware/Radisys OS9

I am trying to port parts of boost to the Microware/Radisys OS9 platform. This is really an old embedded systems C++ compiler that has not been updated since about 1997. Anyways I can get shared_ptr to work and convert between convertible types. But when I try to compile anything out of type_traits library the compiler can't handle anything like: typedef typename se_t::template type<T> helper; (line 156 in is_enum.hpp) My compiler error is "expected an identifier" at ::template. I am guessing that I am out of luck, but is there any way to rewrite or simplify these kind of constructs?

AMDG Doug Crawford wrote:
I am trying to port parts of boost to the Microware/Radisys OS9 platform. This is really an old embedded systems C++ compiler that has not been updated since about 1997. Anyways I can get shared_ptr to work and convert between convertible types. But when I try to compile anything out of type_traits library the compiler can't handle anything like:
typedef typename se_t::template type<T> helper; (line 156 in is_enum.hpp)
My compiler error is "expected an identifier" at ::template. I am guessing that I am out of luck, but is there any way to rewrite or simplify these kind of constructs?
I suspect that not much in Boost will work with such an old compiler. However, you can try replacing template with BOOST_NESTED_TEMPLATE. In Christ, Steven Watanabe

On Fri, Nov 20, 2009 at 5:37 PM, Steven Watanabe
AMDG
Doug Crawford wrote:
I am trying to port parts of boost to the Microware/Radisys OS9 platform. This is really an old embedded systems C++ compiler that has not been updated since about 1997. Anyways I can get shared_ptr to work and convert between convertible types. But when I try to compile anything out of type_traits library the compiler can't handle anything like:
typedef typename se_t::template type<T> helper; (line 156 in is_enum.hpp)
My compiler error is "expected an identifier" at ::template. I am guessing that I am out of luck, but is there any way to rewrite or simplify these kind of constructs?
I suspect that not much in Boost will work with such an old compiler. However, you can try replacing template with BOOST_NESTED_TEMPLATE.
Overall, it would probably be easier to write a new LLVM backend for that architecture so llvm-gcc/Clang can compile directly to it then it would be to ever try to get modern Boost working on a broken compiler.

My compiler error is "expected an identifier" at ::template. I am guessing that I am out of luck, but is there any way to rewrite or simplify these kind of >constructs?
I fear you may be out of luck there - I can't think of any way to simplify that off the top of my head :-( If is_enum is just being used as a dependency to some other trait, and you don't actually care about enum types, then you could try hard coding is_emun to just evaluate to false for all types and hope for the best... HTH, John.
participants (4)
-
Doug Crawford
-
John Maddock
-
OvermindDL1
-
Steven Watanabe