Boost logo

Boost Users :

Subject: Re: [Boost-users] [mpl] How to use not_ with has_trivial_destructor metafunction
From: Nathan Crookston (nathan.crookston_at_[hidden])
Date: 2012-11-21 20:15:31


Hi Christian,

Christian Henning wrote:

> The error I'm getting is:
>
> error C2770: invalid explicit template argument(s) for 'void
>
> foo(boost::enable_if<boost::mpl::not_<boost::has_trivial_destructor<T>>>::type
> *)'
>
> Can someone see what the problem might be?
>

Actually, it looks like the code's working -- you're SFINAEing out foo for
types that have a trivial destructor -- which includes int. It works the
same in g++4.5 and VC10.

Removing the not wrapper allows the code to compile on both -- as it should.

Try passing a type with a non-trivial destructor (e.g., std::string) to
allow this use to compile.

HTH,
Nate



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