Boost logo

Boost Users :

Subject: Re: [Boost-users] detect if a type has a size_t member
From: Mathias Gaunard (mathias.gaunard_at_[hidden])
Date: 2009-07-29 08:12:01


Hicham Mouline wrote:

>> BOOST_HAS_MEMBER_DATA(size_t, maxsize);
>>
>>
>> int main()
>> {
>> if ( boost::introspection::has_member_data_maxsize<T>::value )
>> {
>> std::cout<<" T has max_size"<<std::endl;
>> }
>> return 0;
>> }
> Thank you,
>
> 1) struct S {
> static const size_t maxsize =5;
> };
>
> 2) struct S {
> static size_t maxsize;
> };
>
> 3) struct S {
> size_t maxsize;
> };
>
>
> Applied to S, the code doesn't compile in 1 and returns false in 2.
>
> Is there a fix that can make it work for 1, 2 and 3 ?

No.
Static members and non-static ones are very different things, and each
requires usage of a different macro.
BOOST_HAS_STATIC_MEMBER_DATA and BOOST_HAS_MEMBER_DATA.


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net