Pull to refresh

Comments 10

>>«Create C++ Header #define», при клике на которое генерируется уникальная директива #define (директива позволяет включать header только один раз).

Решая похожу задачу написал скрипт на python 3.2 и поместил в Tools Visual Studio. На мой взгляд быстрее написать скрипт и повесть в Tools Visual Studio или поместить вызов скрипта в одной из опций Far или Total Commander

Также рекомендую еще включить "#pragma once"
Еще быстрее макрос в самой студии написать на VB и вызывать по комбинации клавиш. И поначалу я именно таким способом и пользовалась, но потом сделала себе это расширение и как то привыкла уже им пользоваться. Про "#pragma once" перед дефайнами — это есть в моем исходном расширении, но сюда я не стала его добавлять, нужно будет дописать.
#pragma once не нужен перед дефайнами — он нужен вместо них.
И ЕМНИП с кроссплатформенностью у него уже все хорошо.
Так что совсем не ясно для чего огород городить.
Имхо, уникальный идентификатор со случайными цифрами выглядит ужасно. Google C++ Style guide рекомендует генерировать его по полному пути к файлу в проекте (заменяя слэши на подчеркивания)--и я с ним согласен, так define guards выглядят намного читабельнее и удобнее.
Это оно конечно да, но тогда при переименовании или перемещении файлов придется изменять все дефайны внутри файлов. Поэтому мне больше близка идея GUID
Вы правы. Поэтому лучшее решение, на мой взгляд, это
а. пользоваться гугловским соглашением о полных путях
б. написать еще один макрос/плагин/консольное приложение :-), типа «UpdateDefineGuardsInProject», который сможет обновить все define guards в проекте в соответствие с текущими путями
в. в новых файлах вызывать ваше представленное расширение, генерировать начальный guard
г. при перемещении/переименовании файлов вызывать второй плагин

Притом в вашем расширении можно просто будет вызвать часть кода из UpdateDefineGuardsInProject, при определенной архитектуре.
Давно уже ничего не писал в VS, но по-моему там хватает "#pragma once"… Думаю, что при изучении C++ проблемы переносимости кода и скорости компиляции вас не слишком заинтересуют.
А вообще CodeBlocks или SublimeText2 в сочетании с clang или gcc, и будет вам счастье с C++11 и без меню с большими буквами (привет, VS12!).
SublimeText я использую, но в качестве просто текстового редактора. Visual Studio как IDE как-то ближе, а под линуксом Qt Creator
Да! Спасибо. Я знала что этому должно быть красивое название, спасибо что подсказали
Sign up to leave a comment.

Articles