История изменений
Исправление quasimoto, (текущая версия) :
по идеи должно было сработать
Оно в рантайме должно специализацию написать?
Можно сделать обвёртку
template <typename T, std::size_t size>
class vector {
std::vector<T> vec;
public:
// Update 2: и это тоже тогда не имеет смысла:
// template <typename ...As>
// vector(As ...as) : std::vector<T>(as...) {}
// Тут какой-то интерфейс для векторов фиксированной длины.
};
но size уже не будет выводиться и с ним нужно не промахнуться при инициализации. Ну и от STL контейнеров наследовать тоже не очень, конечно - заменил на агрегацию, чтобы всякие push не сломали size.
Исправление quasimoto, :
по идеи должно было сработать
Оно в рантайме должно специализацию написать?
Можно сделать обвёртку
template <typename T, std::size_t size>
class vector {
std::vector<T> vec;
public:
template <typename ...As>
vector(As ...as) : std::vector<T>(as...) {}
};
но size уже не будет выводиться и с ним нужно не промахнуться при инициализации. Ну и от STL контейнеров наследовать тоже не очень, конечно - заменил на агрегацию, чтобы всякие push не сломали size.
Исходная версия quasimoto, :
по идеи должно было сработать
Оно в рантайме должно специализацию написать?
Можно сделать обвёртку
template <typename T, std::size_t size>
struct vector : public std::vector<T> {
template <typename ...As>
vector(As ...as) : std::vector<T>(as...) {}
};
но size уже не будет выводиться и с ним нужно не промахнуться при инициализации. Ну и от STL контейнеров наследовать тоже не очень, конечно.