Compile following with -Wall: #include <iostream>
class Raii { public: Raii () throw () { std::cout << "Raii::Raii () called..." << std::endl; } public: ~Raii () throw () { std::cout << "Raii::~Raii () called..." << std:: endl; } }; int main (int /*argc*/, char** /*argv*/) { Raii raii (); std::cout << "Inside main ()..." << std::endl; return 0; } This compiles with no errors. When the result is executed, you get the following output: Inside main ()... And that's all. The compiler quietly ignored the declaration of an Raii instance with an empty argument list. No warnings, no errors, nothing. If the empty argument list is removed, that is, if you have: #include <iostream> class Raii { public: Raii () throw () { std::cout << "Raii::Raii () called..." << std::endl; } public: ~Raii () throw () { std::cout << "Raii::~Raii () called..." << std:: endl; } }; int main (int /*argc*/, char** /*argv*/) { Raii raii; std::cout << "Inside main ()..." << std::endl; return 0; } Then you get the expected output: Raii::Raii () called... Inside main ()... Raii::~Raii () called... Is this correct behavior? g++ -v: Using built-in specs. Target: i486-linux-gnu Configured with: ../src/configure -v --enable-languages=c,c++,fortran,objc,obj-c++,treelang --prefix=/usr --enable-shared --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --enable-nls --with-gxx-include-dir=/usr/include/c++/4.2 --program-suffix=-4.2 --enable-clocale=gnu --enable-libstdcxx-debug --enable-objc-gc --enable-mpfr --enable-targets=all --enable-checking=release --build=i486-linux-gnu --host=i486-linux-gnu --target=i486-linux-gnu Thread model: posix gcc version 4.2.3 (Ubuntu 4.2.3-2ubuntu7) -- Summary: Default constructor instance definition with empty argument list quietly ignored Product: gcc Version: 4.2.3 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: mike dot allen at facsim dot org GCC target triplet: i486-linux-gnu http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36696