The following code compiles and works as expected.
#include
void function(std::vector vec, int size=1);
int main(){
std::vect
If you truly want a function with a size parameter, and want the size to default to the vector size (instead of just getting it as a local variable), then you could solve this with two functions. One taking just the vector, and one taking the vector and the size (without default). Then the one-argument function can just call the second.
So
void function(const std::vector<int>& vec, const size_t size)
{
...
}
void function(const std::vector<int>& vec)
{
function(vec, vec.size());
}
Why do you need second parameter if it based on the first?
void function(std::vector<int> vec ){
size_t size = vec.size();
//code..
return;
}
Isn't it easier?