2008-06-26から1日間の記事一覧

yet another

#include <cstdio> struct I { virtual I *f() = 0; }; struct A : virtual I { virtual I *f() { puts("A"); return this; } }; struct B : virtual I { virtual I *f() { puts("B"); return this; } B(I *x) { x->f(); } }; struct C : A, B { virtual I *f() { pu</cstdio>…

undef (?)

$ cat test.cpp struct A { A(A *a) { } }; struct B : virtual A { B(int x) : A(x ? this : 0) { } }; int main() { new B(1); } $ g++ test.cpp && ./a.out Segmentation fault追記:規格の 12.7#2 から未定義だと思って書いたんだけど、違うっぽい。他の…