[PATCH] D91641: [CMake] Fix ExtensionDependencies.inc with multiple extensions
serge via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Tue Nov 17 22:05:18 PST 2020
serge-sans-paille added a comment.
In D91641#2401024 <https://reviews.llvm.org/D91641#2401024>, @Meinersbur wrote:
> There seems to be one set of braces too much, makes me wonder how it ever worked.
The « extra » set of brace was for list initialization, using that rule (from https://en.cppreference.com/w/cpp/language/list_initialization)
> Otherwise, the constructors of T are considered, in two phases:
>
> All constructors that take std::initializer_list as the only argument, or as the first argument if the remaining arguments have default values, are examined, and matched by overload resolution against a single argument of type std::initializer_list
>
> If the previous stage does not produce a match, all constructors of T participate in overload resolution against the set of arguments that consists of the elements of the braced-init-list, with the restriction that only non-narrowing conversions are allowed. If this stage produces an explicit constructor as the best match for a copy-list-initialization, compilation fails (note, in simple copy-initialization, explicit constructors are not considered at all).
Anyway, explicit is better than implicit, so this diff is definitively fine :-)
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D91641/new/
https://reviews.llvm.org/D91641
More information about the llvm-commits
mailing list