Я хочу объединить эти функции в одну и не знаю как это сделать. возможно ли это. Можно даже в класс или структуру не особо важно.
template<class T1, class T2, class T3>
auto vector_ptr(T1& size1, T2& size2, T3& size3) {
auto result = make_shared<vector<vector<vector<int>>>>(size1, vector<vector<int>>(size2, vector<int>(size3)));
return *result;
}
template<class T1, class T2>
auto vector_ptr(T1& size1, T2& size2) {
auto result = make_shared<vector<vector<int>>>(size1, vector<int>(size2));
return *result;
}
template<class T1>
auto vector_ptr(T1& size1) {
auto result = make_shared<vector<int>>(size1);
return *result;
}
// Вызов
auto varr1 = vector_ptr(size1);
auto varr2 = vector_ptr(size1, size2);
auto varr3 = vector_ptr(size1, size2, size3);
Я думаю сделать больше вариантов таких как size4 и size5 хочу увидеть как объединить подобные функции что бы не было ограничений, в данном случае сейчас только 3 варианта. Но это только пока 3, хотя меня больше интересует сам способ реализации.
Еще я не могу отвечать на комментарии кнопка не работает пух.
Во-первых, зачем вам тут шаблоны?...
Во-вторых, а что вы сделали, как не определили три функции с одним именем - все прекрасно компилируется и работает. Разве что выбросьте шаблоны, перегрузка прекрасно справляется и так:
auto vector_ptr(int size1, int size2, int size3) {
auto result = make_shared<vector<vector<vector<int>>>>(size1,
vector<vector<int>>(size2, vector<int>(size3)));
return *result;
}
auto vector_ptr(int size1, int size2) {
auto result = make_shared<vector<vector<int>>>(size1, vector<int>(size2));
return *result;
}
auto vector_ptr(int size1) {
auto result = make_shared<vector<int>>(size1);
return *result;
}
int main()
{
int size1 = 2, size2 = 3, size3 = 4;
auto varr1 = vector_ptr(size1);
cout << typeid(varr1).name() << endl;
auto varr2 = vector_ptr(size1, size2);
cout << typeid(varr2).name() << endl;
auto varr3 = vector_ptr(size1, size2, size3);
cout << typeid(varr3).name() << endl;
}
Или я неверно вас понял? тогда поясните подробнее, что вы хотите... Возвращать из единственной функции разные типы? :)
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Как можно сделать свою тень box-shadow как в CSS, чтобы были такие же параметры как там: сдвиг по x, сдвиг по y, размытие, растяжение и цвет
В сем привет! Помогите решить задача на с++C клавиатуры вводится числа и записываются в переменные max и Del0
Всем привет, написал код и хочу узнать можно ли как то его ещё сильнее у компановать?
Требуется написать программу, которая находит натуральные числа, кратные 3 и 5 в диапазоне меньше 1000,затем выводит сумму этих чиселПочему...