cost 254 ms
在具有默认非平凡构造函数的结构上使用值初始化时,结构标量成员是否被零初始化 - Are struct scalar members zero-initialized when using value-initialization on a struct with a default non-trivial-constructor

如果我有以下结构 我用 这应该值初始化对象并根据标准执行以下操作: 如果 T 是没有用户提供或删除的默认构造函数的(可能是 cv 限定的)类类型,则该对象被零初始化并检查默认初始化的语义约束,并且如果 T 具有非平凡的默认构造函数, 对象是默认初始化的; struct test有 ...

如何停止这个模板化的 function 值初始化新构造的 object? - How do I stop this templated function value-initializing a new constructed object?

如果当我创建一个新的 object 并且我没有提供任何构造函数 arguments 时,我可以为构造函数 arguments 提供参数包,那么结果将是: new T(); 如果 object 没有用户提供的构造函数,它将对它进行值初始化。 我该如何阻止这种情况发生? ...

为什么在已删除的默认 ctor 旁边定义一个空的复制 ctor 会使空列表的值初始化失败? - Why does defining an empty copy ctor beside a deleted default ctor make a value initialization with empty list fail?

简而言之,为什么下面的代码表现得像评论中描述的那样?struct A { A() = delete; //A(const A&) {} // uncommenting this... }; int main() { A a{}; // ... breaks thi ...

在 C++ 中,指针类型数组的元素是否默认保证初始化为 nullptr? - In C++ are elements of an array of pointer type by default guaranteed to be initialized to nullptr?

如果我有这样的代码 代码运行后是否保证x->subnodes[0] == nullptr ? 我不是 C++ 方面的专家,我发现 C++ 规格令人生畏。 这在实践中是可行的,但是规范是否保证在这种情况下将 nullptr 放入数组的每个元素中(而不是说,可能是垃圾)? 到目前为止,我还没有通 ...

在 C++ 中初始化变量的 = 和 {} 语法之间的区别 - Difference between = and {} syntaxes for initializing a variable in C++

我已经阅读了很多 C++ 代码,并且遇到了两种初始化变量的方法。 方法一: 方法二: 我知道int score {}; 将分数初始化为 0,因此int score = 0; 这两者有什么区别? 我已经阅读了初始化:括号与等号,但这并没有回答我的问题。 我想知道等号和大括号之间有什么区别, ...

用作初始值设定项时,空括号(“T()”)和空大括号(“T{}”)有什么区别吗? - Are there any difference in empty parentheses (“T()”) and empty braces (“T{}”) when used as initializers?

一般来说,括号和大括号是非常不同的。 对于最小的可重现示例: 但是,由于空大括号使用值初始化而不是std::initializer_list构造函数,因此空括号和空大括号用作初始值设定项时有什么不同吗? 更正式地,给定类型T , T()和T{}是否可能不同? (两者都可能是格式错误的。) ...

从signed char到整数,过早升级的值初始化? - Value initialization from signed char to integer, premature promotion?

在这段代码中: x应该是-5还是-261 ? 在我的理解中,初始化表达式已经signed char类型,并且一旦计算出初始化程序,类型转换应该在以后发生。 因此, v - '0' * (signed char)n应该等于-5因为这是signed char值估值中的-261的等价值 ...

值初始化是否适用于原子对象? - Does value initialization work for atomic objects?

通过这里的工作 ,我认为std::atomic<T> a{}实际上是零初始化a 。 我一直在这么想,并一直在使用它直到这个 。 在解释我对此的理解之前,我想表明,至少,gcc和clang正在实践中这样做。 gcc和clang上的输出均为0 。 以下是我解释为什么这应 ...

安全地依赖unordered_map(hashmap)中的初始化值 - Safe to rely on a initialised value in an unordered_map (hashmap)

假设我想构造一个std::unordered_map<char, int>来映射字符串中字符的频率。 我会做类似的事情 对我来说,这很危险,因为我怎么知道hashmap[*pch]++会在hashmap条目的值(从0开始)中构造一个整数? 我在哪里可以找到此保证(如果存在 ...

嵌套类的值初始化 - Value initialization of nested classes

由值初始化规则。 值初始化发生: 1,5)使用由一对空括号或大括号组成的初始化程序创建无名临时对象时(自C ++ 11起); 2,6)当具有动态存储持续时间的对象是由带有以空括号或大括号组成的new表达式的new表达式创建的(自C ++ 11起); 3,7)使用带有一 ...

获取默认初始化(NOT值/零初始化)POD作为右值 - Get a default-initialized (NOT value/zero-initialized) POD as an rvalue

是否可以将类型A的右值传递给foo()而不进行值初始化? 我们必须使用值初始化还是左值? 你可能会问,当“成本”不超过10纳秒时,避免价值初始化的重点是什么。 这样的情况怎么样:我们正在寻找遗留应用程序中由于使用valgrind进行未初始化的内存访问而导致的错误,并且零不被视为应用程 ...

c ++ 11聚合初始化之前的值初始化 - c++11 value-initialization prior to aggregate-initialization

我尝试将@bolov的第一个接受的答案理解为Deleted默认构造函数。 仍然可以创建对象...有时 [1] 好像我发现了一个错误,所以它弄乱了整个解释。 @bolov解释了为什么这个代码成功在c ++ 11中编译: 情景A. 为什么这个代码FAILS要用c ++ 1 ...


 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM