Thanks to Rene for Chairing.

On Tue, Sep 7, 2021 at 10:53 AM Michael Wong <> wrote:

Topic: SG14 Low Latency Monthly

This meeting is focused on Games .


Michael Wong is inviting you to a scheduled Zoom meeting.

Topic: SG14 monthly
Time: 2nd Wednesdays 02:00 PM Eastern Time 1800 UTC (US and Canada)
    Every month on the Second Wed,


Join from PC, Mac, Linux, iOS or Android:
    Password: 789626

Or iPhone one-tap :
    US: +12532158782,,93151864365# or +13017158592,,93151864365#
Or Telephone:
    Dial(for higher quality, dial a number based on your current location):
        US: +1 253 215 8782 or +1 301 715 8592 or +1 312 626 6799 or +1
346 248 7799 or +1 408 638 0968 or +1 646 876 9923 or +1 669 900 6833
 or 877 853 5247 (Toll Free)
    Meeting ID: 931 5186 4365
    Password: 789626
    International numbers available:

Or Skype for Business (Lync):


1. Opening and introduction

ISO Code of Conduct

ISO patent policy.

IEC Code of Conduct:

WG21 Code of Conduct:

1.1 Roll call of participants

1.2 Adopt agenda

1.3 Approve minutes from previous meeting, and approve publishing
 previously approved minutes to

1.4 Action items from previous meetings

2. Main issues (125 min)

2.1 General logistics

Future meeting plans

    July 14, 2021 02:00 PM ET/1800 UTC: Finance/Low Latency

    Aug 11, 2021 02:00 PM ET/1800 UTC: Games Cancelled

    Sep 8 , 2021 02:00 PM ET/1800 UTC: Games
    Oct 13, 2021 02:00 PM ET/1800 UTC: Embedded
    Nov 10, 2021 02:00 PM ET/1800 UTC: DST change/cancelled
    Dec 8, 2021 02:00 PM ET/1800 UTC: Finance/Low Latency

2.2 Paper reviews

Discussion about Games topics:

 P2388R1 - Minimum Contract Support: either Ignore or Check_and_abort 

What is stopping static analyzers
want to allow programmers to declare good contract annotations in 23
so that in 26 tools can have annotations
min annotations
need from std:
portable notatoion
type system checking declared expre
guarantee that predicates can be rt evaluated if needed
ack disappearing side effects in declared expr
ack possibility of halting the program

ignore mode
check and abort: noexcept by default
allow compiler to provide a way to install contract violation handler but not require it: how about a compiler flag ?
possible to have pre/post-condition in hdr or cpp file: require from first declaration; they are not part of type system
builtin unreachable is being standadized

side effects in predicates as no way to be sure it is side effect free: allowed but discouraged, may be evaluated, may be evaluated twice
ub if evaluation of one affects the other

how does it interact with constexpr? constexpr fn with non-constexpr predicate

eval after destructors of local objects called
eval before destructors of function
referred objects values are those ...

check value of parameter at the point it was passed, so need to make a copy of the parameter in case parameter is changed during execution
if copy is made implicitly, then compiler can only optimize copy in some cases by eliding
in ignore mode, you can avoid the copy

precondition failure reported on caller side, rather then calleebut its not always possible because we can not guarantee

dropped from C++20 contracts
assertion levels
guaranteed non-evaluation of predicates (axiom)
continuation mode

Retained from C++20 contracts
contract annotations on first declaration
ODR identical annotations on overriding functions
access to private and protected members from predicates

use case weher you want to widen and narroe the derived class contracts and caller needs to be able to depend on the post condition being true
if you want to check you really need to check both the pre and post conditions on the interface fn you call through so if you are calling through a ptr to base , the caller is going to depend on the fact that the post conditions and the pre and post conditions of the ptr you are calling through are checked and the callee is going to depend on the fact that the pre and post conditions it declares are going to be checked. Crrectly checking the right things when they can be different is complicated
So MVP approach is just require them to be the same for now and explore what can be done later to be different

Not addresign overriding fn issue, then this proposal will survive.

Feedback on ignore mode, and const values
anything concern you on this approach?
in safety critical setting, might not be annotations we want them to be not affecting too deeply the rest of the functions: can make it uniform by referrng to a function input and output by value and are not const-able

idiomatic constructor with operator plus trick would have to be rewritten?

Patrice's WIP on Games issues.

Making C++ better for Game Developers: some Request
based on survey from local Montreal game companies
general principles:
simplify C++
make it teachable due to high turn over
avoid negative perf impact
debugging matters

how to split these 30 proposals?

similar to freestanding, chop into many small pieces
but also good to have an omnibus paper before the split
do a few feature per meeting, or wait until January for the next Games focus
should address Arthur's feedback and generate V2
some are low latency and can be in Dec meeting
updates coming

Finance topics from July 14, 2021.

2.2.1 any other proposal for reviews?

Deterministic Exception for Embedded by James Renwick


SG14/SG19 features/issues/defects:

2.3 Domain-specific discussions

2.3.1 SIG chairs

   - Embedded Programming chairs: Ben Craig, Wouter van Ooijen and Odin
   Holmes, John McFarlane

   - Financial/Trading chairs: Staffan
’¶m, Carl
Cooke, Neal
   Mateusz Pusz, Clay Trychta,

Richard Smith to take over paper

   - Games chairs: Rene Riviera, Guy Davidson and Paul Hampson, Patrice Roy

   - Linear Algebra chairs: Bob Steagall, Mark Hoemmen, Guy Davidson

2.4 Other Papers and proposals

2.5 Future F2F meetings:

2.6 future C++ Standard meetings:


3. Any other business
As well as look through papers marked "SG14" in recent standards committee
paper mailings:

Code and proposal Staging area
4. Review

4.1 Review and approve resolutions and issues [e.g., changes to SG's
working draft]

4.2 Review action items (5 min)

5. Closing process

5.1 Establish next agenda

5.2 Future meeting

    Oct 13, 2021 02:00 PM ET/1800 UTC: Embedded

    Nov 10, 2021 02:00 PM ET/1800 UTC: DST change/cancelled
    Dec 8, 2021 02:00 PM ET/1800 UTC: Finance/Low Latency

Kind Rgds