1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
#include <cstdlib> int foo(int) { return 0; } template<typename T> int foo(const T*) { return 1; } template<typename T, std::size_t N> int foo(const T (&a)[N]) { return N; } int main() { int i = foo("hi"); }