指的是在编译源代码时可以推断或知道的信息,而不是只能在运行源代码时推断出的信息。不要使用此标记来解决编译源代码所需的时间。
C++:避免使用vector<unique_ptr<BaseClass>元素的动态cast的哪种模式,以分开关注的方式来调用适当的处理程序?
我正在尝试改进C ++设计,我将其涉及我认为是不良解决方案的内容。
template <typename T, size_t N> concept fixed_container = requires (T const& t) { {std::size(t)} -> std::same_as<size_t>; {std::begin(t)}; {std::end(t)}; } //&& std::declval<T>().size() == N // Error: 'declval() must not be used!' //&& T::size() == N // Error: 'call to non-static member function without an object argument' ; // These should all be correct static_assert( fixed_container<std::array<double, 3>, 3>); static_assert(!fixed_container<std::array<double, 3>, 4>); static_assert( fixed_container<std::span<double, 3>, 3>); static_assert(!fixed_container<std::span<double, 3>, 4>); static_assert( fixed_container<double[3], 3>); static_assert(!fixed_container<double[3], 4>);
。不幸的是,在尝试多种方法一段时间后,我得出的结论是,这可能是不可能的。我是正确的吗?
创建通过调用 C++ 17 中的 constexpr 函数填充的 constexpr 映射
我有一个 constexpr 函数,可以在编译时计算 CRC。我需要在该函数生成的 CRC 和字符串输入之间创建一个映射,并在运行时使用它们(如果它更好...
我试图禁止包含源文件中的头文件列表,从而防止对这些头文件中定义的类的依赖。 检查头护罩有技巧...
如何使用initializer_list构造函数推导编译时矩阵类的二维?
#包括 #包括 模板 类矩阵 { 受保护: std::array,行>矩阵; 噗...
考虑这个方法和描述: [描述(“必须从属性调用它,否则会出现运行时错误。”)] 受保护的 T 负载() { 返回InternalLoad(); } 德...
我有一些嵌入式 C 代码,我想要一个正弦值列表。我在 C++ 中使用 constexpr 函数做了类似的事情,该函数在主循环之外返回 std::array : #包括...
在 Java 中:涉及实例化时定义的常量的表达式在编译时会得到简化吗?
正如我的标题中所总结的,我想知道涉及实例化时定义的常量的表达式是否在编译时得到简化? 例如,我有一个堆类,其中有一个最终的
有没有什么方法可以在编译时为每个变量创建唯一的哈希值。 C++ 允许块作用域,这可能会在一个函数内产生相同的命名变量,所以我不能这样做: #定义宏(...
在我的理解中,左值只是一个位置,其对应的右值是存储在该位置的值。例如: 整数x; x = 0; /* 编译器会将 x 替换为位置 w...
我正在尝试实现一个可以在编译时使用的哈希函数。为了实现这一点,我需要将一个值(例如,int 或 float)重新解释为其原始字节。但是,当使用编译时
我想知道是否有一个工具/GCC 编译开关可以用来在运行前查看 GCC 编译器的跟踪/输出。一般来说,我希望有一个注释工具...
带有绑定参数的可调用对象的 std::variant 容器,不使用动态内存
我想在容器(例如 std::array)中存储几个不同的可调用对象(不同类型),以便稍后调用它们。 每个可调用函数都有相同的返回类型和相同的金额以及...
我正在处理一些针对不寻常嵌入式系统的代码,该系统需要不同的处理器指令才能从其只读存储器中读取数据。 对于要放置在所述只读备忘录中的变量...
在C#中,是否可以在编译时限制谁可以调用方法? 我研究过指令,但这不起作用,因为我无法为符号赋值。 #define WHO VisualStudioUser.Cur...
在 Rust 中,可以迭代数组的值: 常量 COOL_NUMBERS: [i32; 4] = [1, 3, 3, 7]; fn do_something_cool() { 对于 COOL_NUMBERS 中的号码 { // ... } } 但它是...
考虑下面的代码: 静态 constexpr QString FOO = QStringLiteral("foo"); // 编译错误,因为 QString 没有默认的析构函数。 我如何在编译时创建 QString!?是吗
我有一些 Java 代码,我想使用日志消息来检测它们以进行调试。然而,最终(编译的)生产代码不应包含任何日志记录,因为它会减慢速度
我认为目前这是不可能的,或者这是否是一个好主意,但这是我刚才正在考虑的事情。 我使用 MSTest 对我的 C# 项目进行单元测试。 在我的一项测试中,我做了