如何在C++中检测声明但未定义的函数?

oxf*_*ght 11 c++ xcode

以下编译,链接和运行就好了(在Xcode 5.1/clang上):

#include <iostream>

class C { int foo(); };

int main(int argc, const char * argv[])
{
    C c;
    cout << "Hello world!";
}
Run Code Online (Sandbox Code Playgroud)

但是,C::foo()在任何地方都没有定义,只是声明了.我没有得到任何编译器或链接器警告/错误,显然是因为C::foo()从未在任何地方引用过.

有没有什么方法可以发出一个警告:在整个程序中,即使声明了C :: foo()也没有定义?错误实际上会更好.

谢谢!

小智 -1

也许尝试调用实现映射中的所有函数并添加一个 try catch,如果它们出现段错误,则会发出一些警告。