Hi,
I had tested 6.24.02 built from scratch using the roottest test suite. Since the C7’s system compiler, GCC 4.8.5, has incomplete C++14 supports, I gave -DCMAKE_CXX_STANDARD=11
to CMake.
-- ROOT Configuration
System Linux-3.10.0-1160.31.1.el7.x86_64
Processor 20 core Intel(R) Xeon(R) CPU E5-2640 v4 @ 2.40GHz (x86_64)
Build type Release
Install path /usr/local
Compiler GNU 4.8.5
Compiler flags:
C -pipe -Wall -W -pthread -O3 -DNDEBUG
C++ -std=c++11 -pipe -Wshadow -Wall -W -Woverloaded-virtual -fsigned-char -pthread -O3 -DNDEBUG
Linker flags:
Executable -rdynamic
Module
Shared -Wl,--no-undefined -Wl,--hash-style="both"
Then, it fails to build the test suite due to make_unique
which is introduced in C++14:
/home/ogino/root/roottest/root/roofitstats/vectorisedPDFs/VectorisedPDFTests.cxx: In member function 'void PDFTest::makePlots(std::string&&) const':
/home/ogino/root/roottest/root/roofitstats/vectorisedPDFs/VectorisedPDFTests.cxx:133:17: error: 'make_unique' is not a member of 'std'
auto canv = std::make_unique<TCanvas>();
^
/home/ogino/root/roottest/root/roofitstats/vectorisedPDFs/VectorisedPDFTests.cxx:133:41: error: expected primary-expression before '>' token
auto canv = std::make_unique<TCanvas>();
^
/home/ogino/root/roottest/root/roofitstats/vectorisedPDFs/VectorisedPDFTests.cxx:133:43: error: expected primary-expression before ')' token
auto canv = std::make_unique<TCanvas>();
^
The question is: does roottest require the same C++ standard as the development branch of ROOT? (currently C++14)
Steps to reproduce:
git clone https://github.com/root-project/root.git
mkdir build
cd build
cmake3 -Dtesting=ON -Droottest=ON -DCMAKE_CXX_STANDARD=11 ../root
LANG=C make
ROOT Version: 6.24.02
Platform: CentOS 7
Compiler: GCC 4.8.5