Boost logo

Boost Users :

Subject: Re: [Boost-users] [proto] Wrapper compile error
From: Eric Niebler (eric_at_[hidden])
Date: 2010-02-02 01:44:42


On 2/2/2010 3:40 PM, David A. Greene wrote:
> somewhere in the guts of proto there's an expectation that wrappers
> have one template argument.

Yes, it's proto::pod_generator. You have this:

// Expression wrapper
template<class Expr, class Dummy = boost::proto::is_proto_expr>
struct Wrapper {
   BOOST_PROTO_EXTENDS(Expr, Wrapper<Expr>, Domain)
};

...

struct Domain :
   boost::proto::domain<boost::proto::pod_generator<Wrapper > > {};

pod_generator is documented as taking a single template template
parameter, as follows:

template<template<typename> class Extends>
struct pod_generator

The extra template parameter to Wrapper is not strictly necessary
AFAICS, so perhaps you can just drop it. If not, you can define your own
generator. It just needs to be a unary function object. See how
pod_generator is defined.

HTH,

-- 
Eric Niebler
BoostPro Computing
http://www.boostpro.com

Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net