Для этого конкретного случая: при создании строкового литерала их адрес неизвестен до времени связывания (связывание происходит после компиляции), поскольку два строковых литерала в разных единицах перевода - это два разных объекта (как блестяще объяснено в принятом ответе). Когда происходит компиляция, мы не знаем, какой адрес строкового литерала использовать для генерации специализированного кода класса из шаблонного класса.

ющая цитата изШаблоны C ++ Аддисона Уэсли, Может ли кто-нибудь, пожалуйста, помогите мне понять впростой английский / непрофессионал его суть?

Поскольку строковые литералы являются объектами свнутренняя связь (два строковых литерала с одинаковым значением, но в разных модулях являются разными объектами), их также нельзя использовать в качестве аргументов шаблона:

Ответы на вопрос(5)

Ваш ответ на вопрос