xieite ::as <>
Defined in header <xieite/fn/as.hpp>
A functor for casting something implicitly, adding or removing qualifiers, or changing signedness.
Declarations
#0Implicitly casts something to another type.template <typename T >constexpr auto as = [][[nodiscard ]](std ::type_identity_t <T >x )static noexcept {return x ; };
#1
Makes somethinginline constexpr auto as_c = []<typename T >[[nodiscard ]](T && x )static noexcept {return const_cast <xieite ::add_c <T && >>(x ); };
const
-qualified.#2
Makes somethinginline constexpr auto as_v = []<typename T >[[nodiscard ]](T && x )static noexcept {return const_cast <xieite ::add_v <T && >>(x ); };
volatile
-qualified.#3
Makes somethinginline constexpr auto as_cv = []<typename T >[[nodiscard ]](T && x )static noexcept {return const_cast <xieite ::add_cv <T && >>(x ); };
const volatile
-qualified.#4
Makes something non-inline constexpr auto as_not_c = []<typename T >[[nodiscard ]](T && x )static noexcept {return const_cast <xieite ::rm_c <T && >>(x ); };
const
-qualified.#5
Makes something non-inline constexpr auto as_not_v = []<typename T >[[nodiscard ]](T && x )static noexcept {return const_cast <xieite ::rm_v <T && >>(x ); };
volatile
-qualified.#6
Makes something non-inline constexpr auto as_not_cv = []<typename T >[[nodiscard ]](T && x )static noexcept {return const_cast <xieite ::rm_cv <T && >>(x ); };
const volatile
-qualified.#7
Makes something arithmetic possibly unsigned.inline constexpr auto as_unsign = []<xieite ::is_arith T >[[nodiscard ]](T x )static noexcept {return static_cast <xieite ::try_unsign <T >>(x ); };
#8
Makes something arithmetic possibly signed.inline constexpr auto as_sign = []<xieite ::is_arith T >[[nodiscard ]](T x )static noexcept {return static_cast <xieite ::try_sign <T >>(x ); };
Example
Output:int main () {int x =5 ;auto y =xieite ::as <double >(x );xieite ::dump (y ); }
[View in Compiler Explorer]5