compile-time相关内容
通过抽象类,我的意思是至少有一个纯虚方法的类。如果检查显示该类不为抽象,则我希望编译失败。 是否可能? 解决方案 使用 std :: is_abstract 。 #include static_assert(std :: is_abstract(),“T ought be abstract。 查看 in actio
..
通过抽象类,我的意思是至少有一个纯虚方法的类。如果检查显示该类不为抽象,则我希望编译失败。 是否可能? 解决方案 使用 std :: is_abstract 。 #include static_assert(std :: is_abstract(),“T ought be abstract。 查看 in actio
..
Visual C ++有 #pragma message 表示将字符串输出到编译器输出。现在我有一个工厂: template CComPtr CreateComObject() { CComPtr newObject(new CComObject); //做一些调整对象 return newObject;
..
Visual C ++有 #pragma message 表示将字符串输出到编译器输出。现在我有一个工厂: template CComPtr CreateComObject() { CComPtr newObject(new CComObject); //做一些调整对象 return newObject;
..
Visual C ++有 #pragma message 表示将字符串输出到编译器输出。现在我有一个工厂: template CComPtr CreateComObject() { CComPtr newObject(new CComObject); //做一些调整对象 return newObject;
..
我已经在这个主题中提到了许多问题,但是到目前为止找不到任何解决方案。这里提到了一个自然的解决方案:在编译时确定endianness 。 然而,上述相关问题在评论&同样的答案。 有了一些修改,我能够编译一个类似的解决方案与g ++& clang ++( -std = c ++ 11 )没有任何警告。 static_assert(sizeof(char)== 1,“sizeof(c
..
我正在将我的C ++应用程序的一部分从使用旧的C类型数组更改为模板化的C ++容器类。请参阅这个问题。虽然解决方案工作得很好,我对模板化代码的每次细微更改都会导致大量的重新编译,从而极大地减慢了构建时间。有没有办法从模板代码中取出模板代码并返回一个cpp文件,以便较小的实现更改不会导致重大的重建? 解决方案 我认为一般规则适用。尝试减少代码部分之间的耦合。 此外,尝试将所有的模板标题
..
我需要一种简单的方法来在模板中声明模板参数实现了一个方法(或其一个父类)。我已经阅读概念检查库,但很难找到一个简单的例子来做这样的简单检查。 我试图关注其他职位href =“http://stackoverflow.com/questions/1966362/sfinae-to-check-for-inherited-member-functions”>这一个和这另一个),我修改,所以我可以
..
如何将编译时间戳信息插入使用Visual C ++ 2005构建的可执行文件?我想在执行程序时能够输出这样的东西: 这个build XXXX是在dd-mm-yy编译的, hh:mm。 其中日期和时间反映项目构建的时间。 解决方案 虽然不是您的确切格式, DATE 的格式为Mmm dd yyyy,而 TIME 的格式为hh:mm:ss。你可以创建一个这样的字符串并在任何打印例程中
..
在C ++中,您可以这样做: static const char * [4] = { “One fish“, ”Two fish“, ”Red fish“, ”Blue fish“ }; ...并且给你一个不错的只读数组数据结构任何CPU周期在运行时初始化,因为所有的数据已经由编译器为您编译(在可执行程序的只读存储器页中)。 我宁愿使用不同的数据结构,而不是一
..
这里是我的代码,我需要澄清发生了什么: constexpr int funct(int x){ return x + 1; } int main(){ int x = funct(10); return 0; } constexpr 允许编译时计算,并且基于我上面的代码,因为 funct 被声明为 constexpr 编译时计算如果参数是常量或
..
我们都听说过警告,如果您在C或C ++中调用未定义的行为,则任何东西都可能发生。 这是否限制为任何运行时行为,还是包括任何编译时行为?特别是,编译器在遇到调用未定义行为的构造时,允许拒绝代码(在标准中没有其他要求这样做),甚至崩溃? 解决方案 “您已经忽略了实际的定义并专注于注释,标准强加 / em>。“ - @ R.MartinhoFernandes 上述讯息由指定使用者
..
C ++库的加载(包括标准)允许您调整对象以在库中使用。选择通常在同一命名空间中的成员函数或自由函数之间。 我想知道机制和构造库代码用于调度一个调用,这将调用这些“扩展”函数之一,我知道这个决定必须地方在编译时间和涉及模板。以下运行时间伪代码不可能/无意义,原因超出了此问题的范围。 如果A类具有带签名的成员函数FunctionSignature 选择& A.functionSigna
..
我在这里找到了一个代码在没有循环或条件的情况下打印1到1000 有人可以解释编译时递归的工作原理,无法在google中找到它 //编译时递归 template void f1() { f1(); cout void f1() { cout
..
我需要实现一些具有异构元素的可变模板容器类,这允许通过这些元素进行迭代。我的第一个想法是使类std :: tuple成员与可变参数,但从元组通过数组类方式(通过循环)是不可能的: struct A {void prnt(){std :: cout
..
可能重复: 是否可以编写一个C ++模板来检查函数的存在? 说有2个类别: struct A {int GetInt(){return 10; }}; struct B {int m; }; 我想在以下函数中使用类型A或B的对象 tempate int GetInt(const T& t) { //如果是A,我会调用:retur
..
#include #include #include #include using namespace std; struct SubAlgorithm1 {void operator()(int / * i * /){cout
..
我想在编译时使用类型的名称。例如,假设我写了: constexpr size_t my_strlen(const char * s) { const char * cp = s; while(* cp!='\0'){cp ++; }; return cp - s; } 现在我想要: template constex
..
我玩弄了一点指针,看看我可以去哪里,遇到了一个奇怪的错误...首先,普通的不是老索引: template struct indices {}; template struct make_indices: make_indices
..
我需要实现自我编译时函数检查类型相等(函数模板不带参数 bool eqTypes())。 自我意味着不依赖于图书馆。 我不是很好。这是我试过的,但它不是我需要的。 template
..