相关疑难解决方法(0)

如何在C++中使用PI常量

我想在一些C++程序中使用PI常量和三角函数.我得到了三角函数include <math.h>.但是,此头文件中似乎没有PI的定义.

如何在不手动定义PI的情况下获取PI?

c++ trigonometry

437
推荐指数
16
解决办法
98万
查看次数

如何申报constexpr extern?

是否可以声明一个变量extern constexpr并在另一个文件中定义它?

我试了但是编译器给出了错误:

constexpr变量' i'的声明不是定义

在.h:

extern constexpr int i;
Run Code Online (Sandbox Code Playgroud)

在.cpp中:

constexpr int i = 10; 
Run Code Online (Sandbox Code Playgroud)

c++ extern constexpr

39
推荐指数
3
解决办法
9837
查看次数

何时以及为什么要使用constexpr静态?

作为免责声明,我在询问之前已对此进行过研究.我发现了一个类似的问题,但答案有点"稻草人",并没有真正回答我个人的问题.我也提到了我方便的cppreference页面,但这并没有提供对事物的非常"愚蠢"的解释.

基本上我还在继续constexpr,但目前我的理解是它需要在编译时评估表达式.由于它们可能仅在编译时存在,因此它们在运行时不会真正具有内存地址.因此,当我看到人们使用时static constexpr(例如在类中)static会让我感到困惑...... 因为这只对运行时上下文有用,所以在这里会是多余的.

我在" constexpr除了编译时表达式之外不允许任何东西"声明中看到了矛盾(特别是在SO).但是,Bjarne Stroustrup的页面中的一篇文章在各种示例中解释了实际上constexpr 确实需要在编译时对表达式进行评估.如果不是,则应生成编译器错误.

我之前的段落似乎有点偏离主题,但它是理解为什么static可以或应该使用的必要基线constexpr.不幸的是,该基线有很多矛盾的信息浮出水面.

任何人都可以帮助我将所有这些信息整合到纯粹的事实中,并提供有意义的示例和概念吗?基本上在了解constexpr真实行为的基础上,您为什么要使用static它?通过什么范围/场景确实static constexpr有意义,如果它们可以一起使用?

c++ static constexpr

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

标签 统计

c++ ×3

constexpr ×2

extern ×1

static ×1

trigonometry ×1