Boost logo

Boost :

Subject: Re: [boost] enable_if and non-template member functions?
From: Jeremiah Willcock (jewillco_at_[hidden])
Date: 2011-08-07 16:31:02


On Sat, 6 Aug 2011, Matt Calabrese wrote:

> On Sat, Aug 6, 2011 at 4:38 AM, John Maddock <boost.regex_at_[hidden]> wrote:
>
>> Folks, I have a problem with enable_if: it works just dandy for template
>> member functions in my class, but I have some *non-template* member
>> functions and constructors that I want to enable only if the template is
>> instantiated with template args that meet certain criteria. Seems like I
>> can't do this with enable_if as it then generates an invalid class
>> definition. I guess I could use base classes, and/or partial
>> specialization, but both involve a lot of code duplication I'd rather not
>> have. Anyone any ideas?
>>
>> Thanks, John.
>>
>
> C++0x has a simple answer to this -- default function template template
> arguments. This works with constructors and even conversion operators. I
> added documentation for this kind of usage to trunk back in April or so, but
> I guess it never made it into Release. A quick example of what you can do in
> 0x:

Sorry about that -- I probably forgot to check enable_if when I was
looking for things to merge. Is the release branch open yet? If so, I'll
copy it over ASAP.

-- Jeremiah Willcock


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk