Как я могу получить логическое значение, указывающее, имеет ли известный метод классификатор const или нет?
Например:
struct A {
void method() const {}
};
struct B {
void method() {}
};
bool testA = method_is_const<A::method>::value; // Should be true
bool testB = method_is_const<B::method>::value; // Should be false
В заголовке type_traits
я нашел тест is_const
, который мог бы использовать, но мне нужен тип метода, и я не уверен, как его получить.
Я пробовал: std::is_const<decltype(&A::method)>::value
, но он не работает, и я могу понять, почему (void (*ptr)() const) != const void (*ptr)()
).