$include_dir="/home/hyper-archives/boost-users/include"; include("$include_dir/msg-header.inc") ?>
Subject: [Boost-users] enable_if for class members
From: Christopher Jefferson (chris_at_[hidden])
Date: 2009-01-30 09:21:12
In a class, I want to have one member function which has different
implementations depending on one of the template parameters. I tried
to use enable_if
template<bool b>
struct foo
{
typename boost::enable_if_c<b, int>::type
get_val( )
{ return 2; }
typename boost::disable_if_c<b, int>::type
get_val()
{ return 3; }
};
But when I use foo in code, it doesn't work, complaning that:
error: no type named 'type' in 'struct boost::enable_if_c<true, int>'
Am I not using enable_if in the correct way? Is there any easy way to
do waht I'm trying to do? I used to do this by declaring an inner
class and overloading that, but then it is necessary to pass in the
class and the code looks very messy.
Thanks,
Chris