相关疑难解决方法(0)

什么是内联命名空间?

C++ 11允许inline namespaces,其所有成员也自动在封闭中namespace.我想不出任何有用的应用 - 有人可以给出一个简短,简洁的例子,说明inline namespace需要哪种情况以及最常用的解决方案?

(另外,当发生了什么并不清楚,我namespace声明inline在一个但不是所有的声明,这可能住在不同的文件.这难道不是找麻烦?)

c++ namespaces c++11 inline-namespaces

320
推荐指数
6
解决办法
5万
查看次数

C++中内联函数的好处?

在C++中使用内联函数的优点/缺点是什么?我看到它只会提高编译器输出的代码的性能,但是使用今天的优化编译器,快速CPU,大容量存储器等(不像1980年那样<内存稀缺,一切都必须适合100KB内存)什么他们今天真的有优势吗?

c++ inline-functions

253
推荐指数
6
解决办法
17万
查看次数

什么是C++中的"翻译单元"

我正在阅读Meyers编写的"Effective C++",并且遇到了"翻译单元"一词.

有人可以给我一个解释:

1)究竟是什么

2)在使用C++编程时,我应该何时考虑使用它

3)如果它只与C++有关,或者它可以与其他编程语言一起使用

我可能已经在不知道术语的情况下使用它了....

c++

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

何时使用内联功能何时不使用?

我知道inline是对编译器的提示或请求,用于避免函数调用开销.

那么在什么基础上可以确定函数是否是内联的候选者?在哪种情况下应该避免内联?

c c++ inline

173
推荐指数
5
解决办法
9万
查看次数

将内联关键字与模板一起使用是否有意义?

由于模板是在头文件中定义的,编译器能够确定内联函数是否有利,它是否有意义?我听说现代编译器更好地知道何时内联函数并忽略inline提示.


编辑:我想接受这两个答案,但这是不可能的.为了解决这个问题,我接受了菲涅耳的回答,因为它收到了大多数选票并且他是正式的,但正如我在评论中所提到的,我从不同的角度考虑Puppy组件10的答案也是正确的. .

问题出在C++语义中,在inline关键字和内联的情况下并不严格.Phresnel说"如果你的意思是写内联",但实际意义inline并不明确,因为它从原来的意义演变为"阻止编译人员讨论ODR违规"的指令,正如Puppy所说.

c++ templates inline

110
推荐指数
3
解决办法
6万
查看次数

内联仍然有用吗?

我相信,inline已经过时,因为我在这里读到:

无论你如何指定一个函数inline,它都是一个允许编译器忽略的请求:编译器可能内联扩展一些,全部或没有你调用指定函数的地方inline.

然而,Angew似乎理解我不知道的事情.在这个问题中他和我来回走了很多,关于是否inline仍然有用.

这个问题不是一个问题:

请记住,编译器可以随意使用inline,因此inline在那里没有用处:可以inline用来强制而不是建议编译代码的更改?

c++ methods inline function deprecated

85
推荐指数
2
解决办法
2万
查看次数

c ++内联函数?

我为什么要这样做:

inline double square (double x) { return x*x;}
Run Code Online (Sandbox Code Playgroud)

代替

double square (double x) { return x*x;}
Run Code Online (Sandbox Code Playgroud)

有区别吗?

c++ inline

68
推荐指数
4
解决办法
5万
查看次数

有没有理由不使用链接时优化(LTO)?

GCC,MSVC,LLVM以及可能的其他工具链支持链接时(整个程序)优化,以允许编译单元之间的调用优化.

在编译生产软件时是否有理由不启用此选项?

c c++ performance compilation compiler-optimization

48
推荐指数
3
解决办法
2万
查看次数

为什么不将内容标记为内联?

首先,我不是在寻找一种方法来强制编译器内联每个函数的实现.

要降低误导性答案的级别,请确保您了解inline关键字的实际含义.这里有很好的描述,内联vs静态vs extern.

所以我的问题,为什么不标记每个函数定义inline?即理想情况下,唯一的编译单位是main.cpp.或者可能还有一些用于无法在头文件中定义的函数(pimpl idiom等).

这个奇怪的请求背后的理论是,它将为优化器提供最大的信息.它当然可以内联函数实现,但它也可以进行"跨模块"优化,因为只有一个模块.还有其他优点吗?

有没有人用真正的应用程序尝试过这个?性能是否提高了?减少?!?

标记所有函数定义有哪些缺点inline

  • 编译可能会更慢并且会消耗更多内存.
  • 迭代构建被破坏,每次更改后都需要重建整个应用程序.
  • 链接时间可能是天文数字

所有这些缺点仅影响开发者.运行时缺点是什么?

c++ optimization inline tradeoff

46
推荐指数
7
解决办法
6155
查看次数

在C中使用`inline`关键字有什么用?

我在stackoverflow中读了几个关于inlineC的问题,但仍然不清楚.

  1. static inline void f(void) {}没有实际的区别static void f(void) {}.
  2. inline void f(void) {}在C中不能像C++那样工作.它在C中如何工作?
  3. 究竟做了extern inline void f(void);什么?

我从来没有真正inline在我的C程序中找到关键字的使用,当我在其他人的代码中看到这个关键字时,它几乎总是static inline,我认为没有区别static.

c inline c99

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