compile-time相关内容

在编译时使用C ++ 11编程endianness

我已经在这个主题中提到了许多问题,但是到目前为止找不到任何解决方案。这里提到了一个自然的解决方案:在编译时确定endianness 。 然而,上述相关问题在评论&同样的答案。 有了一些修改,我能够编译一个类似的解决方案与g ++& clang ++( -std = c ++ 11 )没有任何警告。 static_assert(sizeof(char)== 1,“sizeof(c ..
发布时间:2016-10-23 22:30:48 C/C++开发

如何使用C ++模板减少编译时间

我正在将我的C ++应用程序的一部分从使用旧的C类型数组更改为模板化的C ++容器类。请参阅这个问题。虽然解决方案工作得很好,我对模板化代码的每次细微更改都会导致大量的重新编译,从而极大地减慢了构建时间。有没有办法从模板代码中取出模板代码并返回一个cpp文件,以便较小的实现更改不会导致重大的重建? 解决方案 我认为一般规则适用。尝试减少代码部分之间的耦合。 此外,尝试将所有的模板标题 ..
发布时间:2016-10-23 21:46:25 C/C++开发

方法编译时断言;仍然不工作

我需要一种简单的方法来在模板中声明模板参数实现了一个方法(或其一个父类)。我已经阅读概念检查库,但很难找到一个简单的例子来做这样的简单检查。 我试图关注其他职位href =“http://stackoverflow.com/questions/1966362/sfinae-to-check-for-inherited-member-functions”>这一个和这另一个),我修改,所以我可以 ..
发布时间:2016-10-23 20:52:12 C/C++开发

在Visual C ++可执行文件中输出编译时间戳?

如何将编译时间戳信息插入使用Visual C ++ 2005构建的可执行文件?我想在执行程序时能够输出这样的东西: 这个build XXXX是在dd-mm-yy编译的, hh:mm。 其中日期和时间反映项目构建的时间。 解决方案 虽然不是您的确切格式, DATE 的格式为Mmm dd yyyy,而 TIME 的格式为hh:mm:ss。你可以创建一个这样的字符串并在任何打印例程中 ..
发布时间:2016-10-23 13:49:40 C/C++开发

除数组之外的数据结构的编译时间人口?

在C ++中,您可以这样做: static const char * [4] = { “One fish“, ”Two fish“, ”Red fish“, ”Blue fish“ }; ...并且给你一个不错的只读数组数据结构任何CPU周期在运行时初始化,因为所有的数据已经由编译器为您编译(在可执行程序的只读存储器页中)。 我宁愿使用不同的数据结构,而不是一 ..
发布时间:2016-10-23 13:44:26 C/C++开发

Constexpr变量评估

这里是我的代码,我需要澄清发生了什么: constexpr int funct(int x){ return x + 1; } int main(){ int x = funct(10); return 0; } constexpr 允许编译时计算,并且基于我上面的代码,因为 funct 被声明为 constexpr 编译时计算如果参数是常量或 ..
发布时间:2016-10-23 13:02:37 C/C++开发

“未定义的行为”扩展到编译时?

我们都听说过警告,如果您在C或C ++中调用未定义的行为,则任何东西都可能发生。 这是否限制为任何运行时行为,还是包括任何编译时行为?特别是,编译器在遇到调用未定义行为的构造时,允许拒绝代码(在标准中没有其他要求这样做),甚至崩溃? 解决方案 “您已经忽略了实际的定义并专注于注释,标准强加 / em>。“ - @ R.MartinhoFernandes 上述讯息由指定使用者 ..
发布时间:2016-10-23 12:02:43 C/C++开发

通过自由函数或成员函数进行扩展的机制

C ++库的加载(包括标准)允许您调整对象以在库中使用。选择通常在同一命名空间中的成员函数或自由函数之间。 我想知道机制和构造库代码用于调度一个调用,这将调用这些“扩展”函数之一,我知道这个决定必须地方在编译时间和涉及模板。以下运行时间伪代码不可能/无意义,原因超出了此问题的范围。 如果A类具有带签名的成员函数FunctionSignature 选择& A.functionSigna ..
发布时间:2016-10-23 11:54:30 C/C++开发

编译时递归的工作原理?

我在这里找到了一个代码在没有循环或条件的情况下打印1到1000 有人可以解释编译时递归的工作原理,无法在google中找到它 //编译时递归 template void f1() { f1(); cout void f1() { cout ..
发布时间:2016-10-22 18:24:56 C/C++开发

Variadic模板异构容器

我需要实现一些具有异构元素的可变模板容器类,这允许通过这些元素进行迭代。我的第一个想法是使类std :: tuple成员与可变参数,但从元组通过数组类方式(通过循环)是不可能的: struct A {void prnt(){std :: cout ..
发布时间:2016-10-20 23:40:58 C/C++开发