warning C4355
struct Foo{ void* p; Foo():p(this){} }; ---- warning C4355: 'this' : ベース メンバ初期化リストで使用されました。
VCではこのような警告を出してくれます。しかし、どうしても初期化リストでthisポインタを使用したいときがあります。
最初は #pragma warning(disable: 4355) で黙らせようかと思いましたが、次のようにすれば警告が鳴り止むと気付きました。
struct Foo{ void* p; Foo():p(get_this()){} void* get_this(){ return this; } };