this
次のようにメンバー変数に引数として渡したい:
template<class T>
struct fun
{
fun(T* pointer) : memberPointer(pointer)
{
}
T* memberPointer;
};
struct gun
{
gun() : member(this)
{
}
fun<gun> member;
};
Visual Studio では、次の警告があります。warning C4355: 'this' : used in base member initializer list
なぜこれを行うのが間違っているのか説明してもらえますか? ポインターをメンバーコンストラクターに保存して、後でそれを使用してgun
からいくつかの関数を呼び出すだけfun
です。