Boost logo

Boost :

Subject: Re: [boost] has_member_fnc?
From: Olaf van der Spek (ml_at_[hidden])
Date: 2012-03-16 11:16:38


On Fri, Mar 16, 2012 at 4:07 PM, Stewart, Robert <Robert.Stewart_at_[hidden]> wrote:
> Neal Becker wrote:
>>
>> It seems c++11 has a new way to spell enable_if, and this can
>> be used to implement has_member_fnc, as in this example:
>>
>> http://pastebin.com/mH2cZ4NP
>
> I wish I could see the code, but pastebin is blocked here.

    template <typename T> //Special template for EE_PDUs, which are weird
        auto getKey_imp(const T &struc, int &key, int) ->
decltype(struc.interesting_member, void()) //If struc has an
interesting_member member, this version is used
        {
            key = 0;
        }
        template <typename T>
        void getKey_imp(const T &struc, int &key, long) //struc
didn't have an interesting_member member, do nothing
        {
        }

    public:
        template <typename T>
        bool getKey(const T &struc, int &key)
        {
            getKey_imp(struc, key, 0);
            return key == 0; //Successful?
        }

-- 
Olaf

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