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();