你能用C++给模板成员取个别名吗



我想重命名或别名stl的某些部分,以便它们符合我项目的命名约定。到目前为止,重命名类型很容易

template<class Type>
using Vector = std::vector<Type>;

我试着做一些类似于别名成员的事情:

template<class Type>
using Vector::PushBack = std::vector<Type>::push_back;
// and
template<class Type>
using Vector<Type>::PushBack = std::vector<Type>::push_back;

遗憾的是,这种方法不适用于成员变量。我可以化名成员吗?怎样

您只能别名类型或类型模板。成员函数不是一种类型,因此您不能对其进行别名。但是,您可以为其创建一个代理:

template <typename T>
auto push_back(std::vector<T>& vec, T&& val)
{
return vec.push_back(std::forward<T>(val));
}

否,不能对成员变量进行别名。

Cfhttps://learn.microsoft.com/en-us/cpp/cpp/aliases-and-typedefs-cpp?view=vs-2019年:"你可以使用别名声明来声明一个名称,用作之前声明的类型的同义词">

既然可以直接调用变量,那么别名的意义何在?

相关内容

  • 没有找到相关文章

最新更新