为什么这个C ++片段编译(非void函数不返回值)
今天早上我在我的一个图书馆找到了这个:
static tvec4 Min(const tvec4& a, const tvec4& b, tvec4& out){ tvec3::Min(a,b,out); out.w = min(a.w,b.w);}
我期望编译器错误,因为此方法不返回任何内容,并且返回类型不返回void
。
想到的唯一两件事是
在调用此方法的唯一位置,不使用或存储返回值。(此方法应该是void
- tvec4
返回类型是复制和粘贴错误)
tvec4
正在创建一个默认构造,这看起来有点不同,哦,C ++中的其他所有东西。
我还没有找到解决这个问题的C ++规范部分。参考文献(ha)表示赞赏。
更新
在某些情况下,这会在VS2012中生成错误。我没有缩小具体细节,但它仍然很有趣。
当年话下
噜噜哒
慕少森
相关分类