这很奇怪(MSVC2012):
using namespace std;
class MyClass
{
public:
int membervar;
};
template< int (MyClass::*var) > struct A
{
void print()
{
cout << var;
}
};
int main(int argc, char *argv[])
{
struct A <&MyClass::membervar> object;
object.print();
}
此代码编译并实际输出“1”。它从哪里得到它??membervar 属于什么对象?我以为我需要一个对象来访问数据成员