|
Boost : |
From: Noel Belcourt (kbelco_at_[hidden])
Date: 2005-12-08 00:43:12
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
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk