今天研究c++ const 的问题,顺便做了一下gcc 与 clang 的代码编译错误提示对比,结论是,clang这个晚辈确实比gcc人性化多了。
参考:
http://www.cnblogs.com/Fancyboy2004/archive/2008/12/23/1360810.html
以下是测试代码:
#include <cstdlib>
class Apple
{
public:
Apple (){}; /* constructor */
int GetCount() /* 非const 成员函数 */
{
return m_iData;
};
protected:
int m_iData;
}; /* ----- end of class Apple ----- */
using namespace std;
int main ( int argc, char *argv[] )
{
const Apple apple;
apple.GetCount(); /* 错误 */
return EXIT_SUCCESS;
} // ---------- end of function main ----------
//save to a.cc
gcc编译命令:
$ g++ a.cc
a.cc: In function ‘int main(int, char**)’:
a.cc:22: error: passing ‘const Apple’ as ‘this’ argument of ‘int Apple::GetCount()’ discards qualifiers
clang:
$ clang++ a.cc
a.cc:22:5: error: member function 'GetCount' not viable: 'this' argument has
type 'const Apple', but function is not marked const
apple.GetCount(); /* 错误 */
^~~~~
a.cc:8:13: note: 'GetCount' declared here
int GetCount() /* 非const 成员函数 */
^
1 error generated.
分享到:
相关推荐
主要给大家介绍了关于iOS报clang: error: no input files错误的解决方法,文中通过图文介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。
VS2019使用clang-format实现源代码格式化排版 https://libaineu2004.blog.csdn.net/article/details/112760035
今天编写一个简单的代码,报错了: template class matrix final { public: matrix(uint32_t size): SIZE(size) { _data = static_cast(malloc(SIZE * sizeof(T*))); for (uint32_t i = 0; i < SIZE; ++i...
asyncomplete-clang.vim:用于SpaceVim的分叉式clang源代码
Docker Clang格式 Docker容器,其中包含运行Clang Format所需的所有工具。 每个容器将仅包含一个版本的Clang格式,但将包含所有需要的其他库。用法有两种使用此容器的“和“模式的方法。交互的这将使您进入交互式...
clang-expand:一种无需进行源代码体操即可轻松进行重构的clang工具
LLVM clang编译器代码分析 LLVM clang编译器代码分析
该插件使用clang准确完成C和C ++代码。安装您需要Vim 7.3或更高版本,并带有python支持,最好具有隐藏功能。不使用任何插件管理工具只需将文件放在~/.vim/使用插件管理器,运行时路径管理器或Vim8包遵循相应文档中...
run-clang-format:围绕clang格式的包装器脚本,适合于插入多个文件并用于持续集成
clang2nim:clang2nim旨在将cc ++项目无缝转换为Nim本机代码。 工作正在进行中
lang格式 这是clang格式3.7.0的补丁,其中添加了...### BreakBeforeElse(bool)如果为true ,将在'else'之前放置一个中断,例如Stroustrup代码样式。 这: if (condition) { ... } else { ... } 成为: if (condi
linux环境编译安装clang12.0.0源代码压缩包合集,文件列表 llvm-12.0.0.src.tar.xz clang-12.0.0.src.tar.xz clang-tools-extra-12.0.0.src.tar.xz compiler-rt-12.0.0.src.tar.xz
clang-format没有一种令人愉快的方式来输出哪些文件格式不正确,这不适用于CI或代码掉落。 解决此限制的现有技术以。 Artichoke clang-format不需要Python或现有的clang安装。 该运行器更易于分发,因为它可以与...
重要的提示 此最小扩展是在发布VSCode语言服务器协议时完成的,除安装clang之外不需要任何其他操作。 尽管,并且LLVM团队创建了自己的实现,名为 ,该实现也具有。 安装 启动快速打开( ⌘ + P )并输入 ext ...
检查在include伪指令(例如#include "../something/file.h" )中使用的路径实例(并引起错误) ban-pp-tokens-plugin 检查源词法化过程中是否发现了被禁止的标记(并引发错误)。这意味着即使被禁止使用的令牌最终...
lang格式包含git和clang的最小docker镜像以运行git-clang-format 。 提供check-format.sh ,它将任何git ref作为参数: check-format.sh将在每个单独的提交上运行git-clang-format --diff ,并且如果创建任何diff都...
lang格式 clang格式的配置文件
lang工具链 可以在这里找到Clang工具链仓库: :
确保对代码的更改进行正确的格式化是开发工作流程的重要组成部分。 请注意, check-clang-format和git-clang-format命令要求Python在全球范围内可用。 我们建议使用git pre-commit钩子。 您可以如下配置: 在您的...