Python
Java
PHP
IOS
Android
Nodejs
JavaScript
Html5
Windows
Ubuntu
Linux
C++ 声明中的显式限定
当第一个声明被注释掉时 以下命名空间定义无法编译 如果第一个声明foo未注释 那么它编译得很好 namespace Y void foo void Y foo 标准中的相关部分 8 3 1 说 当 declarator id 合格时 声明应
c
namespaces
declaration
languagelawyer
qualifiedname
到 const c 数组副本的结构化绑定应该是 const 吗?
考虑这段代码 demo https godbolt org z Nmz gN include
c
languagelawyer
C17
structuredbindings
std::valarray 的运算符* 有什么问题?
考虑以下 MCVE 其中我有两个值数组 其中w是两次v 在这里尝试一下 https godbolt org z JkXPNN include
c
C11
operators
languagelawyer
valarray
为什么 cppreference 将 type_traits xxx_v 快捷方式定义为内联 constexpr 而不仅仅是 constexpr?
为什么 cppreference 将 type traits xxx v 快捷方式定义为inline constexpr不仅仅是constexpr 例如 参见is integral v http en cppreference com w
c
languagelawyer
C17
inlinevariable
关于对象生命周期开始,C++ 标准意味着什么?
在 n3690 C 标准的 3 8 1 节中有这样的文字 The lifetime of an object of type T begins when storage with the proper alignment and size
c
standards
languagelawyer
自定义分配器与承诺和打包任务
标准的分配器构造函数是promise packaged task应该仅将分配器用于状态对象本身 或者应该保证这一点all 内部 相关对象 futures promise 为共享状态分配内存 futures task members 分配存储
visualc
C11
boost
languagelawyer
c14
为什么调用成员函数不会调用该对象的 ODR-USE?
Here in cppref http en cppreference com w cpp language initialization says 如果非内联变量 C 17 起 的初始化推迟到主 线程函数的第一条语句之后进行 它发生在第一
c
initialization
languagelawyer
onedefinitionrule
如何正确使用通过转发引用传递的可调用对象?
我习惯将 lambda 函数 和其他可调用函数 传递给模板函数并使用它们 如下所示 template
c
languagelawyer
C17
decltype
perfectforwarding
模板参数中的访问控制
灵感来自这个答案 https stackoverflow com a 54907320 4832499 它声称颠覆访问控制系统 我写了以下最小版本的黑客 template
c
languagelawyer
根据 C++ 标准,int 变量是对象吗?
下面您将找到 C 标准中对象的定义 介绍对象 1 http eel is c draft intro object 1 C 程序中的构造创建 销毁 引用 访问和 操纵物体 一个object由定义 6 1 创建 由新表达 8 3 4 隐式更改
c
languagelawyer
在没有正确原型的情况下调用 printf 是否会引发未定义的行为?
这个看起来无辜的程序是否会调用未定义的行为 int main void printf d n 1 return 0 是的 调用printf 没有适当的原型 来自标准头
c
printf
languagelawyer
undefinedbehavior
functionprototypes
C++ 使用对正在定义的变量的引用
根据标准 不考虑 以下代码是否有效 C bool f T r if r return true return false T x f x x T 众所周知 要在该项目使用的 GCC 版本中进行编译 4 1 2 和 3 2 3 甚至不让我开始
c
scope
languagelawyer
selfreference
objectlifetime
“constexpr”函数的“noexcept”行为
的措辞 expr unary noexcept 改变于C 17 之前 n4140 5 3 7 noexcept 运算符 expr unary noexcept https timsong cpp github io cppwp n4140
c
C17
languagelawyer
constexpr
noexcept
为什么主要编译器对 stdint.h 使用 typedef 而对 stdbool.h 使用 #define?
我刚刚注意到 gcc 和 clang 似乎都对 stdint h 使用 typedef 但对 stdbool h 使用 define 例子 clang 的 stdint h https clang llvm org doxygen stdi
c
include
cpreprocessor
languagelawyer
typedef
字符串终止符'\0'如何与整数常量0具有相同的值?
我有以下代码 include
c
Arrays
string
null
languagelawyer
受约束的成员函数和显式模板实例化
G 和 Clang 一致认为以下代码片段不是有效的 C template
c
languagelawyer
C20
cconcepts
explicitinstantiation
您如何解释使用标准引号指向基类和派生类成员的指针的这种差异?
demo https wandbox org permlink p2I9LjqfJCM2Adci include
c
languagelawyer
pointertomember
C 中的临时对象
在 C11 中 术语temporary lifetime被定义为 C11 6 2 4p8 结构体或联合体类型的非左值表达式 其中结构体或联合体包含数组类型的成员 递归地包括所有包含的结构体和联合体的成员 是指具有自动存储期限和临时生存期的对
c
languagelawyer
对象销毁对于加密目的可靠吗?
作为后续这个问题 https stackoverflow com questions 57515813 我正在想象一个存储敏感数据 例如加密密钥 的类 为了简化事情 假设不涉及继承 struct Credential std array
c
languagelawyer
使用地图提取和重新插入的限制性规则的基本原理
从 C 17 开始 关联容器 https en cppreference com w cpp container支持节点的提取及其重新插入 可能插入到相同类型的另一个容器中 返回的对象extract key is a 节点句柄 https
c
languagelawyer
C17
undefinedbehavior
«
1
2
3
4
5
6
7
...39
»