На основании другого моего вопроса. < /p>
Рассмотрите следующий код < /p>
template
struct A {
typedef T value_type; // save T to value_type
static const int size = N; // save N to size
};
< /code>
Посмотрите, я могу использовать value_type < /code> и size < /code> в качестве параметра шаблона. < /p>
typedef A A1;
typedef A A2; // OK, A2 is A
< /code>
Теперь я хочу сделать то же самое с указателем на член: < /p>
struct Foo {
int m;
int r;
};
template
struct B {
static int Foo::* const mp;
};
template
int Foo::* const B::mp = Mem; // Save pointer to member
< /code>
Но я получаю ошибку. < /p>
typedef B B1;
typedef B B2; // DOES NOT WORK
< /code>
Как сделать последнюю строку для работы?
или как получить сравнение с результатом? Никаких ссылок на стандарт C ++ не требуется.
мне нужен обходной путь. < /p>
Подробнее здесь: https://stackoverflow.com/questions/191 ... -like-this