<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:#0563C1;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:#954F72;
        text-decoration:underline;}
span.EmailStyle17
        {mso-style-type:personal-compose;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="EN-US" link="#0563C1" vlink="#954F72">
<div class="WordSection1">
<p class="MsoNormal">In the CD, freestanding pulls in the <version> header. The version header is required to define feature test macros like __cpp_lib_filesystem, even though filesystem is not required to be part of freestanding. It seems misleading to require
the macro to be defined in <version> in this case.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">I’ve started down this library rabbit hole in <a href="https://wg21.link/p1641R0">
https://wg21.link/p1641R0</a>. That paper is targeting C++23 and will need some updates for Belfast.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Going further on the library side, sometimes we have feature test macros where some of the feature is freestanding, and some isn’t. It would be nice if we could agree on a policy and a code pattern for how this should be handled. A potential
example is __cpp_lib_chrono. For C++20, none of chrono will be freestanding, but some of my papers have suggested making parts of chrono freestanding (like the duration math).<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Now to get way ahead of myself and start talking about the core language. Suppose we made floating point not required for freestanding. How would we handle feature test macros for that? I have a strawman suggestion in
<a href="https://wg21.link/p1105r1">https://wg21.link/p1105r1</a> to define the macro __cpp_freestanding_no_floating_point_support, but I haven’t yet tried to use this macro in a meaningful way.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">What is the best venue to discuss these feature test macro design decisions? Should we have a telecon at some point in the future? An in-person half-day at Belfast? Or should I just post a paper for review on this list and attempt to
determine consensus from the mailing list only?<o:p></o:p></p>
</div>
</body>
</html>