View Issue Details Jump to Notes ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0015311CMakeCMakepublic2014-12-16 14:462015-06-01 08:38
ReporterPaweł Stankowski 
Assigned ToStephen Kelly 
PriorityhighSeveritytextReproducibilityalways
StatusclosedResolutionfixed 
PlatformOSOS Version
Product Version 
Target VersionCMake 3.1.1Fixed in VersionCMake 3.1.1 
Summary0015311: CMAKE_CXX_KNOWN_FEATURES variable documentation should be corrected
DescriptionCMake 3.1 documentation available at www.cmake.org contains reference to obsolete documentation of override control features. According to

 http://msdn.microsoft.com/en-us/library/hh567368.aspx [^]

final version of override control in C++11 is based on changes from N3206 and N3272 documents. It means that defining [[hiding]],[[override]] and other attributes and hiding control are not part of C++11 Standard.

Current CMake documentation:
cxx_final
    Override control final keyword, as defined in N2928.
cxx_override
    Override control override keyword, as defined in N2928.

Even CMake unit tests Tests/CompileFeatures/cxx_{final,override}.cpp check only for 'override' keyword support, and not for attributes support from N2928.

There is a bug in GCC site, which potencially could be a reason for this one.

The GCC 4.7 changes page

 https://gcc.gnu.org/gcc-4.7/changes.html [^]

contains an example of usage for 'override' keyword (and not attribute), but the 'Status of Experimental C++11 Support in GCC 4.7' page

 https://gcc.gnu.org/gcc-4.7/cxx0x_status.html [^]

lists only proposal N2928 as the one being implemented. This bug was fixed in the general C++0x/C++11 Support in GCC page

 https://gcc.gnu.org/projects/cxx0x.html [^]

Btw: Support for C++11 attribute syntax was added in g++ 4.8

 https://gcc.gnu.org/gcc-4.8/changes.html [^]

TagsNo tags attached.
Attached Files

 Relationships

  Notes
(0037469)
Paweł Stankowski (reporter)
2014-12-16 14:52
edited on: 2014-12-16 17:35

Sorry for links, I was trying to use DokuWiki formatting from http://www.mantisbt.org/wiki/doku.php/mantisbt:syntax [^] which apparently is not supported by this site.

Why is this bug scheduled for fix in CMake 3.2? This is documentation bug, shouldn't that be fixed in CMake 3.1.x series as well?

(0037744)
Stephen Kelly (developer)
2015-01-19 14:23

Hi,

I removed the DokuWiki formatting to aid readabililty.

The N2928 document shows the motivation for the feature, and is therefore useful to users of it. You are right though that the final standard did not use attributes, but keywords instead. The N3206 and N3272 documents don't list motivation, but are differential revisions on the particular standardese. N3206 is confusing from a user perspective because it introduces virtual specifier keywords ('new' and 'explicit') which are then removed in N3272.

So, what should the documentation link to? All three of those documents? Or none of them? Is there a more-suitable single link to show the motivation and syntax of the feature?
(0037746)
Paweł Stankowski (reporter)
2015-01-19 16:17

Most compilers list all 3 documents and links. This is how GCC, Intel Compiler, MSDN, LLVM and Clang sites handle this situation.
(0037747)
Stephen Kelly (developer)
2015-01-19 16:34

Ok, I've updated the CMake docs to do the same.

 Help: Link relevant documents for virtual override features (0015311)
 http://www.cmake.org/gitweb?p=cmake.git;a=commitdiff;h=59e3569c [^]
(0037748)
Brad King (manager)
2015-01-19 16:40

Re 0015311:0037747: Thanks, Steve. I backported it for merge to 'release' for 3.1.1:

 Help: Link relevant documents for virtual override features
 http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=d8f93f6e [^]
(0037751)
Paweł Stankowski (reporter)
2015-01-19 18:19

Looks very good. Thanks, guys :)
(0038848)
Robert Maynard (manager)
2015-06-01 08:38

Closing resolved issues that have not been updated in more than 4 months.

 Issue History
Date Modified Username Field Change
2014-12-16 14:46 Paweł Stankowski New Issue
2014-12-16 14:52 Brad King Assigned To => Stephen Kelly
2014-12-16 14:52 Brad King Status new => assigned
2014-12-16 14:52 Brad King Target Version => CMake 3.2
2014-12-16 14:52 Paweł Stankowski Note Added: 0037469
2014-12-16 17:35 Paweł Stankowski Note Edited: 0037469
2015-01-19 14:16 Stephen Kelly Note Added: 0037743
2015-01-19 14:16 Stephen Kelly Description Updated
2015-01-19 14:17 Stephen Kelly Note Deleted: 0037743
2015-01-19 14:23 Stephen Kelly Note Added: 0037744
2015-01-19 16:17 Paweł Stankowski Note Added: 0037746
2015-01-19 16:34 Stephen Kelly Note Added: 0037747
2015-01-19 16:34 Stephen Kelly Status assigned => resolved
2015-01-19 16:34 Stephen Kelly Fixed in Version => CMake 3.1.1
2015-01-19 16:34 Stephen Kelly Resolution open => fixed
2015-01-19 16:38 Brad King Target Version CMake 3.2 => CMake 3.1.1
2015-01-19 16:40 Brad King Note Added: 0037748
2015-01-19 18:19 Paweł Stankowski Note Added: 0037751
2015-06-01 08:38 Robert Maynard Note Added: 0038848
2015-06-01 08:38 Robert Maynard Status resolved => closed


Copyright © 2000 - 2018 MantisBT Team