xieite::any::operator /*???*/()

Defined in header <xieite/meta/any.hpp>

A declared implicit cast operator to any type. Must be used in unevaluated context, as it is not actually implemented.

This is not marked constexpr because it would otherwise have to be [implicitly instantiated if the existence of its definition affects the semantics of the program] if it is [needed for constant evaluation (even if not required)] if this function is [named by an expression that is potentially constant evaluated] if the expression is [an immediate subexpression of a brace initializer list].
Basically, this function would behave differently in a case like int { xieite::any() }.

Declaration

template<typename T>
explicit(false) operator T() const noexcept;


Example

void f(int, float, char16_t***&&) {}

int main() {
	xieite::any any;

	// Check if `f` is callable with three arguments of any type
	xieite::dump(requires { f(any, any, any); });
}
Output:
true
[View in Compiler Explorer]