UniSet  1.4.0
Некоторые соглашения о стиле написания

Названия

Названия Классов

Названия классов должны начинаться с большой буквы. Если название состоит из нескольких слов, то каждое слово начинается с большой буквы.

Обратите внимание, что public рекомендуется записывать с отступом перед ним.
    class MyNameClass
    {
        public:
        ...
    };
При записи конструктора инициализация членов класса должна записываться так:
    class MyNameClass
    {
        public:
            MyNameClass():
                x(5)
            {
            }
        private:
            int x;
    };

Названия переменных

Названия переменных и членов класса должны начинаться строчными буквами. Если название составное, то второе слово нужно писать с большой буквы.

Записывать переменные полностью маленькими буквами, разделяя слова подчёркиваниями, запрещается.
    int myVariableName;

Названия функций

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

Обратите внимание, что при вызове функций пробел между названием функции и скобками, содержащими параметры, не ставится. См. пример.
Называния функций полностью маленькими буквами с подчёркиваниями между словами допустимо только для тех классов, которые наследуются от библиотек, использующих аналогичную нотацию (например, gtk--)
    void printFunction(void);
    void debugInfo();

Названия файлов

Названия файлов должны начинаться с большой буквы. Если в файлах описывается class MyNameClass, то названия файлов должны быть соответственно MyNameClass.h и MyNameClass.cc. Что касается оформления см. Оформление заголовочных файлов и Оформление cpp-файлов

Название макросов

Определения макросов пишутся ЗАГЛАВНЫМИ БУКВАМИ (Кроме спец. макросов NameHeaderFile_H_) Описание макросов лучше производить в заголовочном файле в начале (см. Оформление заголовочных файлов). Использование макросов не рекомендуется.

Название констант и enum'ов

Названия констант и enum'ов начинаются с большой буквы.

            const int MyConst;
            enum MyEnum { One, Two, Three };

Форматирование

Ширина текста программы не должна превышать 78 символов для возможности отображения на всех терминалах и печати на принтере. Отступы в программе должны формироваться исключительно знаками табуляции.

Каждый может выбирать в настройках того редактора, который он использует, сколько пробелов (4 или 8) использовать знак табуляции. Рекомендуется 4 знака. В редакторе mcedit в меню Настройка->Разное должно быть отключено "Симулировать неполную табуляцию".
Фигурные скобки во всех случаях записываются одна под другой.
Условия. Скобки записываются через пробел после if. Не используйте лишних скобок при записи || и &&
    function (void)
    {
        body of the function;
        if (a > b || a < c)
        {
            body of the condition;
        }
        else if (x > y)
        {
            body of the not condition;
        }
    }

При длинных названиях переменных рекомендуется записывать содержимое круглых скобок как в примере ниже

        if ( veryLongA > veryLongB )
        {
            body of the condition;
        }

С короткими названиями лучше запись

        if (a>b)
        {
        }

Присваивания записываются как

        veryLongA = veryLongB;

для коротких переменных допустима запись

        a=b;

Типы данных. Знаки, относящиеся к типу, записываются слитно с названием типа.

        PointerToObject* p;
        ReferenceToObject& r;

Часто используемые локальные переменные рекомендуется называть короткими именами, такими как

i,j для переменных цикла
p для указателя
it для итератора
obj для объекта

Оформление заголовочных файлов

Заголовочные файлы имеют расширение .h Кроме приведенного в примере, конечно должны быть комментарии.

/***************************************************************************
 This file is part of the UniSet* library                                 *
 Copyright (C) 2002 SET Research Institute. All rights reserved.          *
***************************************************************************/
/**************************************************************************/

#ifndef MyNameClass_H_
#define MyNameClass_H_
#include <std.h>
#include <...>
#include "myInclude.h"
#include "..."

// -----------------------------------------------------------------------
#define MY_DEFINE (x) x
// -----------------------------------------------------------------------
const float MyPI = 3.14;

enum MyEnum { En1, En2, En3 };

// -----------------------------------------------------------------------

class MyNameClass
{
    public:
        ...
            
    protected:          
        ...
            
    private:
        ...
};

#endif
Заметки:
Большая просьба ко всем разработчикам избегать глобальных Enum-ов (как в примере), дабы избежать в последствии ошибок.

Оформление cpp-файлов

Кроме приведенного в примере, конечно должны быть комментарии.

/***************************************************************************
 This file is part of the UniSet* library                                 *
 Copyright (C) 2002 SET Research Institute. All rights reserved.          *
***************************************************************************/
/**************************************************************************/

        #include <std.h>
        #include <...>

        #include "MyNameClass.h"
        #include "..."
        // -----------------------------------------------------------------------------------------
    
        void MyNameClass::func1(void)
        {
            ...
        }
    
        // -----------------------------------------------------------------------------------------
        void MyNameClass::func2(void)
        {
            ...
        }
        // -----------------------------------------------------------------------------------------
        ...
        // -----------------------------------------------------------------------------------------

Написание интерфейсов на языке IDL

Общая часть

Названия интерфейсов(классов), функций и переменных см. Названия. Оформление файла IDL аналогично оформлению заголовочных файлов. (См. Оформление заголовочных файлов) Название интерфейса должно образовываться от названия и добавления к нему "_i", что означает интерфейсный класс.

Имена классов реализаций

Название класса реализации должно образовываться от названия интерфейса, исключив "_i".

Пример:

объявление на IDL
        interface BaseProcess_i
        {   
            ...
        }
объявление класса реализации
        class BaseProcess:
            public POA_BaseProcess_i,
            public ...
        {   
            ...
        }

Класс родитель для реализации

В общем случае классом родителем должен являться класс POA_имя_интерфейса. Этот класс генерируется автоматически и его описание находится в файле имя_интерфейса.hh . В особо оговариваемых случаях наследование может происходить от другого класса. Не исключается множественное наследование для добавления необходимых свойств и т.п. Вот пример наследования для реализации idl-интерфейса ContolProcess_i:

        class ControlProcess: 
            public BaseProcess,
            public POA_ControlProcess_i
        {
            ...
        }