这个例子会导致未定义的行为吗?
可能的重复: 未定义的行为和序列点 变量i更改了两次,但是下一个示例会导致未定义的行为吗? #include int main() { int i = 5; std::cout << "befo…
C++11 中 std::string 总是以 null 结尾吗?
Herb Sutter 在其网站上的 2008 年帖子中指出: 出于与并发相关的原因,有一项积极的提案要求在 C++0x 中进一步加强这一点,并要求空终止,并可能禁止…
为什么 std::swap 移至 ?
为什么将 std::swap 移至 C++11 的 标头? N3290 C.2.7 说: 17.6.3.2 对原始功能的影响:函数交换移至不同的标题 基本原理:删除对交换的依赖。 对原…
使用点之后模板函数的特化会破坏编译
考虑下一个示例: #include template void foo(); int main(int argn, char* argv[]) { foo(); } template<> void foo() { std::cout<<1<
初始化器到底什么时候被临时销毁?
我今天构建了这个实验,在回答了一些问题之后, struct A { bool &b; A(bool &b):b(b) { } ~A() { std::cout << b; } bool yield() { return true; } …
什么时候我们需要有一个默认构造函数?
我的问题很简单。什么时候我们需要有一个默认构造函数? 请参考下面的代码: class Shape { int k; public: Shape(int n) : k(n) {} ~Shape() {} }; c…
兼容的 Java 实现可以不包含所有标准库吗?
我正在致力于用 JavaScript 编写 JVM 的实现,这意味着用 JavaScript 为标准库编写大量本机代码。然而,标准库中有大量的类仅由少数程序使用,并且尝…
标准库分配器指针类型的要求
我正在尝试编写一个四叉树稀疏矩阵类。简而言之,quadtree_matrix 是 quadtree_matrix 的零矩阵或四元(ne, nw, se, sw) >。 我最终想测试不同的分配方…
执行memcpy(0,0,0)是否保证安全?
我不太熟悉 C 标准,所以请耐心等待。 我想知道标准是否保证 memcpy(0,0,0) 是安全的。 我能找到的唯一限制是,如果内存区域重叠,则行为未定义......…
执行这两个 C++初始化语法在语义上有什么不同吗?
假设以下代码是可以正确编译的合法代码,T 是类型名称,x 是变量名称。 语法一: T a(x); 语法二: T a = x; 这两个表达式的确切语义是否有所不同?如…
printf(“%x”,1) 是否会调用未定义的行为?
根据C标准(6.5.2.2第6段) 如果表示被调用函数的表达式的类型不包含 原型,对每个参数执行整数提升,并且参数 将 float 类型提升为 double 类型。这…
正在手动模拟 C++ 中删除运算符的效果;正式非法?
我意识到这是不明智的,我不建议这样做,但我很好奇以下内容是否实际上在形式上是非法的:据 #include struct X { ~X() { std::cout << "~X()\n"; } }…
在从放置 new 获得的指针上使用运算符删除的合法性
我确信这段代码应该是非法的,因为它显然不起作用,但它似乎是 C++0x FCD 允许的。 class X { /* ... */}; void* raw = malloc(sizeof (X)); X* p = n…
__PRETTY_FUNCTION__、__FUNCTION__、__func__ 之间有什么区别?
__PRETTY_FUNCTION__、__FUNCTION__、__func__ 之间有什么区别,它们的记录在哪里?我如何决定使用哪一个?…