jjzjj

[C++] - GCC和LLVM对方法 warning: non-void function does not return a value [-Wreturn-type] 的处理差异

  最近做一个C++开源项目发现一个奇怪问题,通过clang编译链接执行程序每到有一个就崩溃了,gcc下则没有此问题。后来通过调试,发现原因是bool返回的方法是没有return语句!问题是为啥还能通过编译呢?列子如下:#includeclassTest{public:boolyes();};boolTest::yes(){std::cout"yes"std::endl;//returnfalse;};intmain(){Test*t=newTest;boolr=t->yes();std::cout"yes->"std::endl;return0;} 用g++编译得到警告但是通过了,并且执行得

[C++] - GCC和LLVM对方法 warning: non-void function does not return a value [-Wreturn-type] 的处理差异

  最近做一个C++开源项目发现一个奇怪问题,通过clang编译链接执行程序每到有一个就崩溃了,gcc下则没有此问题。后来通过调试,发现原因是bool返回的方法是没有return语句!问题是为啥还能通过编译呢?列子如下:#includeclassTest{public:boolyes();};boolTest::yes(){std::cout"yes"std::endl;//returnfalse;};intmain(){Test*t=newTest;boolr=t->yes();std::cout"yes->"std::endl;return0;} 用g++编译得到警告但是通过了,并且执行得