From 99ae7d95ad0daaf8606275d413eff235f2b04e8e Mon Sep 17 00:00:00 2001 From: Jagrut Dave Date: Thu, 1 Apr 2021 11:28:40 -0400 Subject: [PATCH 1/9] Fixes for 5 issues --- src/.gitignore | 2 ++ src/basicconcepts.tex | 2 +- src/compatibility.tex | 2 +- src/config.tex | 3 ++- src/conformance.tex | 8 -------- src/cover-wd.tex | 1 + src/declarators.tex | 10 +++++----- src/expressions.tex | 2 +- src/general.tex | 16 +++------------- src/intro.tex | 2 +- src/languagesupport.tex | 6 +++--- src/preface.tex | 4 +--- src/references.tex | 3 +-- src/styles.tex | 4 ++-- src/templates.tex | 4 ++-- 15 files changed, 26 insertions(+), 43 deletions(-) diff --git a/src/.gitignore b/src/.gitignore index 7ded3b8..0939d92 100644 --- a/src/.gitignore +++ b/src/.gitignore @@ -4,3 +4,5 @@ *.ind ts.* !ts.tex + +*DS_Store* diff --git a/src/basicconcepts.tex b/src/basicconcepts.tex index 3e10abf..2adaa10 100644 --- a/src/basicconcepts.tex +++ b/src/basicconcepts.tex @@ -58,4 +58,4 @@ \rSec0[conv]{Standard conversions} -No changes are made to Clause \the\value{chapter} of the \Cpp Standard. +ISO/IEC 14882:2020, Clause \the\value{chapter} applies. diff --git a/src/compatibility.tex b/src/compatibility.tex index c5d910b..19aeb72 100644 --- a/src/compatibility.tex +++ b/src/compatibility.tex @@ -29,5 +29,5 @@ \added{The \tcode{reflexpr} keyword is added to introduce meta-data through a \grammarterm{reflexpr-specifier}.} \effect Valid ISO \CppXIV{} code using \tcode{concept}\removed{ or}\added{,} \tcode{requires}\added{, or \tcode{reflexpr}} -as an identifier is not valid in this International Standard. +as an identifier is not valid in this document. \end{std.txt} diff --git a/src/config.tex b/src/config.tex index e6850e3..c7a354d 100644 --- a/src/config.tex +++ b/src/config.tex @@ -2,6 +2,7 @@ %%-------------------------------------------------- %% Version numbers \newcommand{\docno}{N4856} +\newcommand{\isodocno}{ISO/IEC 23619:2021(E)} \newcommand{\prevdocno}{N4818} \newcommand{\tsver}{201902} @@ -13,6 +14,6 @@ \newcommand{\reldate}{\today} % \newcommand{\reldate}{2018-04-04} -\newcommand{\copyrightyear}{2020} +\newcommand{\copyrightyear}{2021} %% Library chapters diff --git a/src/conformance.tex b/src/conformance.tex index bcea859..0c9fbfc 100644 --- a/src/conformance.tex +++ b/src/conformance.tex @@ -40,11 +40,3 @@ \pnum \begin{note} Implementations are encouraged to provide the additional member functions, where possible. It is intended that POSIX and Windows implementations will provide them. \end{note} - - -\rSec1[intro.ack]{Acknowledgments} - -\pnum -The design of this specification is based, in part, on the Asio library -written by Christopher Kohlhoff. - diff --git a/src/cover-wd.tex b/src/cover-wd.tex index bf1029f..16d8a2e 100644 --- a/src/cover-wd.tex +++ b/src/cover-wd.tex @@ -6,6 +6,7 @@ \thispagestyle{empty} \begingroup \def\hd{\begin{tabular}{ll} + \textbf{ISO Document:} & {\larger\isodocno} \\ \textbf{Document Number:} & {\larger\docno} \\ \textbf{Date:} & \reldate \\ \textbf{Revises:} & \prevdocno \\ diff --git a/src/declarators.tex b/src/declarators.tex index 066621f..5650890 100644 --- a/src/declarators.tex +++ b/src/declarators.tex @@ -15,20 +15,20 @@ \rSec0[class]{Classes} -No changes are made to Clause \the\value{chapter} of the \Cpp Standard. +ISO/IEC 14882:2020, Clause \the\value{chapter} applies. \rSec0[class.derived]{Derived classes} -No changes are made to Clause \the\value{chapter} of the \Cpp Standard. +ISO/IEC 14882:2020, Clause \the\value{chapter} applies. \rSec0[class.access]{Member access control} -No changes are made to Clause \the\value{chapter} of the \Cpp Standard. +ISO/IEC 14882:2020, Clause \the\value{chapter} applies. \rSec0[special]{Special member functions} -No changes are made to Clause \the\value{chapter} of the \Cpp Standard. +ISO/IEC 14882:2020, Clause \the\value{chapter} applies. \rSec0[over]{Overloading} -No changes are made to Clause \the\value{chapter} of the \Cpp Standard. +ISO/IEC 14882:2020, Clause \the\value{chapter} applies. diff --git a/src/expressions.tex b/src/expressions.tex index fac6e49..81d650b 100644 --- a/src/expressions.tex +++ b/src/expressions.tex @@ -77,4 +77,4 @@ \rSec0[stmt.stmt]{Statements} -No changes are made to Clause \the\value{chapter} of the \Cpp Standard. +ISO/IEC 14882:2020, Clause \the\value{chapter} applies. diff --git a/src/general.tex b/src/general.tex index ecbc844..a50878a 100644 --- a/src/general.tex +++ b/src/general.tex @@ -3,7 +3,7 @@ \rSec1[intro.compliance]{Implementation compliance} \pnum -Conformance requirements for this specification are those defined in subclause +Conformance requirements for this document are those defined in subclause \ref{intro.compliance} in the C++ Standard. Similarly, all references to the C++ Standard in the resulting document shall be taken as referring to the resulting document itself. \begin{note} @@ -16,7 +16,7 @@ Whenever a name \tcode{x} declared in subclause \ref{reflect} at namespace scope is mentioned, the name \tcode{x} is assumed to be fully qualified as \tcode{::std::experimental::reflect::v1::x}, unless otherwise specified. -The header described in this specification (see Table~\ref{tab:info.headers}) +The header described in this document (see Table~\ref{tab:info.headers}) shall import the contents of \tcode{::std::experimental::reflect::v1} into \tcode{::std::experimental::reflect} as if by: @@ -40,7 +40,7 @@ \rSec1[intro.features]{Feature-testing recommendations} \pnum -An implementation that provides support for this Technical Specification shall define each feature test macro defined in \tref{intro.features} if no associated headers are indicated for that macro, and if associated headers are indicated for a macro, that macro is defined after inclusion of one of the corresponding headers specified in the table. +An implementation that provides support for this document shall define each feature test macro defined in \tref{intro.features} if no associated headers are indicated for that macro, and if associated headers are indicated for a macro, that macro is defined after inclusion of one of the corresponding headers specified in the table. \begin{floattable}{Feature-test macros}{tab:intro.features} {lll} @@ -50,13 +50,3 @@ \tcode{__cpp_reflection} & \tcode{\tsver} & none \\ \tcode{__cpp_lib_reflection} & \tcode{\tsver} & \tcode{} \\ \end{floattable} - -\rSec1[intro.ack]{Acknowledgements} - -\pnum -This work is the result of a collaboration of researchers in industry and -academia. We wish to thank the original authors of this TS, Mat\'{u}\v{s} -Chochl\'{i}k, Axel Naumann, and David Sankel. We also wish to thank people who -made valuable contributions within and outside these groups, including Ricardo -Fabiano de Andrade, Roland Bock, Chandler Carruth, Jackie Kay, A. Joël Lamotte, -Jens Maurer, and many others not named here who contributed to the discussion. diff --git a/src/intro.tex b/src/intro.tex index 0105e1b..8b392e4 100644 --- a/src/intro.tex +++ b/src/intro.tex @@ -13,7 +13,7 @@ \pnum The International Standard, ISO/IEC 14882, together with the C++ Extensions for Concepts, ISO/IEC TS 19217:2015 provide important context and specification for -this document. This document is written as a set of changes against the +this document. This document is written as a set of changes against the specification of ISO/IEC 14882, as modified by C++ Extensions for Concepts, ISO/IEC TS 19217:2015. Instructions to modify or add paragraphs are written as explicit instructions. Modifications made directly to existing text from the diff --git a/src/languagesupport.tex b/src/languagesupport.tex index 56cd064..f4dcb10 100644 --- a/src/languagesupport.tex +++ b/src/languagesupport.tex @@ -955,7 +955,7 @@ Alias entities are not returned by meta-object operations (\ref{reflect.concepts.alias}). \pnum -If subsequent specializations of operations on the same reflected entity could give different constant expression results (for instance for \tcode{get_name_v} because the parameter's function is redeclared with a different parameter name between the two points of instantiation), the program is ill-formed, no diagnostic required. +Subsequent specializations of operations on the same reflected entity can give different constant expression results (for instance for \tcode{get_name_v} because the parameter's function is redeclared with a different parameter name between the two points of instantiation). In such cases, the program is ill-formed, and no diagnostic is required. \begin{example}\begin{codeblock} void func(int a); auto x1 = get_name_v>>; @@ -1116,7 +1116,7 @@ namespace n { template class A; } using a_m = reflexpr(n::A); \end{codeblock} -the value of \tcode{get_name_v} is \tcode{"A"} while the value of \tcode{get_display_name_v} might be \tcode{"n::A"}. +the value of \tcode{get_name_v} is \tcode{"A"} while the value of \tcode{get_display_name_v} can be \tcode{"n::A"}. \end{note} \pnum @@ -1284,7 +1284,7 @@ A specialization of any of these templates with a meta-object type that is reflecting an incomplete type renders the program ill-formed. Such errors are not in the immediate context (\cxxref{temp.deduct}). -Members introduced by \grammarterm{using-declaration}{s} (\cxxref{namespace.udecl}) are included in the sequences below where applicable; the \tcode{Scope} of these members remains that of the declaration of the referenced entity. \begin{note} These members are not \tcode{Aliase}s, see \ref{reflect.ops}. A member injected into a derived class may have different access. \end{note} +Members introduced by \grammarterm{using-declaration}{s} (\cxxref{namespace.udecl}) are included in the sequences below where applicable; the \tcode{Scope} of these members remains that of the declaration of the referenced entity. \begin{note} These members are not \tcode{Aliase}s, see \ref{reflect.ops}. A member injected into a derived class can have different access. \end{note} \begin{itemdecl} template struct get_public_data_members; diff --git a/src/preface.tex b/src/preface.tex index a18b0ec..fb83d50 100644 --- a/src/preface.tex +++ b/src/preface.tex @@ -52,6 +52,4 @@ \chapter{Foreword} in the Technical Barriers to Trade (TBT) see the following URL: \href{http://www.iso.org/iso/foreword.html}{\tcode{www.iso.org/iso/foreword.html}}. -This document was prepared by -Technical Committee ISO/IEC JTC 1, \textit{Information technology}, -Subcommittee SC 22, \textit{Programming languages, their environments and system software interfaces}. +This document was prepared by Technical Committee ISO/IEC JTC 1, \textit{Information technology}, Subcommittee SC 22, \textit{Programming languages, their environments and system software interfaces}. diff --git a/src/references.tex b/src/references.tex index 61427d9..23244a4 100644 --- a/src/references.tex +++ b/src/references.tex @@ -19,6 +19,5 @@ \pnum The numbering of clauses, subclauses, and paragraphs in this document reflects -the numbering in the C++ Standard as modified by the Concepts-TS. References to clauses and subclauses not -appearing in this document refer to the original unmodified text +the numbering in the C++ Standard as modified by the Concepts-TS. References to clauses and subclauses not appearing in this document refer to the original unmodified text in the C++ Standard. diff --git a/src/styles.tex b/src/styles.tex index 7571c71..a1886aa 100644 --- a/src/styles.tex +++ b/src/styles.tex @@ -21,8 +21,8 @@ %% create page styles \makepagestyle{cpppage} -\makeevenhead{cpppage}{\textbf{\docno}}{}{} -\makeoddhead{cpppage}{\textbf{\docno}}{}{} +\makeevenhead{cpppage}{\textbf{\isodocno}}{}{} +\makeoddhead{cpppage}{\textbf{\isodocno}}{}{} \makeevenfoot{cpppage}{\leftmark}{\copyright\,ISO/IEC {\copyrightyear} -- All rights reserved}{\thepage} \makeoddfoot{cpppage}{\leftmark}{\copyright\,ISO/IEC {\copyrightyear} -- All rights reserved}{\thepage} diff --git a/src/templates.tex b/src/templates.tex index 9c4b983..b75f01f 100644 --- a/src/templates.tex +++ b/src/templates.tex @@ -35,8 +35,8 @@ \rSec0[except]{Exception handling} -No changes are made to Clause \the\value{chapter} of the \Cpp Standard. +ISO/IEC 14882:2020, Clause \the\value{chapter} applies. \rSec0[cpp]{Preprocessing directives} -No changes are made to Clause \the\value{chapter} of the \Cpp Standard. +ISO/IEC 14882:2020, Clause \the\value{chapter} applies. From e0ac5320c08ddb248f780a7cf6fafc5ce2d74db3 Mon Sep 17 00:00:00 2001 From: Jagrut Dave Date: Thu, 1 Apr 2021 11:52:38 -0400 Subject: [PATCH 2/9] Ignore DS_Store --- .gitignore | 1 + 1 file changed, 1 insertion(+) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..e43b0f9 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.DS_Store From 29a539e4dfd73c77870166bdec42b00eff0f6099 Mon Sep 17 00:00:00 2001 From: Jagrut Dave Date: Thu, 1 Apr 2021 12:26:13 -0400 Subject: [PATCH 3/9] Remove coloring --- src/declarations.tex | 2 +- src/definitions.tex | 4 +- src/languagesupport.tex | 124 ++++++++++++++++++++-------------------- src/macros.tex | 12 +--- src/ts.tex | 2 +- 5 files changed, 69 insertions(+), 75 deletions(-) diff --git a/src/declarations.tex b/src/declarations.tex index ab62c67..d93734f 100644 --- a/src/declarations.tex +++ b/src/declarations.tex @@ -105,7 +105,7 @@ Insert the following subclause: -\begin{std.txt}\color{addclr} +\begin{std.txt} \pnum The \grammarterm{reflexpr-specifier} yields a type \tcode{T} that allows diff --git a/src/definitions.tex b/src/definitions.tex index b09fd67..c412d03 100644 --- a/src/definitions.tex +++ b/src/definitions.tex @@ -8,6 +8,6 @@ terminological databases for use in standardization at the following addresses: \begin{itemize} - \item IEC Electropedia: available at \url{http://www.electropedia.org/} - \item ISO Online browsing platform: available at \url{http://www.iso.org/obp} + \item IEC Electropedia: available at http://www.electropedia.org/ + \item ISO Online browsing platform: available at http://www.iso.org/obp \end{itemize} diff --git a/src/languagesupport.tex b/src/languagesupport.tex index f4dcb10..0ca3a01 100644 --- a/src/languagesupport.tex +++ b/src/languagesupport.tex @@ -10,7 +10,7 @@ \rSec1[reflect]{Static reflection} \rSec2[reflect.general]{In general} -\begin{std.txt}\color{addclr} +\begin{std.txt} \pnum As laid out in \ref{dcl.type.reflexpr}, compile-time constant metadata, @@ -32,7 +32,7 @@ \rSec2[reflect.synopsis]{Header \tcode{} synopsis} -\begin{std.txt}\color{addclr} +\begin{std.txt} \begin{codeblock} namespace std { namespace experimental { @@ -436,7 +436,7 @@ \rSec2[reflect.concepts]{Concepts for meta-object types} -\begin{std.txt}\color{addclr} +\begin{std.txt} \pnum The operations on meta-object types defined here require meta-object types to satisfy certain concepts (\cxxref{dcl.spec.concept}). These concepts are also used to @@ -448,7 +448,7 @@ \rSec3[reflect.concepts.object]{Concept \tcode{Object}} -\begin{std.txt}\color{addclr} +\begin{std.txt} \begin{itemdecl} template concept bool Object = @\seebelow@; @@ -462,7 +462,7 @@ \end{std.txt} \rSec3[reflect.concepts.objseq]{Concept \tcode{ObjectSequence}} -\begin{std.txt}\color{addclr} +\begin{std.txt} \begin{itemdecl} template concept bool ObjectSequence = Object && @\seebelow@; @@ -477,7 +477,7 @@ \rSec3[reflect.concepts.tempparmscope]{Concept \tcode{TemplateParameterScope}} -\begin{std.txt}\color{addclr} +\begin{std.txt} \begin{itemdecl} template concept bool TemplateParameterScope = Scope && @\seebelow@; @@ -492,7 +492,7 @@ \rSec3[reflect.concepts.named]{Concept \tcode{Named}} -\begin{std.txt}\color{addclr} +\begin{std.txt} \begin{itemdecl} template concept bool Named = Object && @\seebelow@; @@ -508,7 +508,7 @@ \rSec3[reflect.concepts.alias]{Concept \tcode{Alias}} -\begin{std.txt}\color{addclr} +\begin{std.txt} \begin{itemdecl} template concept bool Alias = Named && ScopeMember && @\seebelow@; @@ -552,7 +552,7 @@ \rSec3[reflect.concepts.recordmember]{Concept \tcode{RecordMember}} -\begin{std.txt}\color{addclr} +\begin{std.txt} \begin{itemdecl} template concept bool RecordMember = ScopeMember && @\seebelow@; @@ -567,7 +567,7 @@ \rSec3[reflect.concepts.enumerator]{Concept \tcode{Enumerator}} -\begin{std.txt}\color{addclr} +\begin{std.txt} \begin{itemdecl} template concept bool Enumerator = Constant && @\seebelow@; @@ -582,7 +582,7 @@ \rSec3[reflect.concepts.variable]{Concept \tcode{Variable}} -\begin{std.txt}\color{addclr} +\begin{std.txt} \begin{itemdecl} template concept bool Variable = Typed && ScopeMember && @\seebelow@; @@ -597,7 +597,7 @@ \rSec3[reflect.concepts.scopemember]{Concept \tcode{ScopeMember}} -\begin{std.txt}\color{addclr} +\begin{std.txt} \begin{itemdecl} template concept bool ScopeMember = Named && @\seebelow@; @@ -612,7 +612,7 @@ \rSec3[reflect.concepts.typed]{Concept \tcode{Typed}} -\begin{std.txt}\color{addclr} +\begin{std.txt} \begin{itemdecl} template concept bool Typed = Object && @\seebelow@; @@ -627,7 +627,7 @@ \rSec3[reflect.concepts.namespace]{Concept \tcode{Namespace}} -\begin{std.txt}\color{addclr} +\begin{std.txt} \begin{itemdecl} template concept bool Namespace = Named && Scope && @\seebelow@; @@ -642,7 +642,7 @@ \rSec3[reflect.concepts.globalscope]{Concept \tcode{GlobalScope}} -\begin{std.txt}\color{addclr} +\begin{std.txt} \begin{itemdecl} template concept bool GlobalScope = Namespace && @\seebelow@; @@ -657,7 +657,7 @@ \rSec3[reflect.concepts.class]{Concept \tcode{Class}} -\begin{std.txt}\color{addclr} +\begin{std.txt} \begin{itemdecl} template concept bool Class = Record && @\seebelow@; @@ -672,7 +672,7 @@ \rSec3[reflect.concepts.enum]{Concept \tcode{Enum}} -\begin{std.txt}\color{addclr} +\begin{std.txt} \begin{itemdecl} template concept bool Enum = Type && Scope && ScopeMember && @\seebelow@; @@ -687,7 +687,7 @@ \rSec3[reflect.concepts.record]{Concept \tcode{Record}} -\begin{std.txt}\color{addclr} +\begin{std.txt} \begin{itemdecl} template concept bool Record = Type && Scope && ScopeMember && @\seebelow@; @@ -702,7 +702,7 @@ \rSec3[reflect.concepts.scope]{Concept \tcode{Scope}} -\begin{std.txt}\color{addclr} +\begin{std.txt} \begin{itemdecl} template concept bool Scope = Object && @\seebelow@; @@ -717,7 +717,7 @@ \rSec3[reflect.concepts.type]{Concept \tcode{Type}} -\begin{std.txt}\color{addclr} +\begin{std.txt} \begin{itemdecl} template concept bool Type = Named && @\seebelow@; @@ -735,7 +735,7 @@ \rSec3[reflect.concepts.const]{Concept \tcode{Constant}} -\begin{std.txt}\color{addclr} +\begin{std.txt} \begin{itemdecl} template concept bool Constant = Typed && ScopeMember && @\seebelow@; @@ -751,7 +751,7 @@ \rSec3[reflect.concepts.base]{Concept \tcode{Base}} -\begin{std.txt}\color{addclr} +\begin{std.txt} \begin{itemdecl} template concept bool Base = Object && @\seebelow@; @@ -765,7 +765,7 @@ \end{std.txt} \rSec3[reflect.concepts.fctparam]{Concept \tcode{FunctionParameter}} -\begin{std.txt}\color{addclr} +\begin{std.txt} \begin{itemdecl} template concept bool FunctionParameter = Typed && ScopeMember && @\seebelow@; \end{itemdecl} @@ -778,7 +778,7 @@ \end{std.txt} \rSec3[reflect.concepts.callable]{Concept \tcode{Callable}} -\begin{std.txt}\color{addclr} +\begin{std.txt} \begin{itemdecl} template concept bool Callable = Scope && ScopeMember && @\seebelow@; \end{itemdecl} @@ -789,7 +789,7 @@ \end{std.txt} \rSec3[reflect.concepts.expr]{Concept \tcode{Expression}} -\begin{std.txt}\color{addclr} +\begin{std.txt} \begin{itemdecl} template concept bool Expression = Object && @\seebelow@; \end{itemdecl} @@ -801,7 +801,7 @@ \end{std.txt} \rSec3[reflect.concepts.expr.paren]{Concept \tcode{ParenthesizedExpression}} -\begin{std.txt}\color{addclr} +\begin{std.txt} \begin{itemdecl} template concept bool ParenthesizedExpression = Expression && @\seebelow@; \end{itemdecl} @@ -813,7 +813,7 @@ \end{std.txt} \rSec3[reflect.concepts.expr.fctcall]{Concept \tcode{FunctionCallExpression}} -\begin{std.txt}\color{addclr} +\begin{std.txt} \begin{itemdecl} template concept bool FunctionCallExpression = Expression && @\seebelow@; \end{itemdecl} @@ -825,7 +825,7 @@ \end{std.txt} \rSec3[reflect.concepts.expr.type.fctconv]{Concept \tcode{FunctionalTypeConversion}} -\begin{std.txt}\color{addclr} +\begin{std.txt} \begin{itemdecl} template concept bool FunctionalTypeConversion = Expression && @\seebelow@; \end{itemdecl} @@ -837,7 +837,7 @@ \end{std.txt} \rSec3[reflect.concepts.fct]{Concept \tcode{Function}} -\begin{std.txt}\color{addclr} +\begin{std.txt} \begin{itemdecl} template concept bool Function = Typed && Callable && @\seebelow@; \end{itemdecl} @@ -848,7 +848,7 @@ \end{std.txt} \rSec3[reflect.concepts.memfct]{Concept \tcode{MemberFunction}} -\begin{std.txt}\color{addclr} +\begin{std.txt} \begin{itemdecl} template concept bool MemberFunction = RecordMember && Function && @\seebelow@; \end{itemdecl} @@ -859,7 +859,7 @@ \end{std.txt} \rSec3[reflect.concepts.specialfct]{Concept \tcode{SpecialMemberFunction}} -\begin{std.txt}\color{addclr} +\begin{std.txt} \begin{itemdecl} template concept bool SpecialMemberFunction = RecordMember && @\seebelow@; \end{itemdecl} @@ -871,7 +871,7 @@ \end{std.txt} \rSec3[reflect.concepts.ctor]{Concept \tcode{Constructor}} -\begin{std.txt}\color{addclr} +\begin{std.txt} \begin{itemdecl} template concept bool Constructor = Callable && RecordMember && @\seebelow@; \end{itemdecl} @@ -882,7 +882,7 @@ \end{std.txt} \rSec3[reflect.concepts.dtor]{Concept \tcode{Destructor}} -\begin{std.txt}\color{addclr} +\begin{std.txt} \begin{itemdecl} template concept bool Destructor = Callable && SpecialMemberFunction && @\seebelow@; @@ -894,7 +894,7 @@ \end{std.txt} \rSec3[reflect.concepts.oper]{Concept \tcode{Operator}} -\begin{std.txt}\color{addclr} +\begin{std.txt} \begin{itemdecl} template concept bool Operator = Function && @\seebelow@; \end{itemdecl} @@ -905,7 +905,7 @@ \end{std.txt} \rSec3[reflect.concepts.convfct]{Concept \tcode{ConversionOperator}} -\begin{std.txt}\color{addclr} +\begin{std.txt} \begin{itemdecl} template concept bool ConversionOperator = MemberFunction && Operator && @\seebelow@; @@ -917,7 +917,7 @@ \end{std.txt} \rSec3[reflect.concepts.lambda]{Concept \tcode{Lambda}} -\begin{std.txt}\color{addclr} +\begin{std.txt} \begin{itemdecl} template concept bool Lambda = Type && Scope && @\seebelow@; \end{itemdecl} @@ -928,7 +928,7 @@ \end{std.txt} \rSec3[reflect.concepts.lambdacapture]{Concept \tcode{LambdaCapture}} -\begin{std.txt}\color{addclr} +\begin{std.txt} \begin{itemdecl} template concept bool LambdaCapture = Variable && @\seebelow@; \end{itemdecl} @@ -940,7 +940,7 @@ \rSec2[reflect.ops]{Meta-object operations} -\begin{std.txt}\color{addclr} +\begin{std.txt} \pnum A meta-object operation extracts information from meta-object types. It is a class template taking one or more arguments, at least one of which models the \tcode{Object} concept. The result of a meta-object operation can be either a constant expression (\cxxref{expr.const}) or a type. @@ -968,7 +968,7 @@ \rSec3[reflect.ops.object]{Object operations} -\begin{std.txt}\color{addclr} +\begin{std.txt} \begin{itemdecl} template struct reflects_same; @@ -1031,7 +1031,7 @@ \rSec3[reflect.ops.objseq]{ObjectSequence operations} -\begin{std.txt}\color{addclr} +\begin{std.txt} \begin{itemdecl} template struct get_size; @@ -1063,7 +1063,7 @@ \rSec3[reflect.ops.named]{Named operations} -\begin{std.txt}\color{addclr} +\begin{std.txt} \begin{itemdecl} template struct is_unnamed; @@ -1134,7 +1134,7 @@ \rSec3[reflect.ops.alias]{Alias operations} -\begin{std.txt}\color{addclr} +\begin{std.txt} \begin{itemdecl} template struct get_aliased; @@ -1168,7 +1168,7 @@ \rSec3[reflect.ops.type]{Type operations} -\begin{std.txt}\color{addclr} +\begin{std.txt} \begin{itemdecl} template struct get_type; @@ -1247,7 +1247,7 @@ \rSec3[reflect.ops.member]{Member operations} -\begin{std.txt}\color{addclr} +\begin{std.txt} \pnum A specialization of any of these templates with a meta-object type that is reflecting an incomplete type renders the program ill-formed. Such errors are @@ -1279,7 +1279,7 @@ \rSec3[reflect.ops.record]{Record operations} -\begin{std.txt}\color{addclr} +\begin{std.txt} \pnum A specialization of any of these templates with a meta-object type that is reflecting an incomplete type renders the program ill-formed. Such errors are @@ -1418,7 +1418,7 @@ \rSec3[reflect.ops.enum]{Enum operations} -\begin{std.txt}\color{addclr} +\begin{std.txt} \begin{itemdecl} template struct is_scoped_enum; @@ -1464,7 +1464,7 @@ \rSec3[reflect.ops.value]{Value operations} -\begin{std.txt}\color{addclr} +\begin{std.txt} \begin{itemdecl} template struct get_constant; @@ -1512,7 +1512,7 @@ \rSec3[reflect.ops.derived]{Base operations} -\begin{std.txt}\color{addclr} +\begin{std.txt} \begin{itemdecl} template struct get_class; @@ -1538,7 +1538,7 @@ \rSec3[reflect.ops.namespace]{Namespace operations} -\begin{std.txt}\color{addclr} +\begin{std.txt} \begin{itemdecl} template struct is_inline; @@ -1552,7 +1552,7 @@ \end{std.txt} \rSec3[reflect.ops.fctparam]{FunctionParameter operations } -\begin{std.txt}\color{addclr} +\begin{std.txt} \begin{itemdecl} template struct has_default_argument; \end{itemdecl} @@ -1573,7 +1573,7 @@ \rSec3[reflect.ops.callable]{Callable operations} -\begin{std.txt}\color{addclr} +\begin{std.txt} \begin{itemdecl} template struct get_parameters; \end{itemdecl} @@ -1612,7 +1612,7 @@ \end{std.txt} \rSec3[reflect.ops.expr.paren]{ParenthesizedExpression operations} -\begin{std.txt}\color{addclr} +\begin{std.txt} \begin{itemdecl} template struct get_subexpression; \end{itemdecl} @@ -1623,7 +1623,7 @@ \end{std.txt} \rSec3[reflect.ops.expr.fctcall]{FunctionCallExpression operations} -\begin{std.txt}\color{addclr} +\begin{std.txt} \begin{itemdecl} template struct get_callable; \end{itemdecl} @@ -1635,7 +1635,7 @@ \rSec3[reflect.ops.expr.fcttypeconv]{FunctionalTypeConversion operations} -\begin{std.txt}\color{addclr} +\begin{std.txt} \begin{itemdecl} template struct get_constructor; \end{itemdecl} @@ -1647,7 +1647,7 @@ \end{std.txt} \rSec3[reflect.ops.fct]{Function operations} -\begin{std.txt}\color{addclr} +\begin{std.txt} \begin{itemdecl} template struct get_pointer; \end{itemdecl} @@ -1662,7 +1662,7 @@ \end{std.txt} \rSec3[reflect.ops.memfct]{MemberFunction operations} -\begin{std.txt}\color{addclr} +\begin{std.txt} \begin{itemdecl} template struct is_static; template struct is_const; @@ -1694,7 +1694,7 @@ \rSec3[reflect.ops.specialfct]{SpecialMemberFunction operations} -\begin{std.txt}\color{addclr} +\begin{std.txt} \begin{itemdecl} template struct is_implicitly_declared; template struct is_defaulted; @@ -1712,7 +1712,7 @@ \end{std.txt} \rSec3[reflect.ops.ctor]{Constructor operations} -\begin{std.txt}\color{addclr} +\begin{std.txt} \begin{itemdecl} template struct is_explicit; \end{itemdecl} @@ -1728,7 +1728,7 @@ \rSec3[reflect.ops.dtor]{Destructor operations} -\begin{std.txt}\color{addclr} +\begin{std.txt} \begin{itemdecl} template struct is_virtual; template struct is_pure_virtual; @@ -1746,7 +1746,7 @@ \rSec3[reflect.ops.convfct]{ConversionOperator operations} -\begin{std.txt}\color{addclr} +\begin{std.txt} \begin{itemdecl} template struct is_explicit; \end{itemdecl} @@ -1762,7 +1762,7 @@ \rSec3[reflect.ops.lambda]{Lambda operations} -\begin{std.txt}\color{addclr} +\begin{std.txt} \begin{itemdecl} template struct get_captures; \end{itemdecl} @@ -1808,7 +1808,7 @@ \rSec3[reflect.ops.lambdacapture]{LambdaCapture operations} -\begin{std.txt}\color{addclr} +\begin{std.txt} \begin{itemdecl} template struct is_explicitly_captured; \end{itemdecl} diff --git a/src/macros.tex b/src/macros.tex index 711793f..93450d8 100644 --- a/src/macros.tex +++ b/src/macros.tex @@ -3,12 +3,8 @@ %%-------------------------------------------------- %% Difference markups -\definecolor{addclr}{rgb}{0,.6,.6} -\definecolor{remclr}{rgb}{1,0,0} -\definecolor{noteclr}{rgb}{0,0,1} - -\renewcommand{\added}[1]{\textcolor{addclr}{\uline{#1}}} -\newcommand{\removed}[1]{\textcolor{remclr}{\sout{#1}}} +\renewcommand{\added}[1]{\uline{#1}} +\newcommand{\removed}[1]{\sout{#1}} \renewcommand{\changed}[2]{\removed{#1}\added{#2}} \newcommand{\nbc}[1]{[#1]\ } @@ -17,19 +13,17 @@ \newcommand{\changednb}[3]{\removednb{#1}{#2}\added{#3}} \newcommand{\remitem}[1]{\item\removed{#1}} -\newcommand{\ednote}[1]{\textcolor{noteclr}{[Editor's note: #1] }} +\newcommand{\ednote}[1]{[Editor's note: #1]} % \newcommand{\ednote}[1]{} \newenvironment{addedblock} { -\color{addclr} } { \color{black} } \newenvironment{removedblock} { -\color{remclr} } { \color{black} diff --git a/src/ts.tex b/src/ts.tex index 128eec0..02d451f 100644 --- a/src/ts.tex +++ b/src/ts.tex @@ -41,7 +41,7 @@ pdfstartview=FitH, linktocpage=true, colorlinks=true, - linkcolor=blue, + linkcolor=black, plainpages=false ]{hyperref} \usepackage{memhfixc} % fix interactions between hyperref and memoir From ca3f74c00a991d8bba5fbd38bdd53d1ae95d5e5f Mon Sep 17 00:00:00 2001 From: Jagrut Dave Date: Thu, 1 Apr 2021 13:56:07 -0400 Subject: [PATCH 4/9] Start table of contents from page 3 --- src/front.tex | 1 + 1 file changed, 1 insertion(+) diff --git a/src/front.tex b/src/front.tex index 117974d..250a9ad 100644 --- a/src/front.tex +++ b/src/front.tex @@ -10,6 +10,7 @@ %% within it (per ISO request) but do include a %% bookmark for it in the PDF. \phantomsection +\setcounter{page}{3} \pdfbookmark{\contentsname}{toctarget} \hypertarget{toctarget}{\tableofcontents*} From f4622951c838e904fb7a792fbb3f4a46ff7b9c83 Mon Sep 17 00:00:00 2001 From: Jagrut Dave Date: Thu, 1 Apr 2021 15:00:42 -0400 Subject: [PATCH 5/9] Add foreword --- src/foreword.tex | 16 ++++++++++++++++ src/ts.tex | 1 + 2 files changed, 17 insertions(+) create mode 100644 src/foreword.tex diff --git a/src/foreword.tex b/src/foreword.tex new file mode 100644 index 0000000..856078c --- /dev/null +++ b/src/foreword.tex @@ -0,0 +1,16 @@ +%!TEX root = ts.tex + +\rSec0[Foreword]{Foreword} + +ISO (the International Organization for Standardization) and IEC (the International Electrotechnical Commission) form the specialized system for worldwide standardization. National bodies that are members of ISO or IEC participate in the development of International Standards through technical committees established by the respective organization to deal with particular fields of technical activity. ISO and IEC technical committees collaborate in fields of mutual interest. Other international organizations, governmental and non-governmental, in liaison with ISO and IEC, also take part in the work. + +The procedures used to develop this document and those intended for its further maintenance are described in the ISO/IEC Directives, Part 1. In particular the different approval criteria needed for the different types of document should be noted. This document was drafted in accordance with the editorial rules of the ISO/IEC Directives, Part 2 (see www.iso.org/directives). + +Attention is drawn to the possibility that some of the elements of this document may be the subject of patent rights. ISO and IEC shall not be held responsible for identifying any or all such patent rights. Details of any patent rights identified during the development of the document will be in the Introduction and/or on the ISO list of patent declarations received (see www.iso.org/patents) or the IEC list of patent declarations received (see http://patents.iec.ch). + +Any trade name used in this document is information given for the convenience of users and does not constitute an endorsement. + +For an explanation on the voluntary nature of standards, the meaning of ISO specific terms and expressions related to conformity assessment, as well as information about ISO’s adherence to the World Trade Organization (WTO) principles in the Technical Barriers to Trade (TBT), see www.iso.org/iso/foreword.html. + +This document was prepared by Joint Technical Committee ISO/IEC JTC 1, \textit{Information technology}, Subcommittee SC 22, \textit{Programming languages, their environments and system software interfaces}. + diff --git a/src/ts.tex b/src/ts.tex index 02d451f..628a11a 100644 --- a/src/ts.tex +++ b/src/ts.tex @@ -112,6 +112,7 @@ \mainmatter \setglobalstyles +\include{foreword} \include{intro} \include{references} \include{definitions} From 22b3c4f6fecf2a6b94e600bffcfc84cc393f0cf4 Mon Sep 17 00:00:00 2001 From: Jagrut Dave Date: Thu, 1 Apr 2021 16:01:10 -0400 Subject: [PATCH 6/9] Re-org first three clauses --- src/definitions.tex | 2 +- src/foreword.tex | 2 +- src/general.tex | 8 +++++--- src/references.tex | 2 +- src/{intro.tex => scope.tex} | 6 ++---- src/ts.tex | 2 +- 6 files changed, 11 insertions(+), 11 deletions(-) rename src/{intro.tex => scope.tex} (86%) diff --git a/src/definitions.tex b/src/definitions.tex index c412d03..b9018b6 100644 --- a/src/definitions.tex +++ b/src/definitions.tex @@ -1,6 +1,6 @@ %!TEX root = ts.tex -\rSec1[intro.defs]{Terms and definitions} +\rSec0[defs]{Terms and definitions} \pnum \indextext{definitions|(}% diff --git a/src/foreword.tex b/src/foreword.tex index 856078c..b247010 100644 --- a/src/foreword.tex +++ b/src/foreword.tex @@ -1,6 +1,6 @@ %!TEX root = ts.tex -\rSec0[Foreword]{Foreword} +\rSec0[foreword]{Foreword} ISO (the International Organization for Standardization) and IEC (the International Electrotechnical Commission) form the specialized system for worldwide standardization. National bodies that are members of ISO or IEC participate in the development of International Standards through technical committees established by the respective organization to deal with particular fields of technical activity. ISO and IEC technical committees collaborate in fields of mutual interest. Other international organizations, governmental and non-governmental, in liaison with ISO and IEC, also take part in the work. diff --git a/src/general.tex b/src/general.tex index a50878a..2ff37de 100644 --- a/src/general.tex +++ b/src/general.tex @@ -1,6 +1,8 @@ %!TEX root = ts.tex -\rSec1[intro.compliance]{Implementation compliance} +\rSec0[general]{General} + +\rSec1[general.compliance]{Implementation compliance} \pnum Conformance requirements for this document are those defined in subclause @@ -10,7 +12,7 @@ Conformance is defined in terms of the behavior of programs. \end{note} -\rSec1[intro.namespaces]{Namespaces and headers} +\rSec1[general.namespaces]{Namespaces and headers} \pnum Whenever a name \tcode{x} declared in subclause \ref{reflect} at namespace scope @@ -37,7 +39,7 @@ \tcode{} \\ \end{floattable} -\rSec1[intro.features]{Feature-testing recommendations} +\rSec1[general.features]{Feature-testing recommendations} \pnum An implementation that provides support for this document shall define each feature test macro defined in \tref{intro.features} if no associated headers are indicated for that macro, and if associated headers are indicated for a macro, that macro is defined after inclusion of one of the corresponding headers specified in the table. diff --git a/src/references.tex b/src/references.tex index 23244a4..6ccb932 100644 --- a/src/references.tex +++ b/src/references.tex @@ -1,6 +1,6 @@ %!TEX root = ts.tex -\rSec1[intro.refs]{Normative references} +\rSec0[refs]{Normative references} \pnum The following referenced documents are indispensable for the application of this diff --git a/src/intro.tex b/src/scope.tex similarity index 86% rename from src/intro.tex rename to src/scope.tex index 8b392e4..eb6720a 100644 --- a/src/intro.tex +++ b/src/scope.tex @@ -1,12 +1,10 @@ %!TEX root = ts.tex -\rSec0[intro]{General} - -\rSec1[intro.scope]{Scope} +\rSec0[scope]{Scope} \pnum This document describes extensions to the \Cpp Programming -Language (Clause \ref{intro.refs}) that enable operations on source code. These +Language (Clause \ref{refs}) that enable operations on source code. These extensions include new syntactic forms and modifications to existing language semantics, as well as changes and additions to the existing library facilities. diff --git a/src/ts.tex b/src/ts.tex index 628a11a..60e614d 100644 --- a/src/ts.tex +++ b/src/ts.tex @@ -113,7 +113,7 @@ \setglobalstyles \include{foreword} -\include{intro} +\include{scope} \include{references} \include{definitions} \include{general} From 4df4c4a6df65e26ece89d8d1debacea1ae8c75cf Mon Sep 17 00:00:00 2001 From: Jagrut Dave Date: Thu, 1 Apr 2021 16:33:33 -0400 Subject: [PATCH 7/9] Fix missing link to clause --- src/general.tex | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/general.tex b/src/general.tex index 2ff37de..84535e7 100644 --- a/src/general.tex +++ b/src/general.tex @@ -6,7 +6,7 @@ \pnum Conformance requirements for this document are those defined in subclause -\ref{intro.compliance} in the C++ Standard. Similarly, all references to the C++ Standard in the +\ref{general.compliance} in the C++ Standard. Similarly, all references to the C++ Standard in the resulting document shall be taken as referring to the resulting document itself. \begin{note} Conformance is defined in terms of the behavior of programs. From 47f334882031b7b504eaaeff93591afb593b1ef7 Mon Sep 17 00:00:00 2001 From: Jagrut Dave Date: Thu, 1 Apr 2021 16:56:33 -0400 Subject: [PATCH 8/9] Make ISO number in the headers centered --- src/styles.tex | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/styles.tex b/src/styles.tex index a1886aa..b58708a 100644 --- a/src/styles.tex +++ b/src/styles.tex @@ -21,8 +21,8 @@ %% create page styles \makepagestyle{cpppage} -\makeevenhead{cpppage}{\textbf{\isodocno}}{}{} -\makeoddhead{cpppage}{\textbf{\isodocno}}{}{} +\makeevenhead{cpppage}{}{\textbf{\isodocno}}{} +\makeoddhead{cpppage}{}{\textbf{\isodocno}}{} \makeevenfoot{cpppage}{\leftmark}{\copyright\,ISO/IEC {\copyrightyear} -- All rights reserved}{\thepage} \makeoddfoot{cpppage}{\leftmark}{\copyright\,ISO/IEC {\copyrightyear} -- All rights reserved}{\thepage} From c3ca079205b600f024e1b33047427b86acd9284a Mon Sep 17 00:00:00 2001 From: Jagrut Dave Date: Thu, 1 Apr 2021 17:23:41 -0400 Subject: [PATCH 9/9] Remove unused conformance.tex --- src/conformance.tex | 42 ------------------------------------------ 1 file changed, 42 deletions(-) delete mode 100644 src/conformance.tex diff --git a/src/conformance.tex b/src/conformance.tex deleted file mode 100644 index 0c9fbfc..0000000 --- a/src/conformance.tex +++ /dev/null @@ -1,42 +0,0 @@ -%!TEX root = ts.tex - -\rSec0[intro]{General} - -\rSec1[conformance]{Conformance} - -\pnum - Conformance is specified in terms of behavior. Ideal behavior is not always implementable, so the conformance subclauses take that into account. - - -\rSec2[conformance.9945]{POSIX conformance} - -\pnum - Some behavior is specified by reference to POSIX. How such behavior is actually implemented is unspecified. - -\pnum - \begin{note} This constitutes an ``as if'' rule allowing implementations to call native operating system or other APIs. \end{note} - -\pnum -Implementations are encouraged to provide such behavior as it is defined by POSIX. Implementations shall document any behavior that differs from the behavior defined by POSIX. Implementations that do not support exact POSIX behavior are encouraged to provide behavior as close to POSIX behavior as is reasonable given the limitations of actual operating systems and file systems. If an implementation cannot provide any reasonable behavior, the implementation shall report an error as specified in Error Reporting~(\ref{err.report}). - -\pnum - \begin{note} This allows users to rely on an exception being thrown or an error code being set when an implementation cannot provide any reasonable behavior. \end{note} - -\pnum - Implementations are not required to provide behavior that is not supported by a particular operating system. - - - -\rSec2[conformance.conditional]{Conditionally-supported features} - -\pnum -This document defines conditionally-supported features, in the form of additional member functions on types that satisfy \tcode{Protocol}~(\ref{socket.reqmts.protocol}), \tcode{Endpoint}~(\ref{socket.reqmts.endpoint}), \tcode{SettableSocketOption}~(\ref{socket.reqmts.settablesocketoption}), \tcode{GettableSocketOption}~(\ref{socket.reqmts.gettablesocketoption}) or \tcode{IoControlCommand}~(\ref{socket.reqmts.iocontrolcommand}) requirements. - -\pnum - \begin{note} This is so that, when the additional member functions are available, \Cpp programs can extend the library to add support for other protocols and socket options. \end{note} - -\pnum -For the purposes of this document, implementations that provide all of the additional member functions are known as extensible implementations. - -\pnum - \begin{note} Implementations are encouraged to provide the additional member functions, where possible. It is intended that POSIX and Windows implementations will provide them. \end{note}