[cmake-developers] C++11 all features available?

Sebastian Holtermann seblist at xwmw.org
Wed Aug 23 04:41:11 EDT 2017


> > > > it looks like C++11 is now a requirement for CMake itself.
> > > 
> > > Yes.  We just merged this:
> > >   https://gitlab.kitware.com/cmake/cmake/merge_requests/1132
> > > 
> > > but you beat us to the announcement.
> > 
> > I saw the MR last week and was delighted. The iterator type naming in
> > `for`
> > loops drove me mad.
> 
> Feel free to use `auto`, but you will need to hold off range based for
> loops.

Okay, that's nice.
Just to say, even without auto 

  for (const std::string& item : lst) {
    ...
  }

is easier to comprehend than

  for (std::vector<std::string>::const_iterator it = lst.begin();
       it != lst.end(); ++it) {
    const std::string& item = *it;
    ...
  }

which is as C++(98) as can be.

> > > > But does this mean *all* the nice features from the std library can be
> > > > used?
> > > 
> > > Not all.  We're still limited by some of the older C++11 compilers.
> > > We'll have to see how things go on nightly builds.  As limitations
> > > are found they can be documented in `Help/dev/source.rst`.
> 
> Please have a look at the nightly testers on
> https://open.cdash.org/index.php?project=CMake and compare the feature
> availability here: Please see
> http://en.cppreference.com/w/cpp/compiler_support
> 
> Currently CMake is still built with Visual Studio 2010, ie. MSVC 16.0.
> 
> That means we should be able to use auto, nullptr, lambdas, std::array,
> std::function, type traits, trailing return types, r-values, ...

Very nice. C++11 was such a great improvement to the language.
It's much more fun to work with. Even with the slightly limited
feature set available in CMake.

-Sebastian



More information about the cmake-developers mailing list