typedef 的成员函数
Member function for typedef
我想知道在 C++ 中是否可以执行以下操作。
我有一个 typedef
template<typename T> struct wrapper {};
using vecint = wrapper<std::vector<int>>;
并且我想编写一个函数 size
,我可以为其使用成员函数语法。 IE。写
vecint v{1,3};
v.size();
而不是
vecint v{1,3};
size(v);
我为什么要这样做
我无权访问结构 wrapper
。
如果有另一种方法可以做到这一点,我很高兴听到它。但是,我仍然对这在 C++ 中是否可行感兴趣。
一种可能的方法是将 struct wrapper
包装在一个新的 class 中,您可以在其中添加相关方法:
template<typename T>
class my_wrapper: public wrapper {
public:
using wrapper; // import parent ctors
int size {
return ::size(*this);
}
};
using vecint = my_wrapper<std::vector<int>>;
然后(假设函数大小定义在某处),你可以这样做:
vecint v{1,3};
v.size();
我想知道在 C++ 中是否可以执行以下操作。
我有一个 typedef
template<typename T> struct wrapper {};
using vecint = wrapper<std::vector<int>>;
并且我想编写一个函数 size
,我可以为其使用成员函数语法。 IE。写
vecint v{1,3};
v.size();
而不是
vecint v{1,3};
size(v);
我为什么要这样做
我无权访问结构 wrapper
。
如果有另一种方法可以做到这一点,我很高兴听到它。但是,我仍然对这在 C++ 中是否可行感兴趣。
一种可能的方法是将 struct wrapper
包装在一个新的 class 中,您可以在其中添加相关方法:
template<typename T>
class my_wrapper: public wrapper {
public:
using wrapper; // import parent ctors
int size {
return ::size(*this);
}
};
using vecint = my_wrapper<std::vector<int>>;
然后(假设函数大小定义在某处),你可以这样做:
vecint v{1,3};
v.size();