Как установить значения параметров по умолчанию, которые зависят от других параметров?
Следующий код компилируется и работает как положено.
#include
void function(std::vector vec, int size=1);
int main(){
std::vector vec = {1,2,3};
function(vec);
}
void function(std::vector vec, int size){
//code..
return;
}
Тем не менее, я хотел бы, чтобы параметр размераЗначение по умолчанию, которое должно быть выведено на основе предыдущего параметра. Так, например:
void function(std::vector vec, int size=vec.size());
Но это, однако, приводит к:
ошибка: локальная переменная ‘VEC» может не отображаться в этом контексте
Который нене удивляй меня; Я предполагаю, что он должен знать значение по умолчанию во время компиляции. Так я делаю функцию шаблонной? Как бы я сделал функцию шаблонной таким образом, чтобы параметр по-прежнему представлял собой int, а вектор по-прежнему представлял собой вектор целых чисел, а параметр размера выводился как переданный в векторе?Размер по умолчанию.
Я не хотел бы передавать размер вектора во время вызова функции.