Использование в очереди анонимных структур для организации - PullRequest
1 голос
/ 03 июня 2011

В следующем коде я поместил анонимные структуры внутри моего объявления класса, чтобы, надеюсь, улучшить его читаемость.

class example {
    private:
        struct barrier {
            boost::barrier playlist_avaliable;
            boost::barrier display_sync;
            barrier( ) : playlist_avaliable( 2 ), display_sync( 3 ) { }
        } barrier;
    public:
        example( ) { }

        void playlist_avaliable( ) {
            barrier.playlist_avaliable.wait();
        }
};

Является ли это лучше, чем альтернатива иметь переменные с именами, такими как барьер_playlist_avaliable?

1 Ответ

0 голосов
/ 03 июня 2011

Хорошо, некоторые случайные мысли:

  1. Оставьте «барьер» после структуры.Это избыточно.
  2. Это всего лишь синтаксический сахар.Это хороший способ группировки переменных.
  3. Вопрос о том, следует ли использовать структуру, может зависеть от того, насколько прозрачной должна быть внутренняя структура для примера класса.Например, вы хотите, чтобы члены структуры были инициализированы в конструкторе примера?
  4. Аналогичный вопрос касается деструктора.
  5. Это больше написание.Это плохо.
  6. Это помогает обернуть много раздражающих вещей в один объект.Интересен для копирования этих членов или для упаковки набора быстро переписанных внутренних элементов в одно имя.Это может помочь.
  7. вы должны поддерживать его непротиворечивым во всем коде любым способом, которым вы определяете непротиворечивость.
  8. Напротив (1): оставьте внутреннюю структуру namend, но слегка измените имя.Возможно, это не так уж далеко от ситуации, когда вы хотите использовать эту структуру более широко.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...