私はこのようなクラスを持っています:
template<typename T>
class wrapper
{
public:
operator const T & () const
{
return value;
}
private:
T value;
};
次に、次のような構造体で使用します。
struct point { float x; float y; };
//...
wrapper<point> myPoint;
std::cout << myPoint.x;// error: no member x or whatever.
((point)myPoint).x を実行せずにこれを許可する方法があるかどうか疑問に思っています。-> 演算子をオーバーロードできることはわかっていますが、非ポインターであると「ふりをする」ことになっているため、オーバーロードしないことをお勧めします。