使用指令不适用于概念吗?为什么?
下面的示例不起作用,并且我收到一个编译器错误,指出它需要一个类型。

#include <concepts>

namespace A::X {

  struct BaseA {};

  template < typename AType >
    concept DerivedFromA = std::derived_from < AType, BaseA >;

}

namespace A {

  using DerivedFromA = X::DerivedFromA;

}
我希望能够从命名空间DerivedFromA中将概念A作为DerivedFromA而不是X::DerivedFromA访问

最佳答案


因为您使用using的方式声明了类型别名。而且concept不是类型模板。
您打算做的是使一个 namespace 中的名称在另一 namespace 中可用。看起来像这样:

namespace A
{
  using X::DerivedFromA;
}
这适用于各种名称。

07-26 00:45
查看更多