C++ Logo

sg7

Advanced search

Re: [SG7] P1887R0 attribute predicades

From: Andrew Sutton <asutton.list_at_[hidden]>
Date: Tue, 10 Nov 2020 12:59:08 -0500
Corentin, you wrote a paper on this topic, n'est ce pas?

Andrew


> On Tue, 10 Nov 2020 at 15:22, Cleiton Santoia via SG7 <
> sg7_at_[hidden]> wrote:
>
>> namespace std::meta {
>> template consteval <typename Attr> // Need to be a template ?
>> bool has_attribute(info x);
>>
>> template consteval <typename Attr> // template parameter only in
>> result ?
>> Attr attribute(info x);
>> }
>>
>> Given:
>>
>> public X {};
>> public Y { Y(int) {} };
>>
>> [[X]]
>> struct V {};
>> [[Y(10)]]
>> struct W {};
>>
>> constexpr auto x = std::meta::attribute<X>(reflexpr(V)); // ok x = X();
>> constexpr auto y = std::meta::attribute<Y>(reflexpr(W)); // ok y =
>> Y(10);
>>
>> but what if you ask for
>>
>> constexpr auto y2 = std::meta::attribute<Y>(reflexpr(V)); ???
>>
>> since Y cannot be default initialized ?
>>
>
> Program is il-formed
>
>
>>
>>
>>
>> I believe std::meta::attribute should a plural filtered funcion
>>
>> template consteval
>> std::vector<info> attributes_of( info class_type, Args ...filters );
>>
>
> How do you get a value out of the attribute ?
>
>
>
>>
>>
>>
>>
>>
>>
>> --
>> SG7 mailing list
>> SG7_at_[hidden]
>> https://lists.isocpp.org/mailman/listinfo.cgi/sg7
>>
> --
> SG7 mailing list
> SG7_at_[hidden]
> https://lists.isocpp.org/mailman/listinfo.cgi/sg7
>

Received on 2020-11-10 11:59:21