展开

关键词

constexpr

相关内容

  • 广告
    关闭

    腾讯云+社区「校园大使」招募开启!报名拿offer啦~

    我们等你来!

  • 如何声明constexpr extern?(2 个回答)

    是否可以声明一个变量extern constexpr并将其定义在另一个文件中? 我试过了,但编译器给出了错误:declaration ofconstexprvariable i is not a definition 在.h中:extern constexpr int i; 在.cpp中: constexpr int i = 10...
  • 现代C++之constexpr

    现代c++之constexprconstexpr在 c++11 引入、在 c++14 得到大幅改进。 (1)c++11中的constexpr指定的函数返回值和参数必须要保证是字面值,而且必须只有一行return代码,这给函数的设计者带来了更多的限制,比如通常只能通过return 三目运算符+递归来计算返回的字面值。 (2)c++14中只要保证返回值和参数是字面值就...
  • `constexpr`和`const`之间的区别?(5 个回答)

    constexpr和之间有什么区别const? 我什么时候可以只使用其中一个? 我什么时候可以使用,我应该如何选择?...
  • 如何初始化constexpr参考(2 个回答)

    我正尝试初始化一个constexpr没有成功的参考。 我试过了 #include constexpr int& f(int& x) can define functions returningconstexpr references{ return x; int main(){ constexpr int x{20}; constexpr const int& z = x; error here} 但我得到一个编译时错误 错误:constexpr变量z必须由常量表达式初始化 将...
  • constexpr未定义的行为?(2 个回答)

    我一直在试验constexpr。 在我的测试编译器(g ++ 4.6)上,无法编译出有关出界限访问的错误。 #include constexpr const char *str = hi; constexpr int fail() { return str; way past the end! template struct foo { static void print() { std::cout...
  • 宣布constexpr专业化为friend(1 个回答)

    我想f成为一个friend,但a仍然是constexpr template class a; template constexpr a f(); f is a friend of a template class a { friend * constexpr? * a f(); constexpr a() {}}; template constexpr a f() { return {}; } int main() { constexpr auto a = f(); 我无法让clang和gcc在这里达成一致。 main.cpp:18...
  • constexpr if和static_assert(2 个回答)

    p0292r1constexpr if已经包括在内,在c++17的轨道上。 这似乎很有用(也可以取代sfinae的使用),但对static_assert存在畸形,无需诊断假树枝吓到我了:disarming static_assert declarations in the non-taken branch of aconstexpr ifis not proposed. void f() { if constexpr (false) static_assert(false)...
  • constexpr和纯函数之间的关系(2 个回答)

    我是对的,那是: 任何定义的函数constexpr都是纯函数,而且 constexpr如果编译器的代价不是很高,任何纯函数都可以并且必须定义。 如果是这样,为什么没有定义的函数constexpr?...
  • 局部变量的地址是constexpr吗?(2 个回答)

    我认为这看起来很奇怪,所以我尝试使用g ++版本7. 3.0运行该示例,但无法获得相同的结果。 这是他的代码示例逐字(虽然略有删节): extern char glob; void f(char loc) { constexpr const char* p0 = &glob; ok: &globs is a constant constexpr const char* p2 = &loc; ok: &loc is constant in its scope} 当我...
  • constexpr是否构造函数隐式内联?(1 个回答)

    inline int f(const int x){ return 2*x;} int main(int argc, char* argv)); constexpr等效版本:constexpr specifier version#include#include constexpr int f(const int x); constexpr int f(const int x){ return 2*x;} int main(int argc, char* argv)); 我的问题是:constexpr指定符是否隐含了inline说明符...
  • 为什么C ++ 11的constexpr如此限制?(2 个回答)

    c++11引入了constexpr关键字。 c++11引入了关键字conexpr,它允许用户保证函数或对象构造函数是编译时常量。... 这使编译器能够理解并验证函数名是编译时常数。 这意味着这种纯功能是非法的:constexpr int maybeincppc1y(int a, int b){ if (a>0) return a+b; else return a-b; can be written as return (a>0) ?...
  • constexpr函数必须有一个参数值?(2 个回答)

    根据此,一个函数声明constexpr必须满足一些要求,其中之一是如下:至少存在一个参数值,以便该函数的调用可以是核心常量表达式的已评估子表达式... constexpr 函数可以没有参数:constexpr int bar( * empty * ) { return 0xff; }constexpr int value = bar(); valid expression constexpr作为子程序调用的函数无法...
  • 静态constexpr变量与功能是怎样的?(1 个回答)

    在下面的例子中将浮点常量声明为变量和函数是否有区别static constexpr? 还是仅仅是风格问题? class my_pi{public: static constexpr float my_pi_var = 3.14f; static constexpr float my_pi_fun() { return 3.14f; }}...
  • 如何在编译时使用Constexpr填充数组?(2 个回答)

    enum type { alphabet, number, symbol, other,}; constexpr type table = * blah blah *; 我想要一个128的数组type。 它们可以在一个结构里。 数组的索引将对应于ascii字符,其值为type每个角色。 所以我可以查询这个数组,找出ascii字符属于哪个类别。 char c = randomfunction(); if (table == alphabet) dosome...
  • 为什么**不**要声明一个函数`constexpr`?(2 个回答)

    任何由return语句组成的函数都可以被声明 constexpr,因此如果所有参数都是constexpr并且只有constexpr函数在其主体中被调用,则可以在编译时进行评估。 例: constexpr int sum(int x, int y) { return x + y; } constexpr i = 10; static_assert(sum(i, 13) == 23, sum correct); 声明一个函数constexpr 会有什么...
  • 为什么非静态数据成员不能成为constexpr?(1 个回答)

    const int yval { 0 }; 但我真的很想申报xval和yvalconstexpr-像这样:struct s { constexpr s(int x, int y): xval(x), yval(y) {} constexpr s(int x):xval(x) {} constexpr s() {} constexpr int xval { 0 }; error! constexpr int yval { 0 }; error! 如前所述,代码不会编译。 原因是(7.1.51),只能声明静态数据...
  • 如何可以std :: chrono :: duration :: duration()被constexpr?(1 个回答)

    但是,cppreference.com也对constexpr构造函数这样说:一个constexpr构造函数必须满足以下要求: 必须初始化每个基类和每个非静态成员,无论是在构造函数初始化列表中,还是由成员括号或平等初始值设定项初始化。 另外,涉及的每个构造函数都必须是constexpr构造函数,并且每个括号或等号初始值设定项的每个子句都...
  • std :: chrono :: duration :: duration()如何转换为constexpr?(1 个回答)

    但是,cppreference.com对constexpr构造函数这样说:一个constexpr构造函数必须满足以下要求: ... 必须初始化每个基类和每个非静态成员,无论是在构造函数初始化列表中,还是由成员括号或平等初始值设定项初始化。 另外,涉及的每个构造函数都必须是constexpr构造函数,并且每个括号或等号初始值设定项的每个子句都...
  • 具有局部变量初始化延迟的constexpr函数(2 个回答)

    我正在尝试编写一个constexpr窗体的函数:constexpr int foo(bool cond) { int a, b, c; if (cond){ a = 1; b = 2; c = 3; } else { a = -1; b = -2; c = -3; } return a + b + c; 但是,编译器抱怨说我正在使用未初始化的变量,尽管保证了局部变量的最终初始化。 我可以重写这个函数来使用三元运算符,也就是int a =...
  • 静态constexpr类成员变量安全多线程读取?(2 个回答)

    将多个线程同时读取类的静态constexpr成员变量是否安全? 例如: class a{ public: some code here private: static constexpr std::size_t x_ = 99; } 如果我创建多个class类型的a对象,每个对象由不同的线程使用,那么每个c ++ 11线程在x_不使用任何锁定机制的情况下独立读取成员变量是安全的吗?...

扫码关注云+社区

领取腾讯云代金券