In C++ the following is legal:
template <int i>
run(){...}
run<3>(); // legal
const int j=3;
run<j>(); // legal because j is const
why the following are or aren't legal?
template <String s>
run(){...}
run<"hello">(); // legal or illegal?
const string s="hello";
run<s>(); // legal or illegal?