[#MRDOCS_TRY_BIND] = MRDOCS_TRY_BIND :mrdocs: Evaluate an expected‐like expression into a structured binding. == Synopsis Declared in `<mrdocs/Support/Error/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- #define MRDOCS_TRY_BIND(names, expr) ---- == Description Works like the two‐argument form of `MRDOCS_TRY`, but unpacks the value into a structured binding. The expression is evaluated once. If it failed, the enclosing function returns `Unexpected` with its error. Otherwise the value is moved into `auto [names...]`. The enclosing function must return an xref:mrdocs/Expected.adoc[`mrdocs::Expected`]. See `MRDOCS_TRY` for what counts as failed. Wrap the binding names in parentheses, so the commas between them aren't taken as macro‐argument separators: [,cpp] ---- Expected> splitKeyValue(std::string_view line); Expected