标记的问题 [language-lawyer]

30
5 回复
为什么不能将析构函数标记为constexpr?
在C ++中,您可以将许多内容声明为 constexpr :变量,函数(包括成员函数和运算符),构造函数,以及自C ++ 1z以来,还 if语句< /a>和 lambda表达式。但是...
18
1 回复
C长型是多久?
我知道这个标题看起来很愚蠢,但我认为值得一提。 以此声明(或定义,例如):  _Thread_local long volatile static int _Atomic const long unsigned x...
23
3 回复
ADL是调用朋友内联函数的唯一方法吗?
让我们在f的声明中定义S,作为S的朋友功能:  struct S { friend void f() {} }; 我无法找到拨打f的方法。 那么,只有使用参数依赖查找?  stru...
69
4 回复
保证执行memcpy(0,0,0)是否安全?
我不太熟悉C标准,所以请耐心等待。 我想知道,按标准保证memcpy(0,0,0)是安全的。 我能找到的唯一限制是,如果内存区域重叠,那么行为是未定义的.........
15
2 回复
为什么cppreference将type_traits xxx_v快捷方式定义为内联constexpr而不仅仅是constexpr?
为什么cppreference将type_traits xxx_v快捷方式定义为inline constexpr而不仅仅是constexpr? 例如,请参阅 is_integral_v :  template< class T &...
14
2 回复
构造函数模板可以在类模板的c ++ 17参数推导中导致歧义
考虑一个简单的例子:  template <class T> struct foo { template <template <class> class TT> foo(TT<T>&&)...
124
9 回复
从同一个向量push_back元素是否安全?
 vector<int> v; v.push_back(1); v.push_back(v[0]); 如果第二个push_back导致重新分配,则向量中对第一个整数的引用将不再有效。那么这不安全吗...
31
3 回复
int a = 1,是|| 1一个常数表达式?
N4527 5.20 [expr.const] p5   常量表达式是glvalue核心常量表达式,其值指的是一个实体   允许的常量表达式结果(如下定义),或者是一个prvalue核心...
29
5 回复
编译器检查未实例化的模板代码是什么?
例如,以下代码段使用gcc-4.9和clang-602 进行编译  class Base {...
11
2 回复
具有非公共析构函数的std :: is_constructible类型
std::is_constructible 对具有私有或受保护的析构函数的类型的预期结果是什么? 例如,我仍然可以在堆上构造这样的对象,即使只有朋友可以释放它:  #...
14
1 回复
std :: to_string线程安全吗?
我希望使用 std::to_string 将整数类型转换为字符串,但我看到了这一段:    std::to_string依赖于std::locale进行格式化,以及   因此可以从多个线程并...
22
1 回复
memset编写的对象的有效类型是什么?
代码1:  unsigned int *p = malloc(sizeof *p); memset(p, 0x55, sizeof *p); unsigned int u = *p; 代码2:  void *d = malloc(50); *(double *)d =...
18
2 回复
为什么std :: function :: argument_type已被弃用?
我在 cppreference 上看到std::function::argument_type在C ++ 17中被弃用了。它背后的原因是什么? ISO WG21论文提出了哪些建议?      18 2个答案   ...
57
5 回复
int8_t和uint8_t是char类型吗?
鉴于这个C ++ 11程序,我应该期待看到一个数字还是一个字母?还是没有期望?  #include <cstdint> #include <iostream> int main() { in...
57
2 回复
在C ++ 11 lambda中通过引用捕获引用
考虑一下:  #include <functional> #include <iostream> std::function<void()> make_function(int& x) { return [&]{ s...
19
1 回复
constexpr头文件中的全局常量和odr
不幸的是,我对constexpr,头文件中声明的全局常量以及odr感到有些困惑。 简而言之:我们可以从这里结束 https://isocpp.org/files/papers/n4147.pdf...
20
1 回复
静态向量内部数据布局 - `union` vs`std :: aligned_storage_t` - 巨大的性能差异
假设你必须实现一个static_vector<T, N>类,它是一个完全存在于堆栈中的固定容量容器,永远不会分配,并暴露出类似std::vector的接口。 (Boost提供...
73
1 回复
静态成员函数中的`this`类型?
在C ++ 5.1.1 /3 [expr.prim.general]中它说:   类型和值类别[this]在静态成员函数中定义。 这是什么意思?它有什么关系? 请注意:    this不应出...
问 6年前
43
5 回复
重复的typedef - 在C中无效但在C ++中有效吗?
我想要一个标准的参考,为什么以下代码在C中触发了一个合规性警告(用gcc -pedantic测试;“typedef redefinition”),但在C ++中很好(g++ -pedantic):  ...
35
4 回复
将联合重新解释为不同的联合
我有一个标准布局联合,其中包含大量类型:  union Big { Hdr h; A a; B b; C c; D d; E e; F f; }; A至F中的每一种都是...
问 1年前
26
2 回复
为什么`make_unique <T [N]>`不允许?
假设命名空间std。 C ++ 14委员会草案N3690因此定义了std::make_unique:    [n3690: 20.9.1.4]: unique_ptr创作 [unique.ptr.create]       tem...
15
1 回复
是否可以在函数指针声明中使用`auto`关键字作为返回类型进行初始化?
以下代码使用 clang ++ 3.8.0 和 g ++ 7.2.0 (编译标志为-std=c++14 -O0 -Wall -Wextra -Werror -pedantic-errors):  #include <iostream> in...
19
1 回复
C ++ 14警告:变量的模板头太多(应为0)
在尝试使用最近的g ++ - 5编译器时,我在一个文件中写下了以下语句:  template<T> T a; template<> int a = 1; 结果是:   警告:a的...
67
4 回复
可能是sizeof(T *)!= sizeof(const T *)的情况?
我正和我的老板争论这件事。他们说“是的,他们可能会有所不同。” 对于sizeof(T*) != sizeof(const T*)型,T是否可能?      67 我觉得标题可能是案例...
问 3年前
50
3 回复
Fortran:整数* 4 vs整数(4)vs整数(kind = 4)
我正在尝试学习Fortran,我看到很多不同的定义被传递,我想知道他们是否正在努力完成同样的事情。以下是什么区别?  integer*4  integer(4) integer...
问 2年前