指的是在编译源代码时可以推断或知道的信息,而不是只能在运行源代码时推断出的信息。不要使用此标记来解决编译源代码所需的时间。
在得知 VLA(可变长度数组)与 C++ 不兼容后,我第一次开始深入这个兔子洞。这是因为可变长度的数组不会有 s...
是否可以在编译时初始化array_object的idx值,使得member_array[0].idx = 0;成员数组[1].idx = 1; ...member_array[array_size-1].idx = array_size-1。价值
我正在学习 Rust。 我的理解 : iter() :集合内数据的只读视图。 into_iter() :集合内数据的可写和可读视图。 (警告:完全访问权限,但从 pa...
是否有一种标准的一致且可移植的方法可以在编译时检查一种浮点类型的所有值是否可以在另一种浮点类型中表示?还请考虑即将推出的...
我正在制作一个字符串类,其构造依赖于其哈希值: 模板 静态内联 constexpr uint64_t hash(const char(&str)[N]) { //... } 类字符串() { //
为什么serde的Serialize/Deserialize的推导会在const _:()块中产生代码?
注意:这个问题并不是专门关于 serde:它是关于过程宏和 const 函数。 我正在研究 serde 的派生宏用于序列化和反序列化生成的代码,我...
我得到了一个奇怪的。我正在尝试找到一种方法来存储每个模板化方法的参数类型,以便类用户可以使用它。一个简单的例子可能是: 模板 结构类型...
我正在创建一个标识符类,它基本上是一个不可变的字符串。它在内存中维护一个常量字符数组,使其适合需要频繁比较的标识符。 他...
为什么类型检查失败? (scala.compiletime.ops.int)
我正在制作一个自己的固定大小向量类,并且此代码被拒绝 导入 scala.compiletime.ops.int._ 枚举 Tensor1[暗淡 <: Int, +T]: case Empty extends Tensor1[0, Nothing] case Cons[N <...
我有由几个变体组成的枚举: 枚举 Foo { A, 乙, C, } 我有一个函数,里面有 if 和 match 循环,其所有分支都是发散的: fn my_function() -> i32 ...
如何根据类模板参数值选择C++模板类成员函数参数类型? 这是一个例子: #包括 模板 如何根据类模板参数值选择C++模板类成员函数参数类型? 这是一个例子: #include <memory> template <class T, bool plainPointer=true> class C { // pseudocode below void f(plainPointer ? T * x : std::shared_ptr<T> x) { /*implementation*/ } }; 也就是说,如果plainPointer==true,则应定义以下类成员函数: void f(T * x) { /*implementation*/ } 否则,应该定义这个成员函数: void f(std::shared_ptr<T> x) { /*implementation*/ } 我希望两个函数都有一个单一实现,并且只有f的参数类型应该是plainPointer依赖的。 非常感谢您的帮助! 您可以使用std::conditional_t做出决定: void f(std::conditional_t<plainPointer, T*, std::shared_ptr<T>> x) { /*implementation*/ }
在 Zig 中,我想在编译时指定一个分配器,以消除将分配器传递给每个需要它的函数所带来的额外开销。在下面的 MWE 中,我有一个类型生成器...
我有下面的 C/C++ 代码 - 常量 int O[N] = {1110, 1109, 1107, 1110, 1112, 1111, 1110, 1111, 1108, 1112, 1110, 1111}; 整数 L[N]; 对于 (int i = 0; i < N; i++) { L[i] = (int)ceil(log2(O[i]))...
由于布尔类型模板函数中未使用参数,如何在 C++ 中拥有备用函数签名?
我的目标是有一个库提供我的函数增量的多个实例,基于唯一的定义以避免代码冗余: 模板 int 增量(int a, int b) { 如果
Rust 有没有办法根据泛型类型将参数值限制在范围或条件内? 给定一个无符号 T,u8 或 u16 const fn do_something_with_a_bit_offset(偏移量:u8)-&...
假设我有一个不包含任何成员并进行计算的类: 类助手{ 民众: bool f1(TypeA a, TypeB b, 结果& res){ // 某些计算需要 TypeA,并且
据我所知,如果至少条件和执行的分支是编译时常量,则可以在编译时评估三元 ?: 运算符。但是,如果其中一个未执行怎么办?
我正在从头开始重新设计我的 ECS,这次选择了原型。 原型 ECS 的核心思想是我有一个将原型(组件类型的元组)id 绑定到存储桶的映射
为什么 GCC 无法处理以 sizeof 作为结构初始值设定项内的条件的三元中复合文字的编译时求值?
以下代码: 结构体{ 整数我; }; const struct Int i = {sizeof(int) ? (整数){1}:0}; 结果是: 初始化元素不是常量 (现场演示 GCC) 即使这些陈述...
我有一个基本的字符串结构: typedef 结构字符串 { size_t 尺寸; 联盟{ char *ptr, buf[sizeof(char *)]; }; } 细绳; 这个想法是能够从 Str 中提取 char *...