Автоматически добавлять #pragma один раз в заголовочные файлы

Я пытаюсь удалить каждый ненужный шаблонный код из моих личных проектов. Первое, что я заметил, это первая строка каждого заголовочного файла #pragma. Не так удивительно.
Однако я хотел бы попросить мой компилятор (clang SVN HEAD version) автоматически добавить эту строку в мои заголовочные файлы (например, с помощью шаблона, подобного этому: src / *. Hpp). Я думаю, что есть очень редкие случаи, когда вы действительно хотите включить один заголовок несколько раз.

  1. Ты согласен?
  2. Есть ли какое-либо существующее решение этой проблемы?
  3. Ты думаешь, это хорошая идея?

С помощью инструментов Clang эту проблему можно решить, но мне нужно немного помочь, чтобы запустить это расширение.

  1. Какой инструмент лягушки я должен использовать?

Теоретическое использование этого инструмента / расширения:

clang --auto-pragma-once src/*.hpp src/*.cpp -o test

Спасибо за любой совет

РЕДАКТИРОВАТЬ:

  1. Я не хочу хранить эту прагму один раз в моем файле. Поэтому любой редактор или любые другие инструменты, которые помещают новые файлы в файлы, не работают для этой проблемы.

  2. Этот раздел посвящен разовому включению заголовочных файлов, а не прагме.

1

Решение

Просто прикуси пулю и вставь прагму в заголовочные файлы. Это всего лишь одна строка, и если ничего нет, это может смутить других, кто просматривает ваши файлы.

1

Другие решения

Я не уверен, почему вы хотите использовать Clang для этого. Это зависит
в редакторе, но каждый редактор, которого я знаю, позволяет запускать на
такие вещи, как открытие нового файла, имя которого соответствует конкретному
шаблон, и вставьте шаблон в него. В промышленности это довольно
сильно запрещено не использовать это, так как это как авторское право
уведомления вставляются. В моем случае, например, если я создаю
новый файл с именем xyz.hh, редактор придумывает

/****************************************************************************/
/*      File:       xyz.hh                                                  */
/*      Author:     J. Kanze                                                */
/*      Date:       25/09/2013                                              */
/*      Copyright ....                                                      */
/* ------------------------------------------------------------------------ */

#ifndef xyz_hh_20130925QPIvFK6xMJYLBhSpv58ROPOU
#define xyz_hh_20130925QPIvFK6xMJYLBhSpv58ROPOU

#endif
//  Local Variables:                        --- for emacs
//  mode: c++                               --- for emacs
//  tab-width: 8                            --- for emacs
//  End:                                    --- for emacs
//  vim: set ts=8 sw=4 et filetype=cpp:     --- for vim

Если я делаю это в моей рабочей области, уведомление об авторских правах
разные, включенные охранники следуют другому стандарту, и
есть также #pragma один раз.

0