Saya memahami bahwa parameter template bukan tipe harus berupa ekspresi integral yang konstan. Bisakah seseorang menjelaskan mengapa demikian?
template <std::string temp>
void foo()
{
// ...
}
error C2993: 'std::string' : illegal type for non-type template parameter 'temp'.
Saya mengerti apa itu ekspresi integral konstan. Apa alasan untuk tidak mengizinkan jenis tidak konstan seperti std::string
pada cuplikan di atas?