constexpr 相关问题

constexpr是C ++ 11中引入的修饰符,它通知编译器函数或变量的值是已知的,或者可以在编译时计算。因此,它可以在不可能的地方用作常数。

转发声明一个 constexpr 数组模板

已经问过类似的问题。 但是,我想了解为什么对于数组,下面的第一行不编译而第二行编译: template constexpr float x[2]; //

回答 0 投票 0

std::vector 上的 constexpr 说明符不起作用

编辑:这现在在带有非空初始化的 godbolt(gcc,msvc)上出错。有一些混乱,因为当 Godbolt 不是时,我的 msvc 出现空初始化错误(可能是因为我的 ...

回答 1 投票 0

constexpr std::vector 不适用于 msvc

这只是我机器上的错误。自 v19.29 以来,它适用于 Godbolt。我的 msvc 是 v19.35。 #包括 constexpr std::size_t f() { constexpr std::vector aaa{}; 返回 1...

回答 1 投票 0

检查是否可以计算 lambda constexpr (C++17)

我正在尝试找到一种方法来检查 lambda 是否可以持续评估或 不在 C++17 中。假设我要检查的 lambda 不带 参数。 我偶然发现 这 问题,谁接受...

回答 1 投票 0

constexpr 一般混乱

我昨天发了一个帖子,但我认为它不清楚并且得到的回复根本没有解决我的困惑。因此,我将尝试使示例更简单。 为什么允许这样做: constexpr int 我...

回答 1 投票 0

在编译时生成位掩码

我想在编译时生成各种位掩码: 0x11111111 或 0x1111111111111111 0xF0F0F0F0 或 0xF0F0F0F0F0F0F0F0 大小将取决于类型,32 位或 64 位。 前任: 特...

回答 3 投票 0

如何在 constexpr 上下文中调用 ExecutionPolicy 算法?

我想用 ExecutionPolicy 调用标准库算法进行矢量化。同时调用也应该在 constexpr 上下文中工作。不幸的是,ExecutionPolicy 超载了......

回答 0 投票 0

如何使用成员函数初始化 constexpr std::array 类成员? [重复]

我想编写一个具有 std::array 类型的 constexpr 成员的类。 我可以使用 constexpr 免费(非成员)函数初始化这个数组成员,如下所示: 命名空间 ...

回答 0 投票 0

“if constexpr()”与“if()”之间的区别

if constexpr() 和 if() 有什么区别? 我何时何地可以同时使用它们?

回答 2 投票 0

在编译时使用 constexpr 填充类内 C 样式数组

我有一个类使用看起来像这样的表格方法来计算 CRC(它是不完整的): 模板 我有一个类使用看起来像这样的表格方法来计算 CRC(它是不完整的): template<typename CrcBaseType, uint32_t Polynomial, uint32_t InitialValue, uint32_t XorOut, bool ReverseInput, bool ReverseOutput> requires std::unsigned_integral<CrcBaseType> class CrcDriver{ public: CrcDriver() {}; private: const CrcBaseType table[256]; const uint8_t size = sizeof(CrcBaseType); private: constexpr void genTable() { for (uint32_t divident = 0; divident < 256; divident++) { uint32_t curByte = divident << (8 * (size - 1)); for (uint8_t bit = 0; bit < 8; bit++) { if ((curByte & (0x80 << (8 * (size - 1)))) != 0) { curByte <<= 1; curByte ^= Polynomial; } else { curByte <<= 1; } } table[divident] = curByte & (0xFFFFFFFF >> (4 - size) * 8); } } constexpr void genTableR() { Polynomial = ReverseWord(Polynomial) >> (4 - size) * 8; for (uint32_t divident = 0; divident < 256; ++divident) { uint32_t curByte = divident; for (uint8_t bit = 0; bit < 8; bit++) { if ((curByte & 0x00000001) != 0) { curByte >>= 1; curByte ^= Polynomial; } else { curByte >>= 1; } } table[divident] = curByte & (0xFFFFFFFF >> (4 - size) * 8); } } }; 我不需要在运行时重新定义它。如何在编译时使用 constexpr genTable/R 填充表?

回答 0 投票 0

How to make static field of a struct/class constexpr? [重复]

我有一个表示 3D 向量的 Vec 结构,我想让它成为静态成员零 constexpr。 结构向量 { 双X; 双Y; 双Z; 静态常数 Vec 零; // 定义 ...

回答 0 投票 0

const char* 不能用作 std::char_traits<char>::length

我有以下代码: constexpr uint32_t countWords(const char* str) { constexpr std::size_t length = std::char_traits::length(str); std::uint32_t 计数 = 0; 对于 (std::...

回答 3 投票 0

clang 编译器不像 gcc 那样编译代码

#include #包括 使用命名空间标准; 模板 constexpr const int *测试() { 返回指针+1; } constexpr array ar{1, 2, 3}...

回答 1 投票 0

一个类不能有自己的静态 constexpr 成员实例吗?

这段代码给我不完整的类型错误。 问题是什么?不允许一个类拥有其自身的静态成员实例吗? 有没有办法达到相同的结果? 结构尺寸 { ...

回答 4 投票 0

为什么这个互斥量不能被constexpr构造?

#include 主函数() { constexpr 静态 std::mutex my_mooootex; } 我得到以下错误: “初始化不是恒定的” 在 Microsoft Visual Studio Community 2022 上。std::m...

回答 0 投票 0

多个遗产断言的可变模板----".用3个模板参数重新声明."

我想在AVR编程中实现自己的std::is_base_of(avr-gcc还不支持 . 我从cppreference页面的可能实现中得到灵感,它...

回答 2 投票 0

如何使用Clang中的C++ 11特性?

我想在 Mac 上第一次使用 constexpr,我使用的是 sublime text,但我是通过终端编译的。我使用的是sublime text,但我是通过终端编译的。以下是我使用的编译命令: g++ -o helloworld helloworld.cpp Let ...

回答 1 投票 0

在模板参数中使用静态constexpr成员数组作为指针。

下面的main.cpp说明了这个问题。#include 模板 结构 Array { T data_[N]; }; 模板

回答 1 投票 2

将带有变量args(...)的宏转换为constexpr。

我怎样才能把这个宏转换成cpp风格的constexpr?#define LOGD(...) __android_log_print(ANDROID_LOG_DEBUG, "TAG", __VA_ARGS__) 像这样: constexpr auto LOGD(...){ ...。

回答 1 投票 0

Boost.Hana。在constexpr上下文中,将元组的值转换为相应类型的元组。

最近我不得不写一个从值的元组到值的类型的(constexpr)元组的转换。namespace hana = boost::hana; /我们有这个(不一定是constexpr)auto ...。

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.