- 主题:从一段代码看编译器优化带来的编程挑战
这个函数没有写要return哪个变量或者常量,咋可能是RVO优化
【 在 foliver 的大作中提到: 】
: 原来的代码,这个编译器直接启用了rvo优化,result实际上被调用着直接替代了。所以一切正常。
:
--
FROM 114.241.228.*
result是return的,一开始就判断了。
【 在 z16166 的大作中提到: 】
: 这个函数没有写要return哪个变量或者常量,咋可能是RVO优化
:
: 【 在 foliver 的大作中提到: 】
: ...................
--来自微水木3.5.10
--
FROM 117.136.120.*
为啥不是UB导致的优化呢?
【 在 foliver 的大作中提到: 】
: result是return的,一开始就判断了。
:
--
FROM 114.241.228.*
有没有看看预编译是什么样子了?
【 在 foliver 的大作中提到: 】
: 例子来自于当前一个大型项目。简化起见,代码原理大概是下面的样子。
: std::vector<int> test_re(int a)
: {
: ...................
--
FROM 111.203.9.*
git 有个功能叫blame,估计就是为这种情况命名的
但现实的情况,查出来作者,估计也是,哈哈,哈哈,
类似鲁迅的文章,给孩子庆生,没什么说的,只能哈哈哈了
【 在 foliver 的大作中提到: 】
: 例子来自于当前一个大型项目。简化起见,代码原理大概是下面的样子。
: std::vector<int> test_re(int a)
: {
: ...................
--
FROM 1.86.20.*
Werror 是这个选项吧
【 在 z16166 的大作中提到: 】
: 有编译警告,应该是被无视了
:
: 我现在有个工程,近2千的编译警告,根本没人管,只要不出问题就不影响KPI.
: 我挑着改了一些。这应该是很多小项目的现状。
发自「快看水母 于 M2007J17C」
--
FROM 223.104.41.*
应该开除允许第一个警告的tech lead
【 在 z16166 的大作中提到: 】
: 有编译警告,应该是被无视了
: 我现在有个工程,近2千的编译警告,根本没人管,只要不出问题就不影响KPI.
: 我挑着改了一些。这应该是很多小项目的现状。
: ...................
--
FROM 158.140.1.*
理想情况是这样
但实际又是另外一回事
【 在 tis 的大作中提到: 】
: 应该开除允许第一个警告的tech lead
--
FROM 114.241.228.*
我一直有个纳闷,什么时候用返回值好,什么时候传入可修改入参引用好?
void test_re(int a,std::vector<int>& result )
{
if (a < 0)
{
return;
}
result.push_back(a*100);
result.push_back(a*200);
}
--
FROM 14.127.22.*
入参引用有个好处是返回值空出来可以干点别的,比如返回错误码,另外需要返回多个结构的话也比重新包装一个大类方便
【 在 Algoquant 的大作中提到: 】
: 我一直有个纳闷,什么时候用返回值好,什么时候传入可修改入参引用好?
: void test_re(int a,std::vector<int>& result )
: {
: ...................
--
FROM 219.142.253.*