compiler-bug相关内容

为什么在返回从函数的返回类型派生的类型的本地对象时不选择移动构造函数?

以下代码被 Clang 和 GCC(主干版本): #include 结构基础{Base() = 默认值;Base(Base const&) = 删除;Base(Base&&) = 默认值;};结构派生:基础{派生()=默认;Derived(Derived const&) = 删除;派生(派生&&)=默认;};自动 foo()->根据{导出d;返回 d;//这里有错误} 导致以下 ..
发布时间:2022-01-19 15:00:51 C/C++开发

“这个"由 lambda 捕获是不正确的.GCC编译器错误?

在过去的几天里,我一直在调试一个涉及 C++ 中 lambda 的奇怪问题.我已将问题归结为以下症状: this 指针在 lambda 中损坏(注意:this 总是被副本捕获,因此 lambda 应该有自己的 this 指针,指向 App 对象) 只有在 std::cout 打印语句存在时才会发生,并且在创建 lambda 之前调用.print 语句可能看起来完全不相关(例如 print ..
发布时间:2022-01-17 14:04:16 C/C++开发

命名空间内的运算符 new

命名空间 X{void* operator new (size_t);} 给出错误信息: error: ‘void* X::operator new(size_t)’ 不能在命名空间中声明 它是 gcc 编译器错误 吗?在较旧的 gcc 版本中,它似乎正在工作.任何想法,为什么不允许? 用例:我想只允许类的自定义 operator new/delete 并希望禁止全局 new/oper ..
发布时间:2022-01-14 23:26:06 C/C++开发

std::initializer_list 中的 std::shared_ptr 似乎过早被破坏

编辑:这确实是由 Visual Studio 中的错误引起的 - 它已经得到修复.将更新 2 应用到 Visual Studio 后,该问题无法重现(此处提供候选版本).我道歉;我以为我的补丁是最新的. 当我在 Visual Studio 2013 中运行以下代码时,我终生无法弄清楚为什么会出现段错误: #include #include 结构基{虚拟 int GetValue() { 返 ..

可能是 Visual Studio 2015 中的 C# 编译器错误

我认为这是一个编译器错误. 以下控制台应用程序在使用 VS 2015 编译时可以完美地编译和执行: 命名空间 ConsoleApplication1{课程计划{静态无效主(字符串 [] args){var x = MyStruct.Empty;}公共结构 MyStruct{公共静态只读 MyStruct Empty = new MyStruct();}}} 但现在变得很奇怪:这段代码可以 ..
发布时间:2021-12-30 17:37:35 C#/.NET

为什么 java 5+ 中的 volatile 不能确保来自另一个线程的可见性?

根据: http://www.ibm.com/developerworks/library/j-jtp03304/ 在新的内存模型下,当线程 A 写入易失性变量 V,而线程 B 从 V 读取时,在写入 V 时 A 可见的任何变量值现在保证对 B 可见 互联网上的许多地方都声明以下代码不应打印“错误": 公共类测试{volatile 静态私有 int a;静态私有 int b;p ..
发布时间:2021-12-28 22:46:37 Java开发

'委托'System.Action' 不接受 0 个参数.这是 C# 编译器错误(lambdas + 两个项目)吗?

考虑下面的代码.看起来完全有效的 C# 代码对吗? //项目B使用系统;公共委托无效 ActionSurrogate(Action addEvent);//公共委托 void ActionSurrogate2();//使用 ActionSurrogate2 而不是 System.Action 会导致同样的错误//使用虚拟参数 (Action) 会导致相同的错误//项目A公共静态类 Class1 ..
发布时间:2021-12-23 22:02:25 C#/.NET

使用 printf 的 %s 说明符打印 NULL 的行为是什么?

遇到一个有趣的面试问题: 测试1:printf("测试%s\n", NULL);printf("测试%s\n", NULL);印刷:测试(空)测试(空)测试2:printf("%s\n", NULL);printf("%s\n", NULL);印刷分段错误(核心转储) 虽然这可能在某些系统上运行良好,但至少我的会引发分段错误.这种行为的最佳解释是什么?上面的代码是用 C 编写的. 以下是 ..
发布时间:2021-12-03 13:06:29 服务器开发

“这个"由 lambda 捕获是不正确的.GCC 编译器错误?

最近几天,我一直在调试一个涉及 C++ 中 lambda 的奇怪问题.我已将问题简化为以下症状: this 指针在 lambda 内部被破坏(注意:this 总是被副本捕获,因此 lambda 应该获得自己的 this 指针,指向 App 对象) 它仅在 std::cout 打印语句存在时发生,并在创建 lambda 之前调用.打印语句可能看起来完全不相关(例如打印“你好!").print ..
发布时间:2021-11-17 21:52:27 C/C++开发

在可为空的可选参数中使用 C# 7.1 默认文字会导致意外行为

C# 7.1 引入了一项名为“默认文字"的新功能,该功能允许使用新的 default 表达式. //而不是写Foo x = default(Foo);//我们可以写Foo x = 默认值; 对于 Nullable 类型,默认值为 null,按照通常的用法,它按预期工作: int?x = 默认(整数?);//x 为空内部?x = 默认值;//x 为空 但是,当我尝试使用新的默认文字作为 ..
发布时间:2021-06-10 18:47:34 C#/.NET

将函数转换为引用类型,在标准中存在漏洞还是在编译器中出现错误?

根据标准,支撑的函数强制转换始终会产生prvalue, 解决方案 这是 CWG1521 : T {expr} 以及引用类型 根据8.2.3 [expr.type.conv]第4段, 类似地,简单类型说明符或类型名称说明符后跟括号初始列表会创建一个临时对象指定类型的直接列表初始化(11.6.4 [dcl.init.list]),带有指定的括号初始化列表,其值是该临时对象作为pr ..
发布时间:2021-04-21 19:42:17 C/C++开发

“冗余转换为java.lang.Object"警告必要的演员表

考虑以下 最小的,可复制的示例 : 接口代码{静态void main(String [] args){象征(String.valueOf(真的 ?'一种' :真的 ?'b':真的 ?'C' :失败()));}私有静态无效符号(字符串符号){System.out.println(symbol);}私有静态R fail(){抛出空}} (接近最小值, true 是一个有用的布尔表达式的代 ..