【发布时间】:2012-06-24 23:48:22
【问题描述】:
我想获取指向成员的指针作为 foo1 的模板参数。这是代码:
struct baz{
int qux;
};
template<typename C, typename T, T C::*m>
struct foo1{};
template<typename C, typename T>
void barr2(T C::*m){
}
template<typename C, typename T>
void barr1(T C::*m){
barr2(m); // ok
foo1<C, T, &baz::qux> _; // ok
foo1<C, T, m> f; // g++4.6.1 error here; how to pass 'm' correctly ?
}
int main(){
barr1(&baz::qux);
}
那么它应该是什么样子呢?
【问题讨论】:
-
另见my own related question。简短的回答是,据我所知,您不能便携,但如果您只想针对 GCC 或 VC++ x64,它应该可以工作。等等,没关系,你不是在做方法指针,而是在做数据成员指针。忘了我说了什么!
标签: c++ class templates parameters pointer-to-member