Eclipse-CDT: использовать пространство имен в автоматически сгенерированных include-guards - PullRequest
15 голосов
/ 19 августа 2010

Можно ли (и как) добавить пространство имен в имя автоматически сгенерированных защитных элементов включения в Eclipse CDT при создании нового класса с использованием шаблонов .hpp / .cpp?

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

В моем случае имя пространства имен, имя проекта Eclipse и имя исходного каталога одинаковы, поэтому они могут быть альтернативами в качестве префикса для include guard.

Ответы [ 2 ]

6 голосов
/ 22 июля 2011

Таким образом, в диалоговом окне «Установки» в C / C ++ -> Стиль кода -> Шаблоны кода вы можете изменить шаблон так, чтобы он был ближе к тому, что вам нужно, например, если вам нужно пространство имен в охране, вы можете сделать что-то подобное.

${filecomment}

#ifndef ${namespace_name}_${include_guard_symbol}
#define ${namespace_name}_${include_guard_symbol}

${includes}

${namespace_begin}

${declarations}

${namespace_end}

#endif /* ${namespace_name}_${include_guard_symbol} */`
2 голосов
/ 03 марта 2012

Есть скрытое предпочтение, которое вы можете установить, чтобы получить хотя бы путь к файлу или uuid вместо просто CLASSNAME_H_.Смотрите мой полный ответ здесь .

...