auto obj = std::move(arr[5]);
#include <iostream>
#include <ostream>
using namespace std;
struct OBJ {
private:
const int value = 0;
public:
operator int() { return value; }
struct SOMETHING {
private:
const int value = 7;
public:
operator int() { return value; }
enum {
SOMETHING1 = 1,
SOMETHING2 = 2
};
};
};
int main() {
cout << OBJ() << endl;
cout << OBJ::SOMETHING() << endl;
cout << OBJ::SOMETHING::SOMETHING1 << endl;
cout << OBJ::SOMETHING::SOMETHING2 << endl;
return 0;
}
Я впринципе тоже думал засунуть эту реализацию в класс, только я думал его представить виде кастомного unique_ptr, но ваш вариант мне тоже нравится.
Обязательно изучу вопрос про API неинециализированной памяти
Про непрерывность памяти, я проверил вроде всё так и есть:
Выводит множество 1 значит они находятся непрерывно.