C++ Logo

SG10

Advanced search

Subject: [SG10] pre-defined names, but also a header?
From: Thomas Plum (tplum_at_[hidden])
Date: 2013-06-04 17:12:15


On the June 3 telecon, I think we reached a consensus that presence-or-absence of language features should preferably be pre-defined by the compiler itself.

We don't yet have a consensus whether a header, such as <cpp_features>, should be required, optional, or not mentioned. I took an action item to present the arguments in favor of such a header.

I started to make a list of the various use cases for the sg10 report(s), but first we need some agreement about the various roles people play ... this is a very rough draft, so please provide further improvements ...

Compiler Developer - writes the compiler or Front-End;
Compiler Enhancer - writes code-generator or machine-specific optimization or Packaged Compiler;
Library Developer - writes the standard Library, or portions of library;
Library Enhancer - writes machine-specific optimization or Packaged Library;
Test-Suite Developer - writes the test suite, or portions of Test Suite;
QA Engineer - uses Test Suite to test Environment (Front-End, or Packaged Compiler, and/or Library, or Packaged Library);
App Developer - writes the App;
App Library Designer - designs App Library for use by App Developer;
App Leader - develops Tools and procedures for use by App Developer;

Using these Roles, here are a few Use Cases that could be accommodated without any extra headers ...

Compiler Developer produces pre-defined macros to define what features are provided by Front-End;
Compiler Enhancer modifies Front-End so that the pre-defined macros define the features actually provided in Packaged Compiler;
Library Developer defines macros in standard headers to specify the features provided by Library;
Library Enhancer modifies the macros in standard headers to specify the features actually provided by Packaged Library;
App Library Designer and App Leader design headers for use by App Developer, making use of #if to adapt to 2 or more Environments.

However, there are several other Use Cases that probably would make use of headers ...

QA Engineer uses header to verify macros that are provided in Front-End, or Packaged Compiler, or Library, or Packaged Library;
Test Suite Developer produces header for use by QA Engineer;
Compiler Enhancer produces header to define the features actually provided in Packaged Compiler, possibly correcting mistakes or name-changes;
Library Enhancer produces header to define the features actually provided in Packaged Library, possibly correcting mistakes or name-changes;
App Library Designer and App Leader design headers for use by App Developer, making use of #if to adapt to 2 or more Environments, possibly defining macros to the lowest-common-denominator of the Environments.


SG10 list run by sg10-owner@lists.isocpp.org