Giter VIP home page Giter VIP logo

sd6's People

Contributors

brevzin avatar cpplearner avatar frederick-vs-ja avatar jwakely avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar

sd6's Issues

Now with twice the coroutines!

The 2020-2-27 revision of the official doc adds both __cpp_coroutines and __cpp_impl_coroutine as Language Feature-Test Macros, referencing (mostly) the same proposal and having the same values. If my reading of the new Policies is correct, __cpp_coroutines should have been deprecated on arrival, and __cpp_impl_coroutine should prevail.

P1902R1: __cpp_lib_constexpr_complex is missing in Wording

P1902R1 mentions:

[P0415R1] (Constexpr for std::complex): this paper proposes to introduce the macro __cpp_lib_constexpr_complex. That is, introducing a new macro for this header.

But __cpp_lib_constexpr_complex isn't listed in the 'Wording' section, and thus is not added to the draft standard when applying P1902R1.

Apply Belfast changes

Go through Straw Polls page and add/update macros as appropriate.

P1902 involves making many updates.

OOPS FORGOT for `__cpp_lib_deduction_guides` and `__cpp_lib_modules`

SD-FeatureTest currently says "OOPS FORGOT" for the "Header(s)" of __cpp_lib_deduction_guides and __cpp_lib_modules. I see that this is being emitted by central machinery:

sd6/sd6.tmpl

Lines 30 to 37 in 9b235df

{%- if 'header_list' in macro -%}
{%- for header in macro.header_list.split() | sort %}
`<{{header}}>`{% endfor -%}
{%- elif 'header_info' in macro -%}
{{macro.header_info}}
{%- else -%}
OOPS FORGOT
{%- endif -%}

because these macros don't have recorded header_lists:

sd6/macros.yaml

Lines 672 to 675 in 9b235df

- name: __cpp_lib_deduction_guides
rows:
- value: 201703
papers: P0433R2

sd6/macros.yaml

Lines 967 to 970 in 9b235df

- name: __cpp_lib_modules
rows:
- papers: P2465R3
value: 202207

Unlike most macros:

sd6/macros.yaml

Lines 1000 to 1004 in 9b235df

- name: __cpp_lib_not_fn
header_list: functional
rows:
- value: 201603
papers: P0005R4

For __cpp_lib_deduction_guides, it appears that LWG-3635 wants to add it, and it does specify a list of headers:

#define __cpp_lib_deduction_guides   201703L
  // also in <array>, <deque>, <forward_list>, <functional>, <list>, <map>,
  // <memory>, <optional>, <queue>, <regex>, <scoped_allocator>, <set>, <stack>,
  // <string>, <tuple>, <unordered_map>, <unordered_set>, <utility>, <valarray>,
  // <vector>

For __cpp_lib_modules, this absence is intentional; as P2465R3 explained:

Unlike all of the other library feature-test macros, this should not have a comment "// also in <HEADER>".

`<coroutine>` has no macro

While the language-level support for C++ coroutines has an assigned macro (__cpp_coroutines), there is no corresponding macro for library-level support. Other features split between language and library features do have both sets of macros (cf. <concepts>). Note that simply testing __has_include (<coroutine>) is not in keeping with the idea of versioning feature support.

The obvious fix is to create a new macro, __cpp_lib_coroutines, and assign it a value of 201902L, in keeping with the language macro.

Name of P1115 wrong

Says "Improving the Return Value of Erase-Like Algorithms II: Free erase/erase if" but should be erase_if (with underscore).

Add policies to SD-6

SD-6 should document all of our policies for when to use feature test macros. It doesn't yet.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.