Я попытался создать фабрику векторов, которая создает вектор 1
значений указанного размера s
, но не работает должным образом.
template<size_t s>
constexpr std::vector<int>& vector_factory()
{
std::vector<int> v(s, 1);
return v;
}
int main(int argc, char* argv[])
{
constexpr size_t s = 10;
std::vector<int> v1 = vector_factory<s>();
std::vector<int> v2 = vector_factory<s>();
}
Я получаю ошибку во время выполнения из-за большой попытки выделения. Однако, если я попытаюсь реализовать его таким образом, он будет работать правильно.
constexpr size_t s = 10;
std::vector<int> v1(s, 1);
std::vector<int> v2(s, 1);
Что я делаю не так?