A trivial infinite loop is a trivially empty iteration statement
for which the converted controlling expression is a constant expression,
when interpreted as a constant-expression ([expr.const]), and
evaluates to true.
The statement of a trivial infinite loop is replaced with
a call to the function std::this_thread::yield ([thread.thread.this]);
it is implementation-defined whether this replacement occurs
on freestanding implementations.