
Hi Nathan, On Wed, Nov 21, 2012 at 8:15 PM, Nathan Crookston <nathan.crookston@gmail.com> wrote:
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.
Yes, of course, you're correct. Sorry for the noise. What I need to provide is foo function for types that do have a trivial destructor. Happy Turkey Day, Christian