[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