Python
Java
PHP
IOS
Android
Nodejs
JavaScript
Html5
Windows
Ubuntu
Linux
使用地图提取和重新插入的限制性规则的基本原理
从 C 17 开始 关联容器 https en cppreference com w cpp container支持节点的提取及其重新插入 可能插入到相同类型的另一个容器中 返回的对象extract key is a 节点句柄 https
c
languagelawyer
C17
undefinedbehavior
无法在 std::variant 中采用相同类型
我正在使用 c 17 并且想编写这样的代码 include
c
C17
不允许使用默认特殊成员函数的多个版本 (MSVC)
这是有效的 C 代码吗 struct S S S const default S S default Context 我尝试通过将这两行添加到以下代码中来处理歧义S godbolt https godbolt org z j9znrY6ef
c
visualc
C17
Clang 和二进制折叠表达式 — 空参数包的诅咒
具体来说 Clang 3 6 0 目前由 Coliru 托管 所有这些片段都是从以下位置调用的 int main foo std cout lt lt n n foo 1 2 3 以下代码 template
c
Clang
compilerbug
C17
foldexpression
为什么标准没有提供擦除删除惯用语的便利帮助程序?
从 STL 中的集合中删除项目需要一种经常使用的技术 该技术已成为一种习惯用法 擦除 删除 惯用语 https en wikipedia org wiki Erase E2 80 93remove idiom 这个习语最常见的用法之一是删除
c
STL
C17
eraseremoveidiom
为什么 std::string_view 在三元表达式中创建悬挂视图?
考虑一个返回 a 的方法std string view要么来自返回 a 的方法const std string 或来自空字符串 令我惊讶的是 以这种方式编写方法会导致悬空字符串视图 const std string otherMethod
c
languagelawyer
C17
danglingpointer
stringview
MSVC constexpr 函数“xyz”无法生成常量表达式
我创建了一个函数 它将多个较小的值连接成一个较大的值 同时保留值的二进制表示 例如构建一个int argb来自多个unsigned char r g b a 我知道我也可以通过改变值来实现这一点 但这不是这个问题的问题 但是 如果我使用该函
c
visualc
C17
我应该将 std::string 与“string”或“string”进行比较吗?
考虑这个代码片段 bool foo const std string s return s hello comparing against a const char literal bool bar const std string s r
c
c14
C17
stringcomparison
stringliterals
Shared_ptr 的删除器是否存储在自定义分配器分配的内存中?
说我有一个shared ptr使用自定义分配器and自定义删除器 我在标准中找不到任何有关删除器应存储在何处的内容 它没有说自定义分配器将用于删除器的内存 也没有说它won t be 这是未指定的还是我只是错过了一些东西 C 11 中的 u
c
languagelawyer
C17
sharedptr
allocator
“enum class”是 C++ 中的类类型吗?
我读到了 C 中的枚举声明 使用参考参数 http en cppreference com w cpp language enum 然后我做了枚举类并使用检查它是否是类类型std is class include
c
C11
enums
C17
C++17 中的歧义错误(模板模板参数和默认参数问题)
我的代码由 g 进行不同的解释c 14 and c 17标准标志 include
c
templates
c14
languagelawyer
C17
静态数据成员模板专业化的实例化点在哪里
考虑下面的代码 include
c
templates
C17
languagelawyer
if constexpr 而不是标签调度
我想用if constexpr而不是标签调度 但我不知道如何使用它 下面的示例代码 template
c
templates
C17
ifconstexpr
nullptr、{} 和 nullopt 之间的区别
为什么我不能使用nullptr代替nullopt 以及为什么 翻译成这样nullopt 为什么我不能使用nullptr代替nullopt 因为它们是不同的东西 它们的含义不同 用途也不同 必须要有鲜明的特色nullopt使用价值std op
c
pointers
C17
stdoptional
仅防止二元运算符的隐式转换运算符
我遇到了一个问题 我已将其归结为以下问题 其中 即使应该失败 运算符用法也会编译 C 17 在 GCC 5 x 8 x 和 9 x 上测试 template
c
templates
operatoroverloading
C17
implicitconversion
在 C++17 中使用 const std::string& 参数是否有意义?
通过得到string view在 C 17 中 我们得到了传递两者的廉价方法std string and char 不拥有字符串所有权并避免制作临时副本的函数 通过使用std string按值传递和std move我们可以显式且快速地传递右
c
C17
如何在 C++17 中将抛出函数指针静态转换为 noexcept?
C 17 使noexcept函数类型的一部分 它还允许隐式转换noexcept指向可能抛出函数指针的函数指针 void ptr to noexcept noexcept nullptr void ptr to throwing ptr to
c
C17
functionpointers
staticcast
noexcept
如何将 [[nodiscard]] 属性应用于 lambda?
我想防止人们在不处理返回值的情况下调用 lambda Clang 4 0 拒绝我尝试过的一切 使用 std c 1z 进行编译 auto x nodiscard return 1 error nodiscard attribute cann
c
Lambda
attributes
languagelawyer
C17
递归函数的返回类型推导
最近 我读到巴里的回答 https stackoverflow com a 40873657 6793559对于这个问题C 11 中的递归 lambda 函数 https stackoverflow com q 2067988 679355
c
C17
templateargumentdeduction
genericlambda
折叠表达式的结合性
N4191 http www open std org jtc1 sc22 wg21 docs papers 2014 n4191 html建议的 C 折叠表达式 那里的定义是 args 是左折 即 a0 a1 a2 然后 args 是右折
c
languagelawyer
C17
associativity
foldexpression
«
1
2
3
4
5
6
7
...22
»