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

А как работает std::enable_if<Condition>::type или std::enable_if_t<Condition>? Как я понял он

разруливает перегрузку, но перегрузка только по возвращаемому типу же запрещена

5 ответов

25 просмотров

у тебя по факту нет перегрузки. у тебя просто останется один шаблон, второго просто не будет. свинка при раскрытии с ошибкой выкидывает (отключает) шаблон из работы и рассмотрения.

TTY- Автор вопроса
Stas Koynov
у тебя по факту нет перегрузки. у тебя просто оста...

А как оно(std::enable_if) это делает, в таком случае?

TTY
А как оно(std::enable_if) это делает, в таком случ...

Вроде он в "неправильной" ветке обращается к члену ::type у структуры, в которой такого члена нет

TTY
А как оно(std::enable_if) это делает, в таком случ...

Ну я не педагог, лучше почитать про SFINAE (свинку) в вики или еще где. само написание enable_if рассмотрено в книге: Шаблоны С++ справочник разработчика 2ed 2018 - Вандервуда. Смысл такой что в компиляторе ошибочное раскрытие шаблона - не является ошибкой, чтобы во время подбора (лучшего варианта) не отвалится при не удачной попытке поиска. На этом и построена Свинка, enable_if раскрывается в правильный(удачный) или не правильный(не удачный) шаблон. не удачный приводит к тому что весь шаблон (функция, метод, класс) оказывается ошибочным и он исключается из рассмотрения. и компилятор продолжает работу дальше. НО ты этим финтом как бы отключил (выкинул) не нужную функциональность (функцию, метод, класс), тем самым оставив нужную.

TTY
А как оно(std::enable_if) это делает, в таком случ...

Почитай про SFINAE Ошибка при инстанцировании шаблона не вызывает ошибку компиляции, а просто выкидывает перегрузку из рассмотрения std::enable_if<false>::type не существует, обращение к нему -- ошибка

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

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

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
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
Карта сайта