Теперь, когда С++ 11 отсутствует, я задавался вопросом, есть ли какие-либо советы по улучшению поддержки отступов в Emacs, когда все больше и больше кода переносится с С++ 98 на С++ 11.
Примеры:
- Скобки часто становятся фигурными скобками, которые, похоже, путают Emacs.
- Лямбда-выражения пока не поддерживаются.
- Объявления функции типа trailing (не могу комментировать, поскольку я не использовал их)
- Вариадические шаблоны (хотя лично у меня не было проблем с ними до сих пор)
Вот несколько сомнительных отступов, над которыми я работаю:
struct m {
int a;
char b;
};
std::vector<m> foo { {1, 'a'},
{2, 'b'},
{ 3, 'c'},
{ 4, 'd' }};
Я бы предпочел
std::vector<m> foo { {1, 'a'},
{2, 'b'},
{ 3, 'c'},
{ 4, 'd' }};
или даже
std::vector<m> foo { {1, 'a'},
{2, 'b'},
{ 3, 'c'},
{ 4, 'd' }};
например.
Следующий:
cout << 5
<< [](int a) {
return 2 * a;
} (5);
Я бы предпочел
cout << 5
<< [](int a) {
return 2 * a;
} (5);
чтобы блок был отступом относительно лямбда.
Я нахожу, что трачу больше времени на отступ, что раздражает.
Есть ли какие-либо пакеты или настройки, которые помогают отменить современный код С++ 11?
(сторона примечания: я настроил clang-format для Emacs, но я не могу получить 100% -ную совместимость с существующим кодом, а также не но хорошо понимают синтаксис С++ 11. Тем не менее он иногда полезен и звучит как хорошая идея для новых проектов.)