170 похожих чатов

Доброго времени суток. У меня есть три метода:

bool is(std::vector<TokenType> types);
bool is(std::vector<Operators> values);
bool is(std::vector<Separators> values);
TokenType, Operators, Separators - енамы.

Пример вызова:
token.is({Operators::ADD, Operators::SUB})

Если я делаю такую перегрузку, то можно ли гарантировать, что вызовется нужная перегрузка при условии, что я передаю значения в явном виде (Например, Operators::ADD) и значения в енамах инты?

2 ответов

27 просмотров
Андрей-Варфоломеев Автор вопроса

забавно, что если написать только один элемент в векторе, то компилятору не очевидно, какой метод нужно выполнять D:/univer/5_semester/tiny-tiny-pascal/src/simple_parser/simple_parser.cpp:38:17: error: call of overloaded 'is(<brace-enclosed initializer list>)' is ambiguous 38 | if (token.is({TokenType::ID})) { | ~~~~~~~~^~~~~~~~~~~~~~~~~ In file included from D:/univer/5_semester/tiny-tiny-pascal/src/scanner/scanner.h:10, from D:/univer/5_semester/tiny-tiny-pascal/src/simple_parser/simple_parser.h:6, from D:/univer/5_semester/tiny-tiny-pascal/src/simple_parser/simple_parser.cpp:1: D:/univer/5_semester/tiny-tiny-pascal/src/scanner/token.h:196:10: note: candidate: 'bool scanner::Token::is(const std::vector<scanner::TokenType>&)' 196 | bool is(const std::vector<TokenType> &types); | ^~ D:/univer/5_semester/tiny-tiny-pascal/src/scanner/token.h:197:10: note: candidate: 'bool scanner::Token::is(const std::vector<scanner::Operators>&)' 197 | bool is(const std::vector<Operators> &values); | ^~ D:/univer/5_semester/tiny-tiny-pascal/src/scanner/token.h:198:10: note: candidate: 'bool scanner::Token::is(const std::vector<scanner::Separators>&)' 198 | bool is(const std::vector<Separators> &values); | ^~ ninja: build stopped: subcommand failed.

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Гайс, вопрос для разносторонее развитых: читаю стрим с юарта, нада выделять с него фреймы с определенной структурой, если ли чо готовое, или долбаться с ринг буффером? нада у...
Vitaly
9
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
длина пакета фиксированная, или меняется?
Okhsunrog
7
Карта сайта