Rozumiem, że parametr szablonu innego niż typ powinien być stałym wyrażeniem integralnym. Czy ktoś może rzucić światło, dlaczego tak jest?
template <std::string temp>
void foo()
{
// ...
}
error C2993: 'std::string' : illegal type for non-type template parameter 'temp'.
Rozumiem, czym jest stała integralna ekspresja. Jakie są powody, dla których nie zezwalasz na typy niestałe, takie std::string
jak w powyższym fragmencie?