User-defined conversion function

Enables implicit conversion or explicit conversion from a class type to another type.

# Defect reports

DRApplied toBehavior as publishedCorrect behavior
CWG 296C++98conversion functions could be staticthey cannot be declared static
CWG 2016C++98conversion functions could not specify return types,but the types are present in conversion-type-idreturn types cannot be specified in thedeclaration specifiers of conversion functions
CWG 2175C++11it was unclear whether the [[noreturn]] inoperator int [[noreturn]] (); is parsed as a part ofnoptr-declarator (of function declarator) or conversion-type-idit is parsed as a part ofconversion-type-id