Здравствуйте, Аноним, Вы писали:
А>подскажите пожалуйсто как реализовать mega_get_type или может уже есть что-либо похожее?
ну если известно что передаваться будет только указатель на мембер...
#include <iostream>
using namespace std;
struct A
{
static bool foo()
{
cout << __PRETTY_FUNCTION__ << endl;
return false;
}
};
struct B
{
A a;
};
template <typename CT, typename FT>
bool test(FT CT::* a)
{
return FT::foo();
}
int main()
{
bool x = test<B>(&B::a);
return 0;
}
иначе можно написать шаблонный test котоый boost::enable_if'ом будет проверять что T это is_member_pointer, и внутри уже вынимать тип поля и тип класса из этого T (смотреть в стороноу boost::function_types и думать над аналогом для датамемберов)...
Здравствуйте, Аноним, Вы писали:
Вот здесь обсуждалась задача определения типа члена — не совсем то, что тебе нужно, но может быть будет полезно:
здесьАвтор: Alxndr
Дата: 07.04.09