Ste*_*and 5 c++ return return-value
我花了3个小时,可能更多,试图找到一个bug,segfault或bad_allow,这取决于我修改代码的方式,以便了解哪些对象弄乱了堆栈或内存:我把所有对象都置于疑问之中. ..我屠杀了课程......(但事实证明这很好,因为那些课程最终显示自己无用:-))...
但是,确实,真正的错误很简单:
我没有在一个应该返回一个值的函数中写一个return语句(在我的情况下我需要返回一个std::vector<boost::any>).
我认为gcc(4.6.3)没有它就无法编译.而且我甚至觉得奇怪的是,我记得ms使用了这个类似的东西.
所以现在我想知道写一个return语句是否合法?在这种情况下会发生什么?
是否与可以具有返回值的主要事实相关?或者我应该考虑去gcc 4.7?
Lig*_*ica 10
这是未定义的行为:
[C++11: 6.6.3/2]:[..]流出一个函数的末尾相当于一个return没有值; 这会导致值返回函数中的未定义行为.
它编译是因为: