gpt4 book ai didi

c++ - 促进 Hana 概念实现

转载 作者:行者123 更新时间:2023-11-30 03:29:03 26 4
gpt4 key购买 nike

Boost Hana 似乎没有记录库的这一方面,所以我想知道我所做的至少是否合法。

我已经开始在我的代码中添加一堆概念,我不得不使用一些 hana 概念。有一个例子:

#include <boost/hana.hpp>

namespace hana = boost::hana;

template < typename T >
concept bool C_Type = requires(T object) {
typename decltype(object)::type;
};

template < typename T >
concept bool C_Functor = hana::Functor<T>::value;

constexpr decltype(auto) applySignatureOn(auto storageSig,
C_Functor innerTypes) {
return hana::transform(
innerTypes,
[=] (C_Type type)
{ return hana::make_pair(
hana::make_tuple(type),
storageSig(type));
});
}

这样可以为 Boost Hana Functor 概念创建一个“别名”吗?还是可以随时更改?

顺便说一下,这个错误并不是很精确。可能是因为 Hana 使用的是 C++14,不能使用概念。但是有没有计划有一天升级到 C++20?

最佳答案

Boost Hana doesn't seems to document this aspect of the library, so I'd like to know if what I'm doing is legit at least.

Hana 记录了它对概念的模拟 here .

Is that okay to make an "alias" of the Boost Hana Functor concept like that?

是的,没关系。文档中定义了在Hana中是一个Concept的意思,然后说Functor是一个概念。您正在使用所有已记录在案的东西,因此它是安全的,并且在 Hana 进行重大更改之前不会损坏。

Probably because Hana is using C++14 and can't use concepts. But is there any plan to upgrade to C++20 one day?

如您所说,Hana 没有使用“C++ 概念”,因为它是一个 C++14 库,而我们喜欢称之为“C++ 概念”的内容尚未成为任何已发布语言规范的一部分。当语言发布时,Hana 可能会开始使用 C++20 概念,我们拭目以待。但是,它必须带来重大改进,因为它是用户对编译器要求的重大变化。

关于c++ - 促进 Hana 概念实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46012252/

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