C++ Logo

sg10

Advanced search

[SG10] pre-defined names, but also a header?

From: Thomas Plum <tplum_at_[hidden]>
Date: Tue, 4 Jun 2013 22:12:15 +0000
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.

Received on 2013-06-05 00:12:59