如何使函数primitve param const的良好示例将导致编译器优化

gru*_*czy 0 c++ const compiler-optimization

我想更好地了解如何更改函数签名:

void foo(double x);
Run Code Online (Sandbox Code Playgroud)

至:

void foo(const double x);
Run Code Online (Sandbox Code Playgroud)

如果我们不修改x里面,可能会导致代表编译器的一些优化技巧.有人可以给我一个具体的具体例子吗?

Car*_*rum 5

你所做的改变没有效果. x在两种情况下都按值传递,因此声明它const不会影响调用站点上的任何内容.唯一不同的是,里面的实现foo,你将不会被允许修改x在第二种情况下.没有理由给自己这样的限制 - 如果你不修改x,编译器可能会做出适当的优化,即使没有const.