26得票5回答
基于模板参数的条件编译时代码的包含/排除?

考虑以下类,其中内部结构体 Y 作为类型被使用,例如在后续的模板中:template<int I> class X{ template<class T1> struct Y{}; template<class T1, class T2> s...

13得票1回答
强制预计算常量

我在Haskell中有一个常量声明 - 我能强制它提前评估吗?我看到一些大致如下的代码:myList = [(a, b), (c, d)] ... map (f . fst) myList 如果我对 fst 进行分析(它要调用 168M 次),会在执行时花费一定的时间。虽然 myList 的二...

12得票4回答
Data.Map中键/值关系的静态保证

我希望为Data.Map创建一个特殊的智能构造函数,该函数对键值对关系的类型有一定的限制。这就是我试图表达的限制: {-# LANGUAGE MultiParamTypeClasses, FunctionalDependencies, DataKinds #-} data Field = ...

8得票1回答
$?CLASS和::?CLASS之间有什么区别?

Raku文档描述::?CLASS为编译时变量,回答“我在哪个类中?”。然后,几段文字之后,它提到$?CLASS,并表示它回答“我在哪个类中?(作为变量)”。 这两个变量有什么区别?它们通常似乎包含相同的值 - 它们总是吗?还是有我没有观察到的区别?

16得票1回答
同时进行编译时检查和运行时检查的方法?

假设我有以下简化程序: 链接至godbolt.org:#include <cassert> struct Dimensions { Dimensions& operator=(int i) { assert(i != 0); retur...

15得票3回答
在Objective-C中检查一个对象是否符合两个独立的协议

在Objective-C中,当你声明一个实例变量时,你可以在编译时检查它是否符合某个协议,例如:id <MyProtocol> variable; 是否有可能在编译时检查分配给变量的对象是否符合两个不同协议?就像这样:id <MyProtocol, MyOtherProtoc...

31得票17回答
检测字节序

我正试图创建一份能够在目标系统的字节序不同情况下正确处理I/O操作的C源代码。 我选择了“小端序”作为我的I/O惯例,这意味着对于大端CPU,我需要在写入或读取数据时进行转换。 转换并不是问题所在。我面临的问题是检测字节序,最好是在编译时检测(因为CPU在执行过程中不会更改字节序...)。...

12得票2回答
理解Raku编译时变量`&?BLOCK`

我非常欣赏Raku语言的&?BLOCK变量——它允许你在未命名的块中进行递归,这可以非常强大。例如,这是一个简单、内联和匿名阶乘函数: { when $_ ≤ 1 { 1 }; $_ × &?BLOCK($_ - 1) }(5) # OUTPUT: «120» 然而,当...

7得票4回答
在编译时将std::array转换为另一种数据类型?

在C++11中,是否有一种方法可以在编译时将一个类型的数组转换为另一种数据类型: #include <iostream> #include <array> #include <type_traits> int main() { static con...

45得票8回答
在编译时确定函数参数个数

我有一个C库(包含C头文件),存在两个不同的版本。 其中一个版本有一个函数,看起来像这样:int test(char * a, char * b, char * c, bool d, int e); 另一个版本看起来像这样:int test(char * a, char * b, char *...