void PrintNow(const std::vector<int> &v)
{
std::cout << v[0] << std::endl;
}
std::vector<int>().push_back(20); // this line generates no complains
PrintNow(std::vector<int>().push_back(20)); // error
De VS2010 SP1:¿Podemos crear un parámetro de paso temporal 'std :: vector <int> `?
EROR C2664: 'printnow': no se puede convertir el parámetro 1 de 'vacío' a 'const std :: vector < _Ty> &'
Q > ¿Es posible que podamos pasar un vector temporal para funcionar?
La sintaxis' {20} 'es compatible al menos con GCC 4.4.5. –
En C++ 03, puede usar ['boost :: list_of'] (http://www.boost.org/doc/libs/1_39_0/libs/assign/doc/index.html#list_of) para obtener una solución de línea sin variables adicionales nombradas. –