c++14相关内容
gcc 无需警告即可编译以下代码: #include struct foo { static constexpr double a = std :: cos(3。); static constexpr double c = std :: exp(3。); static constexpr double d = std :: log(3。); stat
..
我观看了Walter Brown在Cppcon14上关于现代模板编程的演讲(第I部分),第二部分),其中他提出了 void_t SFINAE技术。 示例: br> 给定一个简单的变量模板,如果所有模板参数形式都很好,则求值为 void : 模板使用void_t = void; 和以下trait检查是否存在成员变量 member :
..
我尝试实施 C ++ 14 别名模板 make_integer_sequence ,它简化了类模板的创建 integer_sequence 。 类别T,T ... I> struct integer_sequence { typedef T value_type; static constexpr size_t size()noexcept {return sizeof ...(I
..
我对我的代码发布了一个问题,其中只有 #include 指令如下: #include 我的老师告诉我这样做,但在评论部分我被告知我不应该 为什么? 解决方案 似乎是Stack Overflow上越来越常见的东西,也许是在当前学年新增加到国家课程中的东西。 我想象的优
..
如中所述,初始化是否包含左值到右值转换?是 int x = x; UB? C ++标准在部分有一个惊人的例子3.3.2 int 使用自己的不确定值初始化的声明点: int x = 12; {int x = x; } 这里,第二个x被初始化为自己的(不确定)值。 - end example ] 这个问题的Johannes答案表示未定义行为,
..
同时使用GCC与-std = C11和g ++与-std = C ++ 14。 例如。对于一个名为的src / DIR / Hello.cxx 应该扩大到像例如: 为const char基名[] =“你好”; 或为const char基名[] = getStaticBasename(__ FILE__); 作为其中 getStaticBasename()是宏(碳源)或constexpr
..
我有一个工作解析器阅读棋盘游戏职位描述(国际汇票,官方语法) 的#include<升压/精神/家庭/ x3.hpp> #包括LT&;&iostream的GT;命名空间X3 =的boost ::精神:: X3;汽车常量结肠= X3 ::亮(“:”); 汽车常量逗号= X3 ::亮起(''); 汽车仪表板常量X3 = ::亮起(' - '); 汽车常量点= X3 ::亮起('。'); 汽
..
这是在 这个Q&功放的后续; A 。我现在有一个命名空间AST几个数据结构,细分了两个子命名空间(代数和数字对应于两种不同格式的语法识别)。 命名空间AST { 命名空间代数{ 结构occupance { 焦炭PC; 焦炭关口; INT行; }; 使用片=
..
是标准的分配器回吐构造诺 / packaged_task 应该使用分配器只是状态对象本身,还是这应该保证的所有的(内部)相关的对象? [futures.promise]:“......分配内存共享状态”结果 [futures.task.members]:“......需要分配存储内部数据结构存储” 在特定的,是下面的错误或功能? * MSVC 2013.4,提升1.57,霍华德Hi
..
在评论这个问题
..
我需要一个性能关键路径上生成随机布尔值。 在code,我写了这是 的std :: random_device次; 的std :: uniform_int_distribution<>随机化器(0,1); const int的VAL随机数发生器(的std :: mt19937(RD())); 常量布尔isDirectionChanged =的static_cast<布尔>
..
我正在寻找一种编程技术,以确保用于基准变量(没有观察到副作用)将不会被编译器优化掉 这给出了一些信息,但我最终使用的愚蠢和下面的函数 / ** *呼叫doNotOptimizeAway(VAR)针对您使用的变量 *基准否则是没有用的。编译器倾向于做 *做好消除未使用的变量,而这个功能的傻瓜 *其实是在需要它变成思维变种。 * / #IFDEF _MSC_VER优化的#pragma(
..
社会! 我想申请新的C ++ 14的特性和意外遇到了错误,而我试图通过的为const char [] 的参数如下功能: decltype(自动)autofunc(const的汽车和放大器;一) { COUT<<的“Hello World \\ n”; COUT<< A<< ENDL; } 汽车lambd = [](常量汽车和放大器;
..
我有一个字符串与超出我的控制(例如一个的#define 在的config.h 文件),我想初始化一个全球固定大小的字符数组它。如果字符串太长,我希望它被截断。 基本上,我想实现的是效果 的#define SomeText“则会Lorem存有” 的#define LIMIT 8字符文本[LIMIT + 1]; 的std ::函数strncpy(文字,SOMETEXT,LIMIT); 文[LIMI
..
看来这code ++工程,(所以它编译罚款),我问这里是什么?它是保证的sizeof(的std ::数组)是一样的sizeof(equivalent_Carray) 结构MyClass的{ 的std ::阵列<浮动,4为H. ARR; 浮卡尔[4]; 的std ::阵列<浮动,4为H. cfunction(){ 的std ::阵列<浮动,的sizeof(卡尔)
..
GCC 和锵做编译下面code: 无效测试() { constexpr INT大小= 3; 自动波长= [尺寸] {INT昏暗【尺寸】; }; } 然而,的VisualStudio 2015年CTP 6 没有。不过,所有3编译器很高兴与此code:无效测试() { 静态constexpr INT大小= 3; 自动波长= [] {INT昏暗【尺寸】; }; } 这片
..
我不知道,为什么 std_arr 的声明在以下code产生一个错误,而 c_arr 编译好: 的struct {诠释A,B; };小号c_arr [] = {{1,2},{3,4}}; // 好 的std ::阵列< S,2 - ; std_arr = {{1,2},{3,4}}; //错误:太多的初始化 两者的std ::阵列和取值的集合体。从对CP preference.co
..
在
..
我试图填补编译时一个二维数组与给定的功能。这里是我的code: 模板< INT H,INT W> 结构表 { int数据[H] [W]; //的std ::阵列<的std ::阵列< INT,H>中W>数据; //这不起作用 constexpr表():数据{} { 的for(int i = 0; I< H ++ I) 对
..
考虑下面的一块code,这是一个由C ++编译器11完全可以接受的: 的#include<阵列GT; #包括LT&;&iostream的GT;汽车的main() - GT; INT { 的std ::阵列<双,0>一个; 为(自动I:A)的std ::法院LT&;< I<<的std :: ENDL; 返回0; } 根据标准§23.3.2.8 [零
..