Локи и С ++ 11

У меня есть несколько вопросов о библиотеке Loki, а также о новом стандарте C ++ 11.

Мой первый вопрос о LevelMutex функциональность библиотеки.
LevelMutex напрямую использует CRITICAL_SECTION на окнах и pthread_mutex_t в
Linux для того, чтобы реализовать свои функциональные возможности. Классы очень хорошо
дизайн, но вопрос остается в моей голове. Теперь, когда у нас есть новая обертка
в новом стандарте (std::mutex) стоит ли заменять объекты низкого уровня
которые зависят от платформы? Если нет, то почему? Я хочу сказать, что
— мы можем удалить много проверки компилятора в Локи
— мы можем поддерживать актуальную версию Loki, и все изменения будут отправлены в Loki, когда изменения произойдут в стандартной библиотеке
— мы можем использовать исключения std::mutex в Локи.

я знаю это std::mutex это просто обертка вокруг объектов мьютекса платформ и
что исключения также являются оберткой вокруг системных ошибок, но все же …
Тот же вопрос относится к функциональности в Threads.h,

Мой второй вопрос о SmartPtr реализовано в Локи.
Как вы думаете, стоит ли использовать эту реализацию, учитывая тот факт, что у нас есть
shared_ptr, unique_ptr, так далее ? Если так, то почему? Если нет, я думаю, что это хорошая идея, чтобы переписать
реализация LockingPtr немного, чтобы получить потокобезопасный shared_ptr?

Мой последний вопрос о новом std::thread функциональность в стандарте C ++ 11.
Я думаю о написании классов политики для этой конкретной функциональности, как
возможность создавать присоединяемые или отсоединяемые потоки.
По вашему мнению, какая часть std::thread было бы интересно создать политику для?

Заранее спасибо за ответы!

2

Решение

Это широкая и несколько субъективная тема, и я могу дать вам только мой личный совет. Я не буду вдаваться в подробности, так как считаю важным сделать шаг назад и посмотреть на картину в целом.

Я получил хороший опыт, используя новый стандарт C ++ 11 и заменяя другие библиотеки тем, что предлагает стандартная библиотека. Под словом «я» я также подразумеваю кодовую базу, в которой я работаю (отдел компании с более чем 100 000 сотрудников).

Такие библиотеки, как Loki или Boost, проделали довольно хорошую работу по изучению новых границ и продвижению C ++, для Boost на самом деле было явной целью создать новые компоненты, которые в конечном итоге будут стандартизированы.

В то время как стандартизированные версии std::shared_ptr, std::thread а также std::mutex может не хватать нескольких деталей, они хорошо спроектированы, переносимы и, учитывая, что они являются частью стандартной библиотеки, поставляемой с компилятором, они очень хорошо протестированы! Это важные моменты в их пользу. Это также помогает сделать ваш код перспективным и более легким в обслуживании, так что новым людям легче подключиться.

Таким образом, мой совет будет таким: используйте все, что может предложить C ++ 11 (включая стандартную библиотеку), насколько это возможно. Используйте только Loki, Boost или другие библиотеки, если это необходимо, но следите за их развитием.

3

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]