The communication object is wrapped in a type-erased shim class (structured case). Therefore, the make_communication_object function doesn't need the superfluous second argument anymore (this argument was only needed to inject the type and was confusing to use).
Type injection happens at exchange time now, and subsequently, the communication_object template instance is retrieved from a std::variant.
The communication object is wrapped in a type-erased shim class (structured case). Therefore, the
make_communication_object
function doesn't need the superfluous second argument anymore (this argument was only needed to inject the type and was confusing to use). Type injection happens at exchange time now, and subsequently, thecommunication_object
template instance is retrieved from astd::variant
.