Код C ++, поддерживающий несколько компиляторов - PullRequest
0 голосов
/ 02 ноября 2011

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

Мы должны реализовать механизмы синхронизации по-своему, чтобы обеспечить более широкую поддержку различных компиляторов. Другими словами, мы хотим писать мультиплатформенные библиотеки C ++.

Я довольно новичок в многоплатформенном программировании и области C ++ (ранее парень на Java). Может кто-нибудь показать мне, как начать, возможно, с простых примеров?

Ответы [ 3 ]

3 голосов
/ 02 ноября 2011

Хотя Boost может и не предоставить вам готовое решение, он содержит много информации и инструментов для работы с различными компиляторами. Я предлагаю вам проверить, как они справляются с этим, и посмотреть, сможете ли вы использовать часть их кода. На вашем месте я бы начал с Boost.Config .

1 голос
/ 02 ноября 2011

Для Windows используйте события и критические разделы. Для платформ UNIXy используйте мьютексы pthreads и условные переменные. Они должны работать на любом компиляторе, который поддерживает эти платформы.

Какие компиляторы вам нужно поддерживать? Методы синхронизации Boost поддерживают практически все компиляторы, которые вы, вероятно, будете использовать, включая GCC, компилятор Intel C ++ и Microsoft Visual Studio.

0 голосов
/ 02 ноября 2011

Boost уже разработал концепции дизайна, чтобы можно было отображать синхронизацию posix и windows в единый интерфейс нескольких компиляторов. Рассматривали ли вы расширение структуры повышения для работы на желаемых платформах?

...