クラスがあるとします
template<class T>
class Vector
{
public:
Vector() = default;
inline size_t size() const { return _vector.size(); }
private :
std::vector<T> _vector;
};
関数 (または演算子) をコンパイル時にオーバーヘッドなしで委任する方法はあり_vector
ますか?
もちろん、必要なすべての関数を宣言することですべてを転送し、適切な関数をメンバーに呼び出すことができsize()
ます.
この記事では、私が必要とするものを正確に提案します。たとえば、これを使用します:
template<class T>
class Vector
{
public:
Vector() = default;
private :
std::vector<T> _vector;
public:
using _vector {
size_t size() const;
void push_back(const T&);
}
};
その後、コンパイラは適切なコードを生成します。しかし、私はこのようなものを見つけられませんでした。