Python
Java
PHP
IOS
Android
Nodejs
JavaScript
Html5
Windows
Ubuntu
Linux
为什么禁止在 constexpr 函数中使用 goto?
C 14 对你能做什么和不能做什么有规则constexpr功能 其中一些 没有asm 没有静态变量 看起来相当合理 但标准也不允许goto in constexpr功能 即使它允许其他控制流机制 这种区别背后的原因是什么 我以为我们已经过去
c
c14
languagelawyer
constexpr
goto
为什么 fgets 接受 int 而不是 size_t?
功能如strcpy malloc strlen 和其他各种接受他们的参数或返回值作为size t代替int or an unsigned int出于显而易见的原因 一些文件功能 例如fread and fwrite use size t以及
c
languagelawyer
sizet
是否保证 sizeof(T[N]) == N * sizeof(T) ?
我一直假设 N 个元素类型的数组的大小T 由返回sizeof保证正好是N次sizeof T The 对这个问题的评论 https stackoverflow com questions 46457449 is it always the c
c
Arrays
languagelawyer
sizeof
嵌套名称说明符中的类型不完整
我尝试在嵌套名称说明符中使用不完整类型 如下所示 class A int b A c error incomplete type A used in nested name specifier class A static const in
c
languagelawyer
是什么导致了 gcc 中的模糊重载?
include
c
templates
languagelawyer
ambiguous
将 C++ 共享指针的别名构造函数与空共享指针一起使用
std shared ptr 有一个别名构造函数 允许新创建的shared ptr 与现有共享指针共享状态 同时指向其他对象 我正在考虑滥用这个构造函数将指针放入shared ptr中的某个全局对象 int global 0 int mai
c
C11
languagelawyer
C++ 中类型信息何时向后流动?
我刚刚看了 Stephan T Lavavej 的演讲CppCon 2018关于 类模板参数推导 在哪里某个点 https youtu be H ut6j1BYU t 941他顺便说 在 C 中 类型信息几乎永远不会向后流动 我不得不说 几
c
C17
languagelawyer
templateargumentdeduction
ctad
关于 C99 函数参数中数组大小“保证”功能的实际优势?
C99 引入了一种新的函数参数表示法 其中static关键字可用于指定参数至少有 N 个元素 6 7 6 3 函数声明符 p7 https port70 net 7Ensz c c11 n1570 html 6 7 6 3p7 将参数声明为
c
static
languagelawyer
C99
根据 C++17 标准草案在块作用域中声明为“extern”的函数的链接
来自C 17 标准草案 http www open std org jtc1 sc22 wg21 docs papers 2014 n4296 pdf 3 5 6 在块作用域中声明的函数名称和在块作用域 extern 中声明的变量名称 声明
c
languagelawyer
iso
C17
Linkage
memcpy/memmove 到联合成员,这是否设置“活动”成员?
重要说明 一些评论者似乎认为我是从工会抄袭的 仔细看memcpy 它从普通旧地址复制uint32 t 它不包含在联合中 另外 我正在复制 通过memcpy 到工会的特定成员 u a16 or u x in a union 不直接到整个联盟本
c
C11
languagelawyer
unions
objectlifetime
cpp.react库的C++源代码中奇怪的“->* []”表达式
这是我在文档中找到的 C 片段cpp react 库 https github com schlangster cpp react implicit parallelism auto in D MakeVar 0 auto op1 in g
c
C11
languagelawyer
operatorarrowstar
C++ 编译器必须选择两个转换运算符中的哪一个?
一个类可以声明多个转换运算符 特别是 它可以是某种类型的转换运算符以及同一类型的常量引用 如果请求转换为该类型 则必须选择两个转换运算符中的哪一个 考虑一个例子 include
c
operatoroverloading
languagelawyer
下面的代码片段中 C++ 标准中的哪些位置不允许使用“a = b + {1, 2}”? [复制]
这个问题在这里已经有答案了 标准中的位置是a b 1 2 下面不允许 class complex double re im public complex double r double i re r im i complex operato
c
languagelawyer
取消引用 null 并不总是 UB 吗?
我一直知道一个事实 即标准强制取消引用null是UB 然而 Link 1 http std dkuug dk JTC1 SC22 WG21 docs cwg active html 232 says p 0 p 本质上并不是一个错误 并提供
c
languagelawyer
undefinedbehavior
在没有诊断的情况下,保守函数中是否会出现显式指定的未定义行为
脱离评论here https stackoverflow com a 76948726 1013719 3 简介 defs 3 65 defns undef https eel is c draft defns undefined says
c
languagelawyer
C20
无捕获 lambda 是结构类型吗?
P1907R1 http www open std org jtc1 sc22 wg21 docs papers 2019 p1907r1 html 接受 C 20 引入结构类型 它们是非类型模板参数的有效类型 GCC 和 Clang 都接
c
templates
Lambda
languagelawyer
C20
浮点除以零的行为
Consider include
c
floatingpoint
languagelawyer
undefinedbehavior
dividebyzero
C++20 中模板对非类型文字参数的部分特化:clang 和 gcc 不一致
玩弄文字 非类型模板参数 https ctrpeach io posts cpp20 string literal template parameters 在c 20中 我发现g 和clang 不同意以下代码 include
c
g
languagelawyer
C20
Clang
模板内定义的友元函数的实例化
这是后续的这个问题 https stackoverflow com q 67305642 4117728 最初的案例是另外一回事 但在我写出一个糟糕的答案和OP澄清的过程中 事实证明我们可能需要语言律师的帮助来理解发生了什么 在 Think
c
templates
languagelawyer
friend
templateinstantiation
为什么 std::optional::operator=(U&&) 要求 U 是非标量类型?
对于可选的template
c
languagelawyer
C17
optiontype
1
2
3
4
5
6
...41
»