language-lawyer 问答列表

“外部声明或定义”不是我所想的吗?

作者:Luchian Grigore 提问时间:5/12/2013

17.6.2.2 标头 [using.headers] 3) 翻译单元只能在任何 外部声明或定义,并应包括标题 在该翻译单元中的第一个引用之前,在词汇上对任何 在该标头中声明的实体。 如果我的解释...

在最接近的封闭范围内使用 using 指令的局部外部变量声明

作者:Supremum 提问时间:7/19/2015

根据 c++ 标准,这个程序的格式是否正确? namespace X { int i = 1; } using namespace X; int main() { extern int i; ...

在签名中使用另一个成员模板函数的行外成员模板函数定义

作者:psyill 提问时间:3/14/2017

我在一些现实生活中的C++11代码中遇到了这个问题,但我把它归结为: template<int i> struct Dummy {}; template<typename T> struct Fo...

递增 null 指针是否定义明确?

作者:Luchian Grigore 提问时间:4/23/2015

在进行指针算术时,有很多未定义/未指定行为的例子 - 指针必须指向同一数组内部(或末尾的数组),或指向同一对象内部,限制何时可以基于上述内容进行比较/操作等。 以下操作是否定义明确? int* p...

为什么不能直接定义匿名 struct/class-es 的模板化别名?

作者:Anirban Sarkar 提问时间:4/27/2019

我可以创建以下内容: using Foo = struct { /*Implementation*/ }; template<class> using Bar = Foo; 但是,不允许出现以...

两个指针比较相等转换为整数类型比较相等吗?

作者:Some Name 提问时间:5/21/2019

问题:如果指针比较相等,它们的整数转换值是否也相等? 例如: void *ptr1 = //... void *ptr2 = //... printf("%d", ptr1 == ptr2); /...

函数模板是否可以在高阶函数调用中用作一等公民?

作者:bitmask 提问时间:10/12/2022

将函数模板作为参数传递给另一个函数模板总是有点棘手。通常,必须求助于创建一个 lambda 对象来调用原始函数。 例 template <typename It> void f(It, It) {}...

使用不同的数据结构实现 std::set

作者:bartop 提问时间:9/23/2019

受到这个问题的启发:为什么 std::set 不直接称为 std::binary_tree?我想出了一个我自己的。红黑树是唯一可能的数据结构填充要求,还是有其他要求?例如,另一个自平衡树 - AVL ...

C++ - 为什么这里需要“模板”关键字?

作者:Martin 提问时间:2/5/2020

我有以下代码: template <typename TC> class C { struct S { template <typename TS> void fun() const {}...

错误:使用 clang 没有可行的重载,使用 gcc 编译

作者:francesco 提问时间:6/23/2020

以下程序使用 g++(版本 10.1.0)可以正常编译,但不能使用 clang++ (10.0.0) #include <iostream> template <typename U> struc...


共46条 当前第4页