libstdc++: Improve static assert messages for monadic operations
The monadic operations for std::optional and std::expected make use of
internal helper traits __is_optional nad __is_expected, which are not
very user-friendly when shown in diagnostics. Add messages to the
assertions explaining the problem more clearly.
libstdc++-v3/ChangeLog:
* include/std/expected (expected::and_then, expected::or_else):
Add string literals to static assertions.
* include/std/optional (optional::and_then, optional::or_else):
Likewise.
(cherry picked from commit
3d654f96d4c583c35e4f73aa8f11371730671534)