$include_dir="/home/hyper-archives/boost-users/include"; include("$include_dir/msg-header.inc") ?>
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