gpt4 book ai didi

c++ - 在概念中表达对数据成员的概念要求的最佳方式是什么?

转载 作者:行者123 更新时间:2023-12-01 14:18:09 25 4
gpt4 key购买 nike

定义具有嵌套概念要求的概念的最佳方法是什么类型的数据成员?沿着这些线的东西:

template<typename T>
concept MyConcept = requires(T a) {
{a.something} -> std::integral;
};

这不起作用,因为 a.something 被选为引用 (delctype((a.something)))。我想出的最好的作品是像这样强制右值的东西:

constexpr auto copy = [](auto value) { return value; };

template<typename T>
concept MyConcept = requires(T a) {
{copy(a.something)} -> std::integral;
};

我有更好的选择吗?

最佳答案

copy 的缺点是它会为您造成误报。引用成员将衰减为一个值。确保分析成员的实际类型的唯一方法是编写明确的嵌套要求。

template<typename T>
concept MyConcept = requires(T a) {
requires std::integral<decltype(a.something)>;
};

关于c++ - 在概念中表达对数据成员的概念要求的最佳方式是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63619304/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com