You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

clang-tidy 17:如何仅对类所有成员强制m_前缀,排除结构体?

clang-tidy 17 配置类成员强制m_前缀(排除结构体)

你需要实现的是:让类的所有访问级别成员(public/private/protected)都强制使用m_前缀,同时结构体成员不受约束。单独配置readability-identifier-naming.ClassMemberPrefix: 'm_'仅对类的私有/保护成员生效,因为公共类成员默认遵循ClassPublicMemberPrefix规则,而非ClassMemberPrefix。

正确配置方案

使用以下 YAML 配置,明确指定类的所有访问级别成员前缀,同时禁用结构体的成员前缀检查:

Checks: 'readability-identifier-naming'
readability-identifier-naming:
  # 类的所有成员前缀设为 m_
  ClassMemberPrefix: 'm_'
  ClassPublicMemberPrefix: 'm_'
  ClassProtectedMemberPrefix: 'm_'
  # 结构体所有成员前缀设为空,禁用检查
  StructMemberPrefix: ''
  StructPublicMemberPrefix: ''
  StructProtectedMemberPrefix: ''
  StructPrivateMemberPrefix: ''

之前尝试的问题说明

  • 示例1:仅配置ClassMemberPrefix且MemberPrefix为空,公共类成员因未匹配到ClassPublicMemberPrefix规则,所以无警告
  • 示例2:MemberPrefix是通用规则,会作用于所有类和结构体的成员,不符合需求
  • 示例3:配置MemberPrefix且清空PrivateMemberPrefix,会导致类和结构体的私有成员都不触发警告,同时结构体公共成员仍会被检查,不符合要求

内容的提问来源于stack exchange,提问作者Jorge

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 12:20:04