[PATCH] D91641: [CMake] Fix ExtensionDependencies.inc with multiple extensions

Michael Kruse via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Nov 18 10:50:06 PST 2020


Meinersbur added a comment.

In D91641#2401724 <https://reviews.llvm.org/D91641#2401724>, @serge-sans-paille wrote:

> 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). 

Thanks for clarifying.


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