Как я должен делать отступы без конструкторов списка инициализации?

Пример: Thread::Thread:

class Thread
{
    Process * parent_;
    unsigned __int32 id_;
    void * entryPoint_;
public:
    Thread(Process * parent, unsigned __int32 id, void * entryPoint) : 
        parent_(parent),
        id_(id),
        entryPoint_(entryPoint)
    {
    }
    unsigned __int32 GetId() const
    {
        return id_;
    }
    void * GetEntryPointAddress() const
    {
        return entryPoint_;
    }
};

Я не могу придумать способ отступов, чтобы он не выглядел странным... и все же это общий шаблон. Каковы общие способы отступов от этого?

Ответ 1

Я всегда кладу пустые блоки в одну строку - т.е. { } (обратите внимание на пробел!).

Кроме того, я обычно помещаю двоеточие и запятые перед членами списка инициализации, а не после - это упрощает добавление элементов.

Thread(Process * parent, unsigned __int32 id, void * entryPoint)
    : parent_(parent)
    , id_(id)
    , entryPoint_(entryPoint)
{ }

Ответ 2

Вот как я это делаю:

Thread(Process * parent, unsigned __int32 id, void * entryPoint) 
    :parent_(parent),
     id_(id),
     entryPoint_(entryPoint)
{}

Но ваш путь для меня не выглядит странным.

Ответ 3

Вот как я это делаю

public:
    Thread(Process * parent, unsigned __int32 id, void * entryPoint) : 
    parent_(parent),
    id_(id),
    entryPoint_(entryPoint) 
    { }

Стиль Google (atleast protobuf) будет выглядеть следующим образом:

public:
 Thread(Process * parent, 
        unsigned __int32 id, 
        void * entryPoint) 
  : parent_(parent),
    id_(id),
    entryPoint_(entryPoint) { }

Ответ 4

Вот как я это делаю, и почему я не вижу ничего плохого в вашем примере:

Thread(Process * parent, unsigned __int32 id, void * entryPoint) : 
        parent_(parent),
        id_(id),
        entryPoint_(entryPoint) { }

Насколько я понимаю, сделайте это по-своему: пока вы самодостаточны и согласуетесь с проектом, над которым вы работаете, не имеет значения, какой у вас стиль отступов.

Ответ 5

Я бы рекомендовал поместить комментарий в тело пустого конструктора, так что любой, кто читает код, знает, что вы намеревались его пустым. Таким образом, они могут быть уверены, что это не случай, когда вы забыли вставить там код.

Thread(Process * parent, unsigned __int32 id, void * entryPoint) : 
    parent_(parent),
    id_(id),
    entryPoint_(entryPoint)
{
    // empty
}