Overview
The MarshalSource helper is the concrete source-side marshalling wrapper used by the public input and return-value marshal helpers. It binds a source object, exposes the low-level IMarshalSource interface, and performs the object decomposition required to reconstruct the source object on the receiving side of the assembly boundary.
In normal application code this type is created implicitly by Marshal::In and Marshal::Ret. Direct use is possible, but is uncommon outside of custom library extension code.
Supported Forms
Concrete specializations exist for the container families supported by the library, including general STL containers, std::vector, std::array, std::basic_string, std::pair, and std::tuple. The exact specialization selected depends on the type being marshalled and on whether move support is available.
Usage
Most code should not construct MarshalSource explicitly. When direct access is required, it acts as the source-side counterpart to MarshalTarget.