OZ
Size: a a a
OZ
VF
std::invoke_result<__func__, ?>
АК
std::invoke_result<__func__, ?>
АК
std::invoke_result<__func__, ?>
АР
T foo() {
SUPER_COOL_MACRO_FOR_RETURN_TYPE ret;
// ...
retun ret;
}
VF
AT
T foo() {
SUPER_COOL_MACRO_FOR_RETURN_TYPE ret;
// ...
retun ret;
}
АР
AT
AT
VF
Utils::generator<std::variant<
Token::MagicLiteral,
Token::Data,
Token::Punctuation,
Token::Codepoint>>
Lexer::_lex_char_container() {
using Ret = std::variant<
Token::MagicLiteral,
Token::Data,
Token::Punctuation,
Token::Codepoint>;
YIELD_ALL(_lex_heredoc(), Ret);
}
Ret
и заменить на что-то автоматическоеАК
Utils::generator<std::variant<
Token::MagicLiteral,
Token::Data,
Token::Punctuation,
Token::Codepoint>>
Lexer::_lex_char_container() {
using Ret = std::variant<
Token::MagicLiteral,
Token::Data,
Token::Punctuation,
Token::Codepoint>;
YIELD_ALL(_lex_heredoc(), Ret);
}
Ret
и заменить на что-то автоматическоеVF
using
извне, нарушается инкапсуляцияAT
Utils::generator<std::variant<
Token::MagicLiteral,
Token::Data,
Token::Punctuation,
Token::Codepoint>>
Lexer::_lex_char_container() {
using Ret = std::variant<
Token::MagicLiteral,
Token::Data,
Token::Punctuation,
Token::Codepoint>;
YIELD_ALL(_lex_heredoc(), Ret);
}
Ret
и заменить на что-то автоматическоеVF
return
тайпа придётся. Проще оставить как есть =)VF
N
Utils::generator<std::variant<
Token::MagicLiteral,
Token::Data,
Token::Punctuation,
Token::Codepoint>>
Lexer::_lex_char_container() {
using Ret = std::variant<
Token::MagicLiteral,
Token::Data,
Token::Punctuation,
Token::Codepoint>;
YIELD_ALL(_lex_heredoc(), Ret);
}
Ret
и заменить на что-то автоматическоеtempalte <typename Ret = std::variant<Token::MagicLiteral, Token::Data, Token::Punctuation, Token::Codepoint>>
Utils::generator<Ret> Lexer::_lex_char_container() {
YIELD_ALL(_lex_heredoc(), Ret);
}
VF
using
извне, нарушается инкапсуляцияVF