
On Dec 7, 2005, at 12:02 PM, Eric Niebler wrote:
Resending ... I figured I'd give this one last try before marking xpressive unusable on MetroWerks. Any clues?
Eric Niebler wrote:
Does cw-9_4 really support partial specialization of class templates? According to boost.config it does. xpressive's tests are failing on this compiler, with heaps of errors like:
### mwcc Compiler: # In: ..\boost\xpressive\detail\static\productions\independent_compiler.hpp # From: ..\libs\xpressive\test\misc1.cpp # ----------------------------------------- # 128: : transform_compiler<arg_transform, xpressive::detail::seq_tag> # Error: ^ # illegal partial specialization
I get similar problems from CW 9.6 just syntax checking independent_compiler.hpp. I see two ways around it, both less than desirable. 1) add the missing default template argument to the compiler specialization template<bool PositiveT> struct compiler<xpressive::detail::lookahead_tag<PositiveT>, xpressive::detail::seq_tag, void> : branch_compiler<xpressive::detail::lookahead_branch<PositiveT>, xpressive::detail::ind_tag> { }; 2) fully specialize for the bool argument template<> struct compiler<xpressive::detail::lookahead_tag<true>, xpressive::detail::seq_tag, void> : branch_compiler<xpressive::detail::lookahead_branch<true>, xpressive::detail::ind_tag> { }; template<> struct compiler<xpressive::detail::lookahead_tag<false>, xpressive::detail::seq_tag, void> : branch_compiler<xpressive::detail::lookahead_branch<false>, xpressive::detail::ind_tag> { }; I know there are several outstanding template specialization bugs in 9.6. Metrowerks suggested I upgrade to the last Mac release 10.0. Not sure if these problems would be fixed though. -- Noel