P1362 §4.4 discussses whether or not coroutines are an expert-only feature. It communicates this —
|Everybody (millions)||Uses coroutines via high level syntax powered by coroutine types and awaitables defined by the standard library, boost and other high-quality libraries.|
|Power user (10,000)|| Aware of Awaitable concept.|
Defines new awaitables to customize await for their environment using existing coroutine types.
|Expert (1,000)|| Aware of Awaitable and Coroutine Promise concepts.|
Defines new coroutine types.
|Cream of the crop (200)||Defines metafunctions, utilities and adapters that can help to compose awaitables, write utility coroutine adapters, etc.|
The authors feel that this table outlining the target audiences for various users both:
lets proposal readers distill both the teachability of a proposal and who its intended audience actually are;
encourages proposal authors to think about their features' target audience(s) and highlights any latent 'expert friendliness' of a proposal.
We want to consistently aim for a C++ that is easier to use (e.g. range-based
and -- as a whole -- want to lower the necessity to be an expert to use C++ (i.e. the millions).
By lowering the barrier for determining who is expected to use a proposed feature, audience
tables will bring us closer to that reality.
We strongly suggest that proposal authors begin to use these audience tables more frequently in proposals, just as authors have started to use before-and-after tables.