Lobsters | 📄 原文链接 | 2026-07-19 收录

GCC 和 Clang 都不符合标准 C++

来源:sebsite.pw — 2026-07-08

📋 概述

C++ 标准规定函数类型携带 "language linkage"(如 C++、C 等),并且明确指出不同语言链接的函数类型属于不同的类型。然而 GCC 和 Clang 并没有在函数类型中保存语言链接信息,导致 extern "C" 函数类型与普通 C++ 函数类型被视为相同。这一行为违反了标准,但也让基于函数指针类型的重载代码无法编译。作者认为问题出在标准本身,应当将其改为实现定义行为,因为修正编译器行为会破坏 ABI 且并无实际收益。

🔑 核心要点

💡 金句

这里的责任不在 GCC 或 Clang,而在标准本身。
← 返回 Lobsters 首页