相关疑难解决方法(0)

`constexpr`和`const`之间的区别

constexpr和之间有什么区别const

  • 我什么时候才能只使用其中一个?
  • 我何时可以同时使用这两种方法?如何选择?

c++ const constexpr c++11

540
推荐指数
9
解决办法
19万
查看次数

什么时候应该在C++ 11中使用constexpr功能?

在我看来,拥有"总是返回5的功能"正在破坏或淡化"调用函数"的含义.必须有一个原因,或者需要这种能力,或者它不会出现在C++ 11中.为什么会这样?

// preprocessor.
#define MEANING_OF_LIFE 42

// constants:
const int MeaningOfLife = 42;

// constexpr-function:
constexpr int MeaningOfLife () { return 42; }
Run Code Online (Sandbox Code Playgroud)

在我看来,如果我编写了一个返回字面值的函数,并且我进行了代码审查,有人会告诉我,我应该声明一个常量值而不是写回返5.

c++ constexpr c++11

322
推荐指数
9
解决办法
11万
查看次数

const在C/C++中提供了哪些优化?(如果有的话)

我知道在可能的情况下,在通过引用或指针传递参数时,应尽可能使用const关键字.如果我指定参数是常量,编译器可以做的任何优化吗?

可能有几种情况:

功能参数:

常量参考:

void foo(const SomeClass& obj)
Run Code Online (Sandbox Code Playgroud)

Constant SomeClass对象:

void foo(const SomeClass* pObj)
Run Code Online (Sandbox Code Playgroud)

并且指向SomeClass的常量指针:

void foo(SomeClass* const pObj)
Run Code Online (Sandbox Code Playgroud)

变量声明:

const int i = 1234
Run Code Online (Sandbox Code Playgroud)

函数声明:

const char* foo()
Run Code Online (Sandbox Code Playgroud)

每个提供什么样的编译器优化(如果有的话)?

c c++ const compiler-optimization

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

标签 统计

c++ ×3

c++11 ×2

const ×2

constexpr ×2

c ×1

compiler-optimization ×1