我有一个关于C++中STM(软件事务内存(的最新技术的问题。我在cppreference网站(transactional_memory(上读到这是一个实验性功能,但它也说页面正在建设中,所以我的问题是:
标准现在支持此功能吗?(例如c++17或c++20(
如果还没有,cppreference页面会显示:
GCC从6.1版起支持此技术规范(需要启用-fgnu tm(。GCC自4.7起支持本规范的旧版本。
较新的GCC版本也支持此功能吗
短语"STM"软件";以及";事务性的";不出现在标准中(工作草案,N4849200-01-14(。所以我认为可以肯定地说,它没有得到标准的支持。
对于GCC,10.2.0版本的man g++
表示:
-fgnu-tm
当指定选项
-fgnu-tm
时,编译器会为英特尔当前事务内存ABI规范文档(修订版1.1,2009年5月6日(的Linux变体生成代码。这是一个实验性特性,随着官方规范的变化,其接口可能会在GCC的未来版本中发生变化。请注意,并非所有体系结构都支持此功能。有关GCC对事务内存的支持的更多信息,
请注意,非调用异常(-fnon调用异常(不支持事务性内存功能。
第二段确实在句中结束。也许他们想链接到TransactionalMemory上的GCC wiki页面。
无论如何,GCC中的支持似乎从4.7版本开始就以某种形式出现了。