c++1z相关内容
C ++ 1z将删除三字母。 IBM严重反对这一点(此处和
..
投票人在 C ++ 17评估中的影响典型C ++代码的顺序保证(P0145R3)? (编辑:更新指向最新版本的链接r3 ) i = 1; f(i ++,i) 和 $ b b std :: cout
..
构建点的确切点是 std :: observer_ptr > 在我看来, / code>,如果它不添加动态内存安全,这似乎是一个多余的步骤。 在我的所有代码中,我使用 std :: unique_ptr 其中我需要明确拥有一个对象和 std :: shared_ptr 我可以共享所有权一个对象。 这非常好,可以防止对已经销毁的对象的意外解引用。 std :: observe
..
C ++标准委员会正在致力于概念扩展的TS(技术规范):“编程语言 - 概念的C + +扩展”。 N4377 是本文档的最新版本。 我知道 concept-gcc ,但上述概念提案(通俗地称为 Concepts Lite )是不同的。我听说有一个概念分支,我尝试了来自 origin / asutton / c ++ - concepts > gcc 的 git 镜像,但没有编译。如何构建和使
..
因此,假设我要键入erase 类型擦除 。 我可以创建变体的伪方法启用自然: pseudo_method print = [](auto&& self,auto&& os){os var = // create a variant of type A B or C (var-> * print)(std :: c
..
P0137 引入了函数模板 std :: launder ,并在有关联合,生命周期和指针的部分对标准进行了许多更改。 什么是本文解决的问题?我必须意识到的语言的变化是什么?我们是什么? c> 解决方案 std :: launder 是适当命名的,虽然只有当你知道它是什么。 。 考虑文章中的例子: struct X {const int n; }; union U {
..
使用下面的许多等模板结构,可以返回一组固定的可能不可移动的对象,并使用c ++ 17结构化绑定code> auto [a,b,c] = f(); 声明变量ab和c并从f返回它们的值,例如struct或tuple。 模板 struct many { T1 a; T2 b; T3 c; }; //
..
我在 cppreference 上看到 std :: function :: argument_type 在C ++ 17中已被弃用。其背后的原因是什么? 解决方案 相关论文
..
这是一个代码片段,我将使用它来检查可变参数模板类型是否是唯一的: template struct is_one_of; template struct is_one_of { static constexpr bool value = false; }; template
..
看来,大多数人发现字符串的大小是他们只是使用 my_string.size()和它工作正常。好,我最近做了一个类的任务,我做了... if(size(my_string)
..
TR2 中有许多有趣的东西。是在 C ++ 17 吗? 我理解TR1在2005年完成,不得不等到C ++ 11被标准化。 但是我也理解TR2已经完成了? 我的链接到C ++ 17没有提到任何关于TR2,但我希望.. 。 TR的观点(现在)。 解决方案技术规格)是允许某些成熟独立于标准迭代过程。他们可以发布一个TS,看看它是如何工作的,看看是否有任何问题的实现和/或使用的功
..
给定全局命名空间中的以下声明: constexpr int x = x; 这是否格式良好? 草稿C ++ 14标准版面 3.6.2 [basic.start.init] 说: 在任何其他初始化发生之前,具有静态存储持续时间(3.7.1)或线程存储持续时间(3.7.2)的变量应该是零初始化(8.5) 。 [...] 看起来好
..
在2016年Oulu ISO C ++标准会议上,提案名为内置变量被标准委员会投票成C ++ 17。 在外行人的术语中,什么是内联变量,什么是有用的? 解决方案 提案的第一句话: inline 说明符可以应用于变量以及函数 应用于函数的 inline 的保证效果是允许在多个翻译单元中用外部链接来相同地定义功能。对于在实践中,意味着定义在头部中的功能,可以包括在多个翻译单元
..
在C ++标准化委员会中有一个研究小组,在C ++ 1z或之后提供编译时反映。 例如,可以使用这些工具来命名函数或类吗? / p> struct A {int f(){return 42;}}; struct B {int(std :: reflect :: member :: declname)(){return 43;}}; //相当于struct B {
..
我在许多Python程式中一直使用yield,并且在许多情况下 清除代码。我对其进行了博客,这是我网站上的热门网页之一。 C#还提供yield - 它通过调用者端的状态保持实现,通过自动生成的类保持状态,函数的局部变量等。 我目前正在阅读关于C ++ 0x及其添加;并且在阅读关于在C ++ 0x中实现lambdas的时候,我发现它是通过自动生成的类来完成的,配备了存储lambda代码的
..
在范围出口上运行lambda似乎是这样一个基本的东西,我希望它被标准化。类似 unique_ptr 的应用程序更好,但是我发现需要一个无限的“一次性”析构函数,尤其是在使用C风格库时。有人知道这是否来了? 解决方案 n4189 建议将 make_scope_exit 包装器和其他类似的资源处理程序添加到语言。它是基于相对有名的 scope_guard 谈话。 LWG最近的“当前纸状态
..
在2016年Oulu ISO C ++标准会议上,提案名为保证复制Elision 被标准委员会投票选为C ++ 17。 它是如何工作的? 解决方案 复制elision已被允许,或者是否需要更改代码以保证复制elision?允许在多种情况下发生。然而,即使它被允许,代码仍然必须能够工作,好像副本没有被省略。也就是说,必须有一个可访问的副本和/或移动构造函数。 保证复制精度只是说明
..
C ++标准库头文件可能以未指定的方式包含彼此,因此程序员通常不应该依赖于一个头文件包括另一个头文件。然而,在少数情况下,头部被保证包括另一个头部,或者提供否则将需要包括另一个头部的某些功能。 解决方案 这个答案忽略了C头文件 - 和 。在C ++库头文件(所有引用都是N4582)中: 由
..
C ++ 17现在功能齐全,因此不太可能遇到大的更改。已经为C ++ 17提出了数百个提案。 哪些功能在C ++ 17中添加到C ++? 当使用支持“C ++ 1z”的C ++编译器时,当编译器更新为C ++ 17时,哪些功能将可用? 解决方案 语言特性: 模板和通用代码 过度对齐数据的动态内存分配 保证复制检查 最后! 不是在所有情况下,但在所有情况
..
说,我有3个变量: 矢量<&INT GT; VEC(3); INT STAT [3]; 汽车达因= make_unique&下; INT []≥(3); 我可以初始化任何这些,如果我知道的大小是3:为(自动I = 0;我3; ++ I)X [3] =我; 其中, X 是 VEC ,与stat 或 DYN 。不过,我想能够做到这一点的模板只需在通过X 一次。什么我需要在为了做到这一点
..