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

Народ, привет! У меня есть шаблонный класс массив чисел и

у него есть методы сортировки. Как сделать метод шаблонного класса доступным только для обределенного типа (например чтобы метод бинарная сортировка был доступty только для целочисленных типов)?

4 ответов

18 просмотров

Метод сделать private. Класс сделать friend.

(например чтобы метод бинарная сортировка был доступty только для целочисленных типов)? Это сделать невозможно.

Всё проще делается. Чтобы сортировать, нужно сравнение элементов. Определи фукнцию сравнения только для опроеделённых типов, и всё. Если пользователь определит функцию сравнения для ещё каких-то типов — хорошо. А если нет — он не сможет вызывать сортировку. При этом естественно ты не должен использовать стандартный operator <, а использовать какую-то свою фукнцию сравнения. (это один из подходов, можно как-то ещё)

Частичная специализация

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

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

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
Вот еще странный косяк, подскажите как бороться. Я git clone сделал себе всего embassy и примеры там запускаю. Всё хорошо. Но вот решил в cargo.toml зависимости не как в приме...
Lukutin R2AJP
5
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта