Boost logo

Boost :

Subject: Re: [boost] BOOST_STATIC_CONSTANT
From: Gavin Lambert (gavinl_at_[hidden])
Date: 2017-08-17 05:33:23


On 17/08/2017 16:35, dodheim wrote:
> Boost - Dev mailing list wrote
>> On 17/08/2017 13:27, Glen Fernandes wrote:
>>> This is to detect a member 'impl_ptr_type' type? Just:
>>>
>>> template<class, class = void>
>>> struct has_impl_ptr_type
>>> : boost::false_type { };
>>> template
>> <class T>
>>> struct has_impl_ptr_type&lt;T, boost::void_t&lt;typename
>>> T::impl_ptr_type&gt; >
>>> : boost::true_type { };
>>
>> That *is* a nicer way to do it. Requires a minimum of Boost 1.64 or
>> C++17, though. (Or VS2015, apparently.)
>
> This only requires C++11; it doesn't work on earlier versions of MSVC
> because MSVC was (and still is) lagging behind on support for expression-SFINAE.

std::void_t does not exist until C++17. However the VS2015 STL adds it
anyway.

boost::void_t does not exist until 1.64. However it only works on
compilers that support expression-SFINAE (which is most C++11 compilers
except VS, until VS2015).

This is what I meant by the above.


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