Нет, вы не можете и не будете: C ++ 98 очень ограничен в отношении массивов, а auto_ptr
- очень неловкий зверь, который часто не делает то, что вам нужно.
Вы можете:
используйте std::vector<int>
/ std::deque<int>
, или std::array<int, 10>
, или
используйте C ++ 11 и std::unique_ptr<int[]> p(new int[15])
, или
используйте C ++ 11 и std::vector<std::unique_ptr<int>>
(хотя это кажется слишком сложным для int
).
Если размер массива известен во время компиляции, используйте один из статических контейнеров (array
или указатель-уникального массива). Если вам нужно изменить размер во время выполнения, в основном используйте vector
, но для больших классов вы также можете использовать вектор уникальных указателей.
std::unique_ptr
- это то, что std::auto_ptr
хотел, но не смог из-за ограничений языка.