C++;支持多个编译器的代码 在C++的Boost库中,有同步机制,但是它只支持非常有限的编译器列表。

C++;支持多个编译器的代码 在C++的Boost库中,有同步机制,但是它只支持非常有限的编译器列表。,c++,compiler-construction,synchronization,cross-platform,C++,Compiler Construction,Synchronization,Cross Platform,我们必须以自己的方式实现同步机制,以便为不同的编译器提供更广泛的支持。换言之,我们希望编写多平台C++库。 我对多平台编程和C++领域(以前是java家伙)很陌生。有人能告诉我如何开始使用一些简单的例子吗?对于Windows,使用事件和关键部分。对于UNIXy平台,使用pthreads互斥体和条件变量。这些应该可以在任何支持这些平台的编译器上运行 您需要支持哪些编译器?Boost的同步方法支持几乎所有你可能使用的编译器,包括GCC、英特尔的C++编译器和微软VisualStudio.< /P>

我们必须以自己的方式实现同步机制,以便为不同的编译器提供更广泛的支持。换言之,我们希望编写多平台C++库。
我对多平台编程和C++领域(以前是java家伙)很陌生。有人能告诉我如何开始使用一些简单的例子吗?

对于Windows,使用事件和关键部分。对于UNIXy平台,使用pthreads互斥体和条件变量。这些应该可以在任何支持这些平台的编译器上运行


您需要支持哪些编译器?Boost的同步方法支持几乎所有你可能使用的编译器,包括GCC、英特尔的C++编译器和微软VisualStudio.< /P> < P> Windows,使用事件和关键部分。对于UNIXy平台,使用pthreads互斥体和条件变量。这些应该可以在任何支持这些平台的编译器上运行


您需要支持哪些编译器?Boost的同步方法支持几乎所有可能使用的编译器,包括GCC、英特尔的C++编译器和微软VisualStudio.< /P> < P> Boost已经制定出设计概念,以便能够将POSIX和Windows同步映射到几个编译器之间的一致接口。您是否考虑过将boost框架扩展到您想要的平台上

Boost已经制定出设计概念,能够将posix和windows同步映射到跨多个编译器的一致接口中。您是否考虑过将boost框架扩展到您想要的平台上

尽管Boost可能无法为您提供现成的解决方案,但它包含了大量信息和工具,可用于处理不同的编译器。我建议您检查一下他们是如何管理它的,看看您是否可以利用他们的一些代码。在您的位置,我将从开始。

尽管Boost可能不会为您提供现成的解决方案,但它包含了大量信息和工具,用于处理不同的编译器。我建议您检查一下他们是如何管理它的,看看您是否可以利用他们的一些代码。你说得对,但我的老板告诉我,这还不够,他想让我扩展它,为编译器提供更广泛的支持。问问他希望你支持哪些编译器。我能想象得到的唯一想要支持的是(它似乎是编译boost)和(我想它是编译boost)。在过去的几年里,我没有听说有人使用过任何其他编译器。@DavidSchwartz CentOS就是一个例子?目标是:编写一段适用于所有情况的代码。@TerryLiYifeng:这不是一个明智的目标。这就是为什么这么多软件在某些平台上运行得如此糟糕和不可靠的部分原因。在某些平台上有一种“正确的方式”来做事情,但它们并不完全相同。今天,在一个还不存在的平台上,你无法知道正确的方法是什么。如果您想要我们今天能够制作的最具可移植性的代码块,只需使用Boost。这是它的目标,你不可能比他们做得更好。你是对的,但我的老板告诉我这还不够,他想让我扩展它,为编译器提供更广泛的支持。问问他希望你支持哪些编译器。我能想象的唯一其他想要支持的是(似乎是编译boost)和(我认为它编译了boost).在过去的几年里,我没有听说有人使用过任何其他编译器。@DavidSchwartz CentOS为例?目标是:编写一段适用于所有情况的代码。@TerryLiYifeng:这不是一个明智的目标。这就是为什么这么多软件在某些平台上工作得如此糟糕和不可靠的部分原因。有一个“正确的方法”在某些平台上做一些事情,但它们并不完全相同。今天,你无法知道在一个甚至还不存在的平台上正确的方法是什么。如果你想要最可移植的,我们今天可以制作一段代码,只需使用Boost。这是它的目标,你不可能比他们做得更好。