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

Шаблоны мб помогут? Что конкретно сделать надо?

18 ответов

20 просмотров

ну есть условная функция parseJson(const Json::Value&, const std::string& field, double& res), где последний аргумент может иметь тиа double&, std::string&, int& и тд мне нужно, чтобы логика с типом double& в одном из файлов была другой

Flower-Surgeon Автор вопроса
Kirill 🚜
ну есть условная функция parseJson(const Json::Val...

Боюсь, что так сделать будет нельзя.

Flower Surgeon
Боюсь, что так сделать будет нельзя.

Да, я не выспался просто, уже понял что отстойная затея

Kirill 🚜
ну есть условная функция parseJson(const Json::Val...

Если есть возможность изменить parseJson, то можно переписать её так, чтобы была возможность подкинуть ей в параметрах стратегии, и через них делать кастомизацию. Короче, добавить доп. точки кастомизации. Если изменить не можешь - сделать не получится

Kirill Bolshakov
Если есть возможность изменить parseJson, то можно...

Действительно можно сделать так, спасибо

Kirill 🚜
ну есть условная функция parseJson(const Json::Val...

не лучше ли другую функцию написать для этого фаила?

Aleksei Budyakov
не лучше ли другую функцию написать для этого фаил...

Я так и сделал, но это же некрасиво. Для всех типов используется parseJson, а для double - parseJsonDoubleCustom

Kirill Bolshakov
Если есть возможность изменить parseJson, то можно...

А стратегии это условно говоря флаги, которые выбирают внутри функции какую ветвь if-else выполнять, или что это?

Kirill 🚜
Я буду делать через инлайнящиеся лямбды

Чтоб так сделать уже шаблоны должны быть

Kirill 🚜
Я буду делать через инлайнящиеся лямбды

upd: не буду, тимлид не разрешил )))) :(

Kirill Bolshakov
Гугли паттерн "Стратегия"

Просто наследование разных алгоритмов от одного интерфейса и передача полиморфной базы некоторому классу ?

Aleksei Budyakov
Просто наследование разных алгоритмов от одного ин...

Это Java style, в С++ можно изящнее сделать. Ты суть пойми

Kirill Bolshakov
Это Java style, в С++ можно изящнее сделать. Ты су...

Изящнее - это передать в шаблон тип функции и инстанциировать его как член класса ? (либо инстанциировать std::function)

Kirill Bolshakov
Да просто функцию передать - уже заебись

Круто. Теперь хочу переписать часть своего уже написанного кода, т.к раньше Java Style делал подобное

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

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

а через 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
Карта сайта