Имеет ли "сущность с большим именем" опубликованные лучшие практики синтаксиса C ++ 0x - PullRequest
1 голос
/ 17 июля 2010

Хотя этот «разговор» может быстро перерасти в нечто вроде «я так думаю ...», вопрос не в этом.Имеет ли какая-либо «сущность с большим именем» (например, Google или лайки, Скотт Мейерс или лайки и т. Д.) Что-либо опубликованное в свободном доступе, которая диктует / подсказывает, что, по их мнению, должны быть строки руководства по синтаксису для их базы кода для некоторых / любого изособенности C ++ 0x?

Например, я видел все виды примеров кода для вариационных шаблонов, написанных с разным интервалом относительно эллипсов.Кто-нибудь взвешивал, кто-нибудь взвешивал, что, по вашему мнению, является наиболее выразительной / читабельной версией некоторых / всех конструкций?

@ jalf: Даже если вы не верите, что должен рассказать вамкак делать такие мелочи, есть примеры крупных организаций, которые имеют стандарты форматирования в своих стандартах кодирования (например, Google , Gnu ), но они не имеют отношения к C ++ 0x функций (о чем я и просил).

Ответы [ 2 ]

5 голосов
/ 17 июля 2010

Как и во всех вопросах стиля кодирования, ответ на вопрос неизбежно «зависит». Например, короткие лямбды обязательно должны быть однострочными:

std::transform(v.begin(), v.end(), v.begin(), [](int i) { return i + 1; });

Длинные лямбды, которые не могут легко поместиться в одну строку, должны быть распределены по нескольким строкам:

std::transform(v.begin(), v.end(), v.begin(), [](int i) -> int
{ 
    // lines
    // of 
    // code
    return i + 1; 
});

Имеет ли значение, находится ли начальная скобка в той же строке, что и вызов transform, или в своей собственной строке? Нет.

По моему мнению, единственное хорошее, непротиворечивое правило в отношении форматирования кода - "если оно выглядит уродливо, сделайте его менее уродливым"

0 голосов
/ 17 июля 2010

Я полагаю, что в действительности нет необходимости в расширениях C ++ 0x, даже если вы действительно хотите применить определенный стиль (скажем, в рамках данного проекта).Предполагая, что ваше руководство по стилю говорит достаточно общими терминами, нет причин, по которым синтаксис лямбды не подошел бы правильно. Одного руководства для блоков встроенного кода должно быть достаточно, чтобы охватить такие вещи, как методы встроенного класса, лямбды, операторы управления и т. Д.

...