テンプレート operator-> を便利に呼び出す方法はありますか? バリアントのようなクラスでそのような可能性があるのはクールだろう
例: (これは単なる例です)
struct base_t
{
template<class T>
T* operator->()
{
return reinterpret_cast<T*>(this);
}
};
int main(int argc, char* argv[])
{
base_t x;
x.operator-><std::pair<int,int>>()->first; //works, but inconvenient
x<std::pair<int,int>>->first; // does not work
x-><std::pair<int,int>>first; //does not work
return 0;
}
証明が必要です =)