[llvm-dev] Clang and LLVM are now using C++14 🥳

JF Bastien via llvm-dev llvm-dev at lists.llvm.org
Wed Aug 14 15:55:02 PDT 2019

Hi C++ lovers,

Clang and LLVM are now using C++14, and it looks like all the bots are as happy as they ever get. We can therefore start removing workarounds for older toolchains, using C++14 constructs which ADT / Support used to provide, and using new C++14 constructs such as generic lambdas.

I’ve already committed a few modernizations (and have one more pending review <https://reviews.llvm.org/D66244>), but would appreciate it if others jumped in. I see Jonas is already removing llvm::make_unique! There’s some FIXMEs too if anyone wants to FIXTHEM:

lldb/source/Plugins/ExpressionParser/Clang/ClangModulesDeclVendor.cpp:    // FIXME: Use C++14 std::equal(it, it, it, it) variant once it's available.
lldb/source/Symbol/ClangASTContext.cpp:  // FIXME: In C++14 and later, we can just pass m2Type->param_type_end()
llvm/include/llvm/ADT/PointerUnion.h:  // FIXME: In C++14, replace this with
llvm/include/llvm/ExecutionEngine/Orc/LazyEmittingLayer.h:          // FIXME: Use capture-init when we move to C++14.
llvm/include/llvm/ExecutionEngine/Orc/RPCSerialization.h:      // FIXME: Move capture Serialize once we have C++14.
llvm/include/llvm/ExecutionEngine/Orc/RPCUtils.h:    // FIXME: Move handler into wrapped handler once we have C++14.
compiler-rt/include/fuzzer/FuzzedDataProvider.h:    // TODO(Dor1s): switch to static_assert once C++14 is allowed.
llvm/include/llvm/Object/ObjectFile.h:  // TODO: constructors could be removed when C++14 would be adopted.

Thanks and happy 14’ing,

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20190814/15d3f349/attachment-0001.html>

More information about the llvm-dev mailing list