Subject: Re: [Boost-bugs] [Boost C++ Libraries] #4109: xpressive compile error (MingW GCC 4.5)
From: Boost C++ Libraries (noreply_at_[hidden])
Date: 2010-04-20 08:15:48
#4109: xpressive compile error (MingW GCC 4.5)
----------------------------------------+-----------------------------------
Reporter: Duzy Chan <duzy@â¦> | Owner: eric_niebler
Type: Bugs | Status: assigned
Milestone: Boost 1.44.0 | Component: xpressive
Version: Boost 1.42.0 | Severity: Problem
Keywords: is_pure template_arity |
----------------------------------------+-----------------------------------
Comment(by anonymous):
Oh boy. There's a deep pool of template magic behind that one.
It could be that I'm missing arcane properties of half-instantiated
templates, but it looks to me like the problem is using an invalid type in
the first place (T<int>). I'm actually a bit surprised that it doesn't
complain about S<T<int>, 1>.
In any case, if the tag only has to be there and isn't actually used, that
offers a quick and rather dirty workaround, namely
{{{
--- arg.hpp~ 2010-03-02 04:19:57.000000000 +0100
+++ arg.hpp 2010-04-20 10:08:28.000000000 +0200
@@ -142,6 +142,9 @@
template<int N>
struct _child_c : transform<_child_c<N> >
{
+ // Just to have one
+ typedef tag::comma proto_tag;
+
template<typename Expr, typename State, typename Data>
struct impl : transform_impl<Expr, State, Data>
{
}}}
where boost::proto::tag::comma is chosen arbitrarily from a number of
proto tags that allow boost::xpressive::detail::width_of to be
instantiated without making any deeper inquiries about Expr.
-- Ticket URL: <https://svn.boost.org/trac/boost/ticket/4109#comment:8> Boost C++ Libraries <http://www.boost.org/> Boost provides free peer-reviewed portable C++ source libraries.
This archive was generated by hypermail 2.1.7 : 2017-02-16 18:50:02 UTC