Date: Mon, 10 Aug 2026 05:11:03 -0700
What does it mean for a concept to work out to be 4112? What does that
look like when used in a requires clause?
On Mon, Aug 10, 2026 at 2:41 AM Bingzhi via Std-Proposals <
std-proposals_at_[hidden]> wrote:
> Computing via variable templates have slower compilation speed than that
> of concepts. But concepts only allows `concept bool`(see Concepts TS).
> I want concept struct/integrals to be added.
>
> Let Tp be:
> a non-closure literal class type with the following properties:
> all base classes and non-static data members are public and
> non-mutable and
> the types of all base classes and non-static data members are
> structural types or (possibly multi-dimensional) array thereof;
> an integral type;
> an enumeration type.
> Then I want `template <...> Tp concept name = ...;` to be valid and works
> just like a `concept bool`(or `concept` in Standard C++).
>
> Further more, let the conjunction and disjunction of constraints be
> extended to bit & and bit | operations.
> For conjunction, if one bit is 0, then all bits at the same position in
> the result of later constraint evaluations is ignored (that part is not
> computed if possible).
> For disjunction, if one bit is 1, then all bits at the same position in
> the result of later constraint evaluations is ignored (that part is not
> computed if possible).
> (That should be another proposal because it's a bit shocking.)
>
> Same functionality but with slower compilation speed:
> template <...> inline constexpr Tp name = ...;
>
> If that concept structs and concept integrals (after the earlier `concept
> bool` in Concept TS) is not so conforming,
> then, see my next idea: template final (or `final template`)
> --
> Std-Proposals mailing list
> Std-Proposals_at_[hidden]
> https://lists.isocpp.org/mailman/listinfo.cgi/std-proposals
>
look like when used in a requires clause?
On Mon, Aug 10, 2026 at 2:41 AM Bingzhi via Std-Proposals <
std-proposals_at_[hidden]> wrote:
> Computing via variable templates have slower compilation speed than that
> of concepts. But concepts only allows `concept bool`(see Concepts TS).
> I want concept struct/integrals to be added.
>
> Let Tp be:
> a non-closure literal class type with the following properties:
> all base classes and non-static data members are public and
> non-mutable and
> the types of all base classes and non-static data members are
> structural types or (possibly multi-dimensional) array thereof;
> an integral type;
> an enumeration type.
> Then I want `template <...> Tp concept name = ...;` to be valid and works
> just like a `concept bool`(or `concept` in Standard C++).
>
> Further more, let the conjunction and disjunction of constraints be
> extended to bit & and bit | operations.
> For conjunction, if one bit is 0, then all bits at the same position in
> the result of later constraint evaluations is ignored (that part is not
> computed if possible).
> For disjunction, if one bit is 1, then all bits at the same position in
> the result of later constraint evaluations is ignored (that part is not
> computed if possible).
> (That should be another proposal because it's a bit shocking.)
>
> Same functionality but with slower compilation speed:
> template <...> inline constexpr Tp name = ...;
>
> If that concept structs and concept integrals (after the earlier `concept
> bool` in Concept TS) is not so conforming,
> then, see my next idea: template final (or `final template`)
> --
> Std-Proposals mailing list
> Std-Proposals_at_[hidden]
> https://lists.isocpp.org/mailman/listinfo.cgi/std-proposals
>
Received on 2026-08-10 12:11:20
