pure virtual destructor
http://igarashikuniaki.net/tdiary/?date=20060106#p04
より。
class HogeClass { virtual ~HogeClass() = 0 {}; };
は、 GCC4,GCC3,ICC,Kylix,BCC,DMC,Forteでエラーになり、VCだけ通りました。 VC ってなんか、割とこういうの多い気がする。
i@u ~/test> g++ -c pure_vir.cpp pure_vir.cpp:2: error: pure-specifier on function-definition i@u ~/test> g++33 -c pure_vir.cpp pure_vir.cpp:2: error: 文法エラー before `{' token pure_vir.cpp:2: error: missing ';' before right brace pure_vir.cpp:1: 警告: `class HogeClass' only defines a private destructor and has no friends pure_vir.cpp:3: error: 文法エラー before `}' token i@u ~/test> icc -c pure_vir.cpp pure_vir.cpp(2): error: expected a ";" virtual ~HogeClass() = 0 {}; ^ compilation aborted for pure_vir.cpp (code 2) i@u ~/test> bc++ -c pure_vir.cpp Borland C++ 5.7 Open Edition Copyright (c) 1987, 2002 Borland pure_vir.cpp: エラー E2040 pure_vir.cpp 2: 宣言が正しく終了していない *** 1 errors in Compile *** i@u ~/test> cl.exe -c pure_vir.cpp Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 13.10.3077 for 80x86 Copyright (C) Microsoft Corporation 1984-2002. All rights reserved. pure_vir.cpp i@u ~/test> bcc32.exe -c pure_vir.cpp Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland pure_vir.cpp: エラー E2040 pure_vir.cpp 2: 宣言が正しく終了していない *** 1 errors in Compile *** i@u ~/test> dmc.exe -c pure_vir.cpp virtual ~HogeClass() = 0 {}; ^ pure_vir.cpp(2) : Error: ';' expected following declaration of struct member --- errorlevel 1 ss56092@sx101$ CC -c pure_vir.cpp "pure_vir.cpp", 行 2: エラー: 宣言を終わらせるときは ";" を使用してください. 1 個のエラーが検出されました.