Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/150.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 编译gcc/g++/libstdc&x2B+;方法_C++_Gcc_Stl_G++ - Fatal编程技术网

C++ 编译gcc/g++/libstdc&x2B+;方法

C++ 编译gcc/g++/libstdc&x2B+;方法,c++,gcc,stl,g++,C++,Gcc,Stl,G++,,这里解释了这个选项,这是否意味着stl是线程安全的,默认情况下是这样的?阅读精彩的手册,阅读GCC官方网站上的最新版本,而不是引用古老版本的12年前的文档副本!--enable threads的当前文档位于,解释libstdc++是否是线程安全的文档位于 通过查阅官方文件,你会得到一个更好的答案,而不是继续问下去,希望你能从那些真正知道他们在说什么的人那里得到答案 1) 您所询问的选项只影响GCC,因此它显然只影响GCC的标准库,它没有说明stl中的线程安全性 2) 大多数C++03库实现(包

,这里解释了这个选项,这是否意味着stl是线程安全的,默认情况下是这样的?

阅读精彩的手册,阅读GCC官方网站上的最新版本,而不是引用古老版本的12年前的文档副本!
--enable threads
的当前文档位于,解释libstdc++是否是线程安全的文档位于

通过查阅官方文件,你会得到一个更好的答案,而不是继续问下去,希望你能从那些真正知道他们在说什么的人那里得到答案

1) 您所询问的选项只影响GCC,因此它显然只影响GCC的标准库,它没有说明stl中的线程安全性

2) 大多数C++03库实现(包括GCC)和所有C++11库实现都遵循STL的SGI实现使用的线程安全定义:


3) 正如该文档中所解释的,如果您遵循关于不从多个线程访问对象的简单规则,
--enable threads
,则GCC的标准库始终是“线程安全的”。它影响的是(如上面的评论所述)底层多线程API,该API用于实现libstdc++内部所需的内部互斥和线程特性。在几乎所有平台上,唯一受支持的选项将是
--启用线程=单个
(相当于
--禁用线程
)或本机线程模型(例如,在POSIX平台上
--启用线程=POSIX
,在Windows上
--启用线程=win32
)因此,您可能不想使用该选项,只需让GCC为您的平台选择默认值。

阅读精彩的手册,并阅读GCC官方网站上的最新版本,而不是引用古老版本的12年前的文档副本!
--enable threads
的当前文档位于,解释libstdc++是否是线程安全的文档位于

通过查阅官方文件,你会得到一个更好的答案,而不是继续问下去,希望你能从那些真正知道他们在说什么的人那里得到答案

1) 您所询问的选项只影响GCC,因此它显然只影响GCC的标准库,它没有说明stl中的线程安全性

2) 大多数C++03库实现(包括GCC)和所有C++11库实现都遵循STL的SGI实现使用的线程安全定义:


3) 正如该文档中所解释的,如果您遵循关于不从多个线程访问对象的简单规则,
--enable threads
,则GCC的标准库始终是“线程安全的”。它影响的是(如上面的评论所述)底层多线程API,该API用于实现libstdc++内部所需的内部互斥和线程特性。在几乎所有平台上,唯一受支持的选项将是
--启用线程=单个
(相当于
--禁用线程
)或本机线程模型(例如,在POSIX平台上
--启用线程=POSIX
,在Windows上
--启用线程=win32
)因此,您可能不想使用该选项,只需让GCC为您的平台选择默认值。

当我阅读链接中的文本时,它与线程安全无关,但与应该使用的底层线程系统无关。如上所述,我将不考虑它,假设标准对象是多读、单写的。如果多线程设置了一些std::mutexs。当我读取链接中的文本时,它与线程安全无关,但与应该使用的底层线程系统无关。如上所述,我将不讨论它,假设标准对象是多读、单写的。如果多线程设置了一些std::mutexs。