调用另一个构造函数 C++

Calling another constructor C++

我有这样的东西:

Foo::Foo(vector<item> items) {
    // do stuff
}

我想从另一个构造函数调用这个构造函数:

Foo::Foo(char* buf, size_t num) {
    // unpack the bytes into vector
    Foo::Foo(items);
}

这在 C++ 17+ 中可行吗?我知道您可以使用初始化列表调用另一个构造函数,但这似乎更棘手

只需调用委托构造函数。使用辅助函数构造 vector<item>.

namespace {
vector<item> helper(char*buff, size_t num)
{
    /* your implementation for re-packaging the data here */
}
}

Foo::Foo(char*buff, size_t num)
  : Foo(helper(buff,num))
{}