¿Cómo puedo usar rasgos de tipo para hacer que esta conversión de matriz a puntero sea inequívoca?
Me gustaría discernir entre matrices estáticas y punteros.
El siguiente ejemplo no se puede compilar debido aconversiones de matriz a puntero que tienen coincidencia exactahaciendo ambosfoo
Los posibles candidatos.
¿Puedo obtener la segunda sobrecarga defoo
ser seleccionado sin ambigüedades usando rasgos de tipo?
#include <iostream>
template<typename T>
void foo(const T* str)
{
std::cout << "ptr: " << str << std::endl;
}
template<typename T, size_t N>
void foo(const T (&str)[N])
{
std::cout << "arr: " << str << std::endl;
}
int main()
{
foo("hello world"); // I would like the array version to be selected
return 0;
}