mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-10-18 18:42:46 +02:00
[Docs] Clarify boolean conversion for Error and Expected<T> in the Programmer's
Manual. llvm-svn: 264135
This commit is contained in:
parent
5520d614e8
commit
8e8065742d
@ -356,12 +356,24 @@ that inherits from the ErrorInfo utility:
|
|||||||
return Error::success();
|
return Error::success();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Error values can be implicitly converted to bool: true for error, false for
|
||||||
|
success, enabling the following idiom:
|
||||||
|
|
||||||
|
.. code-block::
|
||||||
|
|
||||||
|
if (auto Err = mayFail())
|
||||||
|
return Err;
|
||||||
|
|
||||||
|
// Success! We can proceed.
|
||||||
|
|
||||||
|
|
||||||
For functions that can fail but need to return a value the ``Expected<T>``
|
For functions that can fail but need to return a value the ``Expected<T>``
|
||||||
utility can be used. Values of this type can be constructed with either a
|
utility can be used. Values of this type can be constructed with either a
|
||||||
``T``, or a ``Error``. Values are implicitly convertible to boolean: true
|
``T``, or a ``Error``. Expected<T> values are also implicitly convertible to
|
||||||
for success, false for error. If success, the ``T`` value can be accessed via
|
boolean, but with the opposite convention to Error: true for success, false for
|
||||||
the dereference operator. If failure, the ``Error`` value can be extracted
|
error. If success, the ``T`` value can be accessed via the dereference operator.
|
||||||
using the ``takeError()`` method:
|
If failure, the ``Error`` value can be extracted using the ``takeError()``
|
||||||
|
method. Idiomatic usage looks like:
|
||||||
|
|
||||||
.. code-block:: c++
|
.. code-block:: c++
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user