1+++
2title = "`is_error_type<E>`"
3description = "A customisable integral constant type true for `E` types which are to receive error throwing no-value policies."
4+++
5
6A customisable integral constant type true for `E` types which are to receive
7error throwing no-value policies. Special weakened implicit construction enable
8is available for integral `T` types when combined with `E` types in this
9whitelist -- this permits `boost_result<int, boost::system::errc::errc_t` to
10retain its implicit constructors, despite the fact that `errc_t` as a C enum
11has an implicit conversion to `int`.
12
13*Overridable*: By template specialisation into the `trait` namespace.
14
15*Default*: False. Specialisations to true exist for:
16
17- `<boost/outcome/boost_result.hpp>`
18    - `boost::system::error_code`
19    - `boost::system::errc::errc_t`
20    - `boost::exception_ptr`
21
22- `<boost/outcome/std_result.hpp>`
23    - `std::error_code`
24    - `std::errc`
25    - `std::exception_ptr`
26
27*Namespace*: `BOOST_OUTCOME_V2_NAMESPACE::trait`
28
29*Header*: `<boost/outcome/trait.hpp>`