using 指令不适用于 c++20 概念吗?
Doesn't using directives work with c++20 concepts?
using 指令不适用于概念吗?为什么?
下面的示例不起作用,我收到一个编译器错误,提示它需要一个类型。
#include <concepts>
namespace A::X {
struct BaseA {};
template < typename AType >
concept DerivedFromA = std::derived_from < AType, BaseA >;
}
namespace A {
using DerivedFromA = X::DerivedFromA;
}
我希望能够从命名空间 A
作为 DerivedFromA
而不是 X::DerivedFromA
访问概念 DerivedFromA
Does using directives not work with concepts? why?
因为您使用 using
的方式声明了类型别名。 concept
s 不是类型模板。
您打算做的是使一个名称空间中的名称在另一个名称空间中可用。看起来像这样:
namespace A
{
using X::DerivedFromA;
}
这适用于所有类型的名称。
using 指令不适用于概念吗?为什么?
下面的示例不起作用,我收到一个编译器错误,提示它需要一个类型。
#include <concepts>
namespace A::X {
struct BaseA {};
template < typename AType >
concept DerivedFromA = std::derived_from < AType, BaseA >;
}
namespace A {
using DerivedFromA = X::DerivedFromA;
}
我希望能够从命名空间 A
作为 DerivedFromA
而不是 X::DerivedFromA
DerivedFromA
Does using directives not work with concepts? why?
因为您使用 using
的方式声明了类型别名。 concept
s 不是类型模板。
您打算做的是使一个名称空间中的名称在另一个名称空间中可用。看起来像这样:
namespace A
{
using X::DerivedFromA;
}
这适用于所有类型的名称。