njames93 added a comment.

In D117593#3273562 <https://reviews.llvm.org/D117593#3273562>, @aaron.ballman 
wrote:

> Hmmm, this is a rule for checking a specific style guide. 
> https://google.github.io/styleguide/cppguide.html#Implicit_Conversions 
> doesn't say that `explicit(false)` is a reasonable marking. In fact, it says 
> "Implicit conversions can sometimes be necessary and appropriate for types 
> that are designed to be interchangeable, for example when objects of two 
> types are just different representations of the same underlying value. In 
> that case, contact your project leads to request a waiver of this rule."
>
> So I think this behavior needs to be behind a flag so that the default 
> behavior continues to match what the style guide requires (or the style guide 
> should be updated to clarify the behavior of `explicit(false)`).

My understanding of the rule(as a non Googler) was that `explicit(false)` is an 
effective way to disable the rule by explicitly declaring the constructor to be 
implicit. Which is much cleaner than throwing `NOLINT` markers about.
In any case this c++20 syntax is not supported as the current fixit produces 
invalid code, as evidenced in the initial bug report.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D117593/new/

https://reviews.llvm.org/D117593

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to