Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- auto new_foo(std::size_t size) -> std::tuple<std::unique_ptr<char>, int*>
- {
- auto buffer = std::make_unique<char>(size * sizeof(int) + 8);
- auto begin = static_cast<int*>(static_cast<void*>(buffer.get() + 4));
- return std::make_tuple(std::move(buffer), begin);
- }
- struct X {
- std::unique_ptr<char> buffer_{nullptr};
- int* begin_{nullptr};
- std::size_t size_{0};
- X(std::size_t size) : size_{size}
- {
- auto foo = new_foo(size);
- buffer_ = std::unique_ptr<char>{std::get<0>(foo)};
- begin_ = std::get<1>(foo);
- }
- };
- X(std::size_t size)
- : buffer_{ ??? },
- begin_{ ??? },
- size_{size}
- {
- }
- X(std::size_t size)
- : buffer_{std:get<0>(new_foo(size)},
- begin_{std:get<1>(new_foo(size)},
- size_{size}
- {
- }
- auto {x,y,z} = f();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement