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

Ну я хочу чтобы показали конкретный пример template<typename T> void do_smth(const T

&t);

как у такой функции сделать особую функциональность для чисел с плавающей точкой?

20 ответов

23 просмотра

if constexpr

I-C Автор вопроса
Слава
if constexpr

не хочется в одной функции делать кучу веток на разные типы. Нет способа через специализации сделать не перечисляя каждый тип и не копипастя?

temptemplate<typename T, typename = std::enable_if_t<std::is_floating_point_v<T>>> void do_smth(const T &t);

I-C Автор вопроса
Georgy Firsov
https://godbolt.org/z/vYYrG3zPa

А void зачем явно писать?

Слава
А void зачем явно писать?

Да незачем в принципе

I-C Автор вопроса
Слава
temptemplate<typename T, typename = std::enable_if...

подожди, а как её специализировать например для char *?

Georgy Firsov
https://godbolt.org/z/vYYrG3zPa

К слову, ещё через tag dispatch можно Но прокатит только для бинарной "классификации" типов

I-C Автор вопроса
Слава
void do_smth(char*)

а к примеру ещё добавить для интегральных типов

I C
а к примеру ещё добавить для интегральных типов

Ну выше только условие другое пишешь

Georgy Firsov
К слову, ещё через tag dispatch можно Но прокатит ...

Ну как-то такое. Это скорее замена if constexpr

I-C Автор вопроса
I C
говорит редифинишен

На generic реализацию надо набросить бо́льшие ограничения

Georgy Firsov
На generic реализацию надо набросить бо́льшие огра...

Там проблема в том что когда делаешь две перегрузки как я писал, то там темплейт релифинишн

Слава
Там проблема в том что когда делаешь две перегрузк...

Ну я уже кидал ссылку Там такого не будет, так как обобщенный шаблон тоже ограничен

Georgy Firsov
Ну я уже кидал ссылку Там такого не будет, так как...

Ну у тебя да, но я чет забыл из-за чего это происходит и почему у тебя нет

Слава
Ну у тебя да, но я чет забыл из-за чего это происх...

Хотя понятно в принципе. Ретурн тайп разный у функций

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

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

а через ESC-код ?
Alexey Kulakov
29
30500 за редактор? )
Владимир
47
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
в JclConsole объявлено так: function CtrlHandler(CtrlType: DWORD): BOOL; stdcall; - где ваше объявление с stdcall? у вас на картинке нет stdcall
Karagy
8
Ребят в СИ можно реализовать ООП?
Николай
33
Вот еще странный косяк, подскажите как бороться. Я git clone сделал себе всего embassy и примеры там запускаю. Всё хорошо. Но вот решил в cargo.toml зависимости не как в приме...
Lukutin R2AJP
2
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
Карта сайта