Aktywne Wpisy

diamondhands +16
#iran czy tylko ja mam wrażenie że istnieje jakas blokada informacyjna z tej wojny? trudno o jakieś sprawdzone informacje, wszędzie zalew ai slop, nie wiadomo do końca jak to wszystko jest skoordynowane
mcsQ +16
poprosiłem Gemini aby pomogl mi zmigrowac dane z jednej bazy do drugiej, excel do JSONa. Patrze co tam wyplul i mowie k---a cos tu mi nie gra polowa danych, a ten: XD. J--a _ NY uwazajcie z tym AI.
#ai #gemini #programista15k
#ai #gemini #programista15k
źródło: image (6)
Pobierz




std::vector<sharedptr<Object>> tab;
i teraz chcę wyszukać obiekt po jednym z jego atrybutów
std::findif(tab.begin(), tab.end(), [](){});
To co chcę osiągnąć to:
std::findif(tab.begin(), tab.end(), [](const Object& obj){return obj.atr == 3;});
Problem polega na tym, że najpierw musiałaby nastąpić dereferencja pointera. Da się to jakoś zrobić?
Czy lambda musi przyjmować const std::shared_prt<Object>& ?
#cpp
std::shared_ptr<Object>i taki musi być argument.Może wyglądać np. tak:
[](const std::shared_ptr<Object> &ptr) {return ptr->atr == 3;}T, a który będzie zwracał funktor akceptującyU, gdzie dereferencjaUbędzie dawaćT. wtedy będzie można użyć tego mniej więcej takstd::find_if(tab.begin(), tab.end(), withDeref([](const Object& obj){return obj.atr == 3;}));przykładowy jednolinijkowy adapter w c++17(ofc można dorzucić tam perfect forwarding, ale to troche skomplikowane przy capture)
constexpr auto withDeref = [](auto& functor){return [functor](const auto& dereferencable){returnboost::find_if(tab | boost::adaptors::indirected, [](const Object& obj){return true;});