Как это расширение шаблона непигового шаблона работает? + Возможная ошибка в gcc? [Дубликат]

Если вы используете Qt в своем проекте, вы можете напрямую использовать функцию join QString ( Ссылка на QString ), и она работает как ожидается от python. Некоторые примеры:

  QStringList strList;  qDebug () & lt;  strList.join ("и");   

Результат: ""

  strList & lt;  "id = 1";  qDebug () & lt;  strList.join ("и");   

Результат: "id = 1"

  strList & lt;  «name = me»;  qDebug () & lt;  strList.join ("и");   

Результат: "id = 1 и name = me"

9
задан R. Martinho Fernandes 30 April 2012 в 01:31
поделиться

1 ответ

Я считаю, что нашел соответствующий элемент стандартного. В §14.8.2p7 говорится:

Подстановка происходит во всех типах и выражениях, которые используются в типе функции и в объявлениях параметров шаблона.

Поскольку EnableIf<dependent_true_type<T>> используется в объявлении параметра шаблона, должна произойти замена, и это ошибка в clang .

11
ответ дан Rapptz 17 August 2018 в 11:41
поделиться
  • 1
    не могли бы вы прокомментировать PR и добавить свой тест? ваш тест более критичен imho, потому что он возникает во время вывода аргумента (мой тестовый файл пропускает замену только в конце после вывода аргумента) и потому, что clang отличается от gcc. – Johannes Schaub - litb 30 April 2012 в 19:44
  • 2
    @Johannes Done. – R. Martinho Fernandes 30 April 2012 в 21:15
Другие вопросы по тегам:

Похожие вопросы: