DP
Size: a a a
DP
/¯
P
expression statement на русский, чтобы было понятно что это за зверьMS
expression statement на русский, чтобы было понятно что это за зверьAS
expression statement на русский, чтобы было понятно что это за зверьAS
MS
MS
P
expression с ; (причём может быть просто ;, без выражения)statement обычно переводят как инструкция (в контексте C++), так что expression-statement по-русски будет что-то вроде выражение-инструкция или инструкция-выражениеAS
expression с ; (причём может быть просто ;, без выражения)statement обычно переводят как инструкция (в контексте C++), так что expression-statement по-русски будет что-то вроде выражение-инструкция или инструкция-выражениеVS
AS
VS
AE
O
awaitable — лишь одна из составляющих корутинexpected<>, являющийся на самом деле специфической корутиной, здесь код на C++ очень сильно похож на do-нотацию из Haskellm
awaitable — лишь одна из составляющих корутинexpected<>, являющийся на самом деле специфической корутиной, здесь код на C++ очень сильно похож на do-нотацию из Haskellco_await 42; будет собираться и работать). Соответственно корутина реализующая future может быть одновременно и корутиной и awaitable. Но, например, для generator'а, который тоже является корутиной, я бы не стал реализовывать поддержку co_await. Поэтому я бы все же разделял эти понятия.O
co_await 42; будет собираться и работать). Соответственно корутина реализующая future может быть одновременно и корутиной и awaitable. Но, например, для generator'а, который тоже является корутиной, я бы не стал реализовывать поддержку co_await. Поэтому я бы все же разделял эти понятия.promise, так что, согласен с тем, что монадой является awaitable, правда не уверен, можем ли мы отнести к монадам и сам promise, или нетA
template <int First, int Last, typename Functor>Когда-то здесь обсуждали, что это эффективнее реализуется на fold expression, но я не видел реализации, и сейчас тоже не могу её найти. Не подскажете?
constexpr void constexpr_for([[maybe_unused]] Functor&& f) noexcept
{
if constexpr (First < Last)
{
f(value_as_type<First>{});
constexpr_for<First + 1, Last, Functor>(std::forward<Functor>(f));
}
}
m