[C++] 기묘한 문법: 멤버 포인터?
C++엔 참으로 기괴한 문법요소가 있다.
클래스의 멤버에 대한 포인터를 정의할 수 있다는 것이다.
코드를 먼저 보자.
일단 클래스를 간단하게 하나 만들어봤다.


그리고 단순한 포인터로 멤버를 참조하게 하려면, 대충 이렇게 할 수 있을 것이다.

특별할게 하나 없다.
위의 경우엔 단순히 '객체'의 멤버를 참조하는 포인터를 둔 것 뿐인데, '클래스'의 멤버도 포인터로 만들 수 있다...
이렇게

이러면 실제 Int 타입에 value를 참조하는 포인터가 들어간 것처럼 동작한다.
객체가 아닌 클래스에 정의하는 거라 한번 정의하면 모든 객체에서 사용할 수 있다.


대체로는 별로 쓸일이 없는데.
템플릿 메타 프로그래밍에서 SFINAE를 사용할 때 쓰일 수 있다.