相关疑难解决方法(0)

我应该何时为函数/方法编写关键字'inline'?

我应该何时inline在C++中为函数/方法编写关键字?

看到一些答案,一些相关的问题:

  • 我应该何时写在C++函数/方法关键字"内联"?

  • 什么时候编译器不知道何时使函数/方法'内联'?

  • 当一个应用程序为函数/方法写入"内联"时,是否多线程是否重要?

c++ inline one-definition-rule

526
推荐指数
6
解决办法
12万
查看次数

在C++中强制执行语句顺序

假设我有一些我想以固定顺序执行的语句.我想使用优化级别为2的g ++,因此可以重新排序某些语句.有什么工具可以强制执行某些语句排序?

请考虑以下示例.

using Clock = std::chrono::high_resolution_clock;

auto t1 = Clock::now(); // Statement 1
foo();                  // Statement 2
auto t2 = Clock::now(); // Statement 3

auto elapsedTime = t2 - t1;
Run Code Online (Sandbox Code Playgroud)

在这个例子中,重要的是语句1-3以给定的顺序执行.但是,编译器不能认为语句2独立于1和3并执行如下代码?

using Clock=std::chrono::high_resolution_clock;

foo();                  // Statement 2
auto t1 = Clock::now(); // Statement 1
auto t2 = Clock::now(); // Statement 3

auto elapsedTime = t2 - t1;
Run Code Online (Sandbox Code Playgroud)

c++ operator-precedence c++11

103
推荐指数
4
解决办法
1万
查看次数

标头库的好处

仅头文件库的好处是什么?为什么要编写它以反对将实现放入单独的文件?

c++ header-only

83
推荐指数
4
解决办法
3万
查看次数

为什么不总是使用编译器优化?

我前面问过的一个问题是未定义的行为,因此编译器优化实际上导致程序中断.

但是如果代码中没有未定义的行为,那么有没有理由不使用编译器优化?我理解有时候,出于调试目的,可能不需要优化代码(如果我错了请纠正我).除此之外,在生产代码上,为什么不总是使用编译器优化?

另外,是否有理由使用,-O而不是-O2-O3

compiler-construction compiler-optimization

33
推荐指数
3
解决办法
9929
查看次数

启用内存分析的成本是多少?

R的默认配置选项禁用内存分析,共享库libR,静态库libR.aGNU gettextvalgrind头和链接时优化。

其中一些(如valgrind)肯定是因为不是每个人都会使用它。其他人可能会在 SO 的其他地方得到回答(比如有什么理由不使用链接时间优化?可能会回答--enable-lto[=no])。

但是在 中启用内存分析的可能缺点或成本是R什么?

default r compilation build

5
推荐指数
1
解决办法
619
查看次数