Где определяется стиль кодирования cppreference? - PullRequest
1 голос
/ 20 марта 2020

Я видел много примеров кодов на cppreference. Например, следующий URL имеет один код:

https://en.cppreference.com/w/cpp/language/list_initialization

Из приведенного выше примера мы можем заметить, что отступ для фигурных скобок отличается от struct и function следующим образом.

struct Foo { // left-brace is on the same line with the name of the struct 
    std::vector<int> mem = {1, 2, 3}; // default indent seems 4 spaces
    std::vector<int> mem2;
    Foo() : mem2{-1, -2, -3} {}
}; // right-brace starts with a new line

std::pair<std::string, std::string> f(std::pair<std::string, std::string> p)
{ // left-brace starts with a new line for function
    return {p.second, p.first}; // list-initialization in return statement
} // right-brace starts with a new line for function

int main()
{ // same as above
 //...
} // same as above

Где описан стиль кодирования?

Ответы [ 2 ]

3 голосов
/ 20 марта 2020

Описан стиль на cppreference @ Справка: Руководство по стилю (Code formatting)

Для Интервал и отступ a Вариант K & R используется.

Если параметры функции занимают несколько строк, отступ всех параметров соответствует открывающей скобке. То же самое касается параметров шаблона.

Например:

#include <vector>

std::vector<int, MyAllocator> v;

int complex_function(int long_param_name,
                     int& another_param_name);

int main(int argc, char** argv)
{
    if (argc == 2) {
        v.push_back(23);
    }
}

Тем не менее, cppreference - это вики, и другие форматы могут проскальзывать сквозь трещины.

1 голос
/ 20 марта 2020

Нет строгого стиля кода на cppreference. Даже на указанной странице два разных стиля для функций, используемых в Примечания и Пример . Если вы перейдете по ссылкам на этой странице, вы также найдете различные стили кода, используемые для структур.

На указанной странице:

int main() {
  X x;
  X x2 = X { x }; // copy-constructor (not aggregate initialization)
  Q q;
  Q q2 = Q { q }; // initializer-list constructor (not copy constructor)
}

int main()
{
    int n0{};     // value-initialization (to zero)
    int n1{1};

Во второй ссылке на этой странице:

struct A
{
    A() { }         // converting constructor (since C++11)  
    A(int) { }      // converting constructor
    A(int, int) { } // converting constructor (since C++11)
};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...