我试图在编译时检测一个类Foo
或Bar
是否变量value
或成员变量{{1} }}
initValue()
我发现了几个提升和提升MPL类和实用程序,例如struct Foo
{
static const int value;
static int initValue();
};
struct Bar
{
};
和BOOST_MPL_HAS_XXX_TRAIT_DEF
似乎只是这样做但不确定使用哪个。我知道可以推出自己的探测器,但我不愿意。
答案 0 :(得分:1)
找到它。来自Boost TTI库的has_static_member_data
和has_static_member_function
。
#include <boost/tti/has_static_member_data.hpp>
BOOST_TTI_HAS_STATIC_MEMBER_DATA( value ) // Generates class template has_static_member_data_value
...
has_static_member_data_value<Foo, int>::value; // returns true
has_static_member_data_value<Bar, int>::value; // returns false