Ich verstehe, dass der Nicht-Typ-Vorlagenparameter ein konstanter integraler Ausdruck sein sollte. Kann jemand Licht ins Dunkel bringen, warum es so ist?
template <std::string temp>
void foo()
{
// ...
}
error C2993: 'std::string' : illegal type for non-type template parameter 'temp'.
Ich verstehe, was ein konstanter integraler Ausdruck ist. Was sind die Gründe dafür, dass nicht konstante Typen wie std::string
im obigen Snippet nicht zugelassen werden?