проверить создание C ++ шаблона - PullRequest
6 голосов
/ 22 мая 2010

Есть ли какая-нибудь утилита, которая позволила бы мне проверять создание шаблона? мой компилятор g ++ или Intel.

Конкретные моменты, которые я хотел бы:

  • Шаг за шагом.
  • Intratiation backtrace (можно взломать это, разбив компилятор. Лучший метод?)
  • Проверка параметров шаблона.

@ gf, помогите мне с простой печатью шрифта, C ++ имя шаблона pretty print .

Однако я вхожу в уровень феникса и уровень шаблонов, и мне очень трудно понять, что происходит, и я хотел бы получить интеллектуальное решение

также, если у вас есть какие-то методы проверки экземпляров шаблонов, не могли бы вы поделиться ими.

Спасибо

1 Ответ

9 голосов
/ 22 мая 2010

С шаблонами у нас просто нет чистых средств вывода, и нет известных мне компиляторов, которые позволили бы вам напрямую просматривать экземпляры шаблонов. Самым близким, что я нашел в отношении отладки метапрограммы, была статья о Templight .

На данный момент лучшими утилитами кажутся:

  • статические утверждения & концепции проверок (четко подтверждают ваши предположения)
  • упомянутые обратные копии экземпляров (например, с использованием статических утверждений)
  • разрешение экземплярам генерировать предупреждения (boost::mpl::print может это сделать)
  • tracer, пользовательский класс, который передается в качестве аргумента шаблона и используется для вывода выходных данных во время выполнения (представлен C ++ Templates - The Complete Guide )
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...