llvm::make_unique的目的是什么

What is the purpose of llvm::make_unique?

本文关键字:是什么 make llvm unique      更新时间:2023-10-16

在llvm的编译器实现教程中(例如此处(使用llvm::make_unique。他们不使用std::make_unique的原因是什么?我找不到任何关于这方面的明确文件。

TL;DR

LLVM是使用符合C++11的代码编写的,而std::make_unique是C++14的一个特性。因此,如果他们想要make_unique,他们需要实现它

详细信息

如果我们去LLVM编码标准,C++标准版本部分说:

LLVM、Clang和LLD目前使用符合C++11的代码编写,尽管我们仅限于作为主机编译器支持的主要工具链中可用的功能。LLDB项目在一组受支持的主机编译器中更具攻击性,因此使用了更多的功能。不管支持什么功能,代码都应该是标准的、可移植的和现代的C++11代码。我们避免不必要的供应商特定扩展等。

我们可以从cpprreference中看到,std::make_unique是一个C++14特性。如果他们想使用make_unique,那么他们就不能使用std版本。

我们可以从最近的llvm开发讨论中看到,迁移到C++14仍然是一个开放的主题。