Berkus
я это проходил задолго до публикаций касперски
Stanislav
Есть линк на pdf?
на трекерах глянь)
Stanislav
http://coolfire.insomnia247.nl/Hacker%20Disassembling%20Uncovered.pdf
Anonymous
Всем привет, скажите что лучше для геттеров и сеттеров bankAccount или bankAccount2 ? namespace bankAccount { using std::string; class BankAcc { private: string pass; public: void setName(const string & n) { pass = n; }; const string & getName() const { return pass; }; }; } namespace bankAccount2 { using std::string; class BankAcc { private: string pass; public: void setName(string n) { pass = n; }; string getName() const { return pass; }; }; }
Anonymous
В учебных целях
Vladislav
void setName(string n) { pass = std::move(n); } и const string & getName() const { return pass; }
Deleted Account
void setName(string n) { pass = std::move(n); } и const string & getName() const { return pass; }
а при setName(string n) 100% можно не париться? или будет батхёрт при случайно проёбаном контенте?
Anonymous
Т.е то что мы возвращаем адрес приватной переменной — это нормально? const string & getName() const { return pass; }
Deleted Account
Т.е то что мы возвращаем адрес приватной переменной — это нормально? const string & getName() const { return pass; }
ну да но ты должен гарантировать что владелец переживёт тех кто будет эту сылку юзать
Deleted Account
если не можеш гарантировать то может сделать метод release и забирать владение
Deleted Account
string releaseName() const { return std::move(pass); }
Anonymous
спасибо)
🐙 Antony
string releaseName() const { return std::move(pass); }
Надеюсь это была издёвка. Не делайте такие move!
Deleted Account
Надеюсь это была издёвка. Не делайте такие move!
ну можно положиться на RVO но это же нелегально
Deleted Account
я то все мемберы запаковываю в std::unique_ptr и делаю такие мувы 🙊🙈 релизы
Evgenii
зачем?
Deleted Account
зачем?
ну не все, ну типа мувать
Deleted Account
например у меня есть клас загрузчика настроек, он их читает и заполняет, а есть клас хранения настроек и создания индексов по ним вот я между ними муваю
Deleted Account
это сильно зашкварно?
Evgenii
ну не все, ну типа мувать
и какая у этого мотивация?
Deleted Account
и какая у этого мотивация?
🙄 ну типа не копировать то что должно быть в одном экземпляре
Evgenii
🙄 ну типа не копировать то что должно быть в одном экземпляре
имхо если это не большой объект лучше скопировать
Deleted Account
имхо если это не большой объект лучше скопировать
да я тоже уже склоняюсь что на первое время лучше делать с копированием
Evgenii
иначе ты просто код загромождаешь
Deleted Account
если понадобится оптимизация то можно нашаманить
Evgenii
так же и с смарт поинтерами, я считаю не стоит их пихать повсюду
Tom
Надеюсь это была издёвка. Не делайте такие move!
Почему? Это же member variable, а не локальный объект. Вроде никакой RVO нету тут, или я путаю? Для приличия можно так написать: string getName() const& { return pass; } string getName() && { return std::move(pass); }
🐙 Antony
Почему? Это же member variable, а не локальный объект. Вроде никакой RVO нету тут, или я путаю? Для приличия можно так написать: string getName() const& { return pass; } string getName() && { return std::move(pass); }
ОМГ. Давайте по шагам: string releaseName() const { return std::move(pass); } Результатом move будет const string&& т.к. метод помечен как const. это вас спасает от того, что внутри класа окажется пустая строчка. string releaseName() { return std::move(pass); } Результатом move будет string&& . Внутри класа окажется пустая строчка. string getName() const& { return pass; } Зачем-то делаете копирование, хотя обычно принято возвращать по константной ссылке. string getName() && { return std::move(pass); } Тут всё норм :)
Vladislav
http://en.cppreference.com/w/cpp/algorithm/execution_policy_tag_t <- а вот эта штука на практике реализована где-нибудь сейчас?
vladislav
блэт, неудобные боты в телеграме всё же
Deleted Account
блэт, неудобные боты в телеграме всё же
типа хранят личьную инфу хуй знает где?
vladislav
нет, общаться с ними неудобно
Berkus
да вроде достаточно круто, не хуже других ботов
Mikhail
на сколько удачна реализация https://codeshare.io/5OKVyN
Vladislav
на сколько удачна реализация https://codeshare.io/5OKVyN
а там точно именно list нужен? В большенстве случаев vector лучше
Mikhail
возможны постоянные добовления и удаления ( удаление пока не написано)
Vladislav
ну и unique_ptr<list<..» - не совсем понятно, зачем сам list где-то в хипе выделять
Mikhail
с этой целью list, а в целом да vector лучше бы подошёл
Mikhail
пишу под HoloLens в UWP
Mikhail
стараюсь уйти от небезопасных укозателей
Vladislav
не, я имею в виду - почему не просто list<...>?
Mikhail
хмм ))
Mikhail
согласен
Vladislav
да и type_info_component легкий, думаю его лучше просто копировать, а не в shared_ptr заворачивать
Mikhail
В общем применяю смарт указатель вместо new и delete
Vladislav
В общем применяю смарт указатель вместо new и delete
это правильно, да) в современном коде new/delete не должно быть, в идеале
Vladislav
но я про то что часто проще не использовать указатели вообще
Mikhail
Они достаточно тяжёлые + потокобезопасные, и меньше геморра с утечкой
Mikhail
и в выше вопрос про unique по этому и применил
Vladislav
Я предлагаю unique_ptr<list<shared_ptr<type_info_component»> -> list<type_info_component>, если нет каких-то нюансов, которые не дают так сделать
Vladislav
и код проще будет, и работать быстрее
Mikhail
тогда будет new и delete
Vladislav
почему?
Mikhail
просто в дальнейшем меньше траблов будет с потоками
Vladislav
у текущего кода и так будет куча траблов с потоками
Vladislav
и заворачивать все объекты в shared_ptr никак не помогает, казалось бы
Mikhail
в чём мои ошибки?
Mikhail
они же атомарные
Vladislav
а объекты, на которые они указывают - нет
Vladislav
и list тоже не thread safe
Mikhail
ладно подумаю, спс
vector0
Привет, есть ли здесь люди которые решали задачи с помощью Boost.Polygon? Я планирую использовать эту библиотеку для построения диаграммы вороного и перейти от нее к триангуляции Делоне. Но я не понимаю почему by design: "The coordinate data type <...> is expected to be integral." Может быть я что-то упускаю из вида? Ведь для реальных задач, как правило приходится работать с даблами.
Vladislav
олсо, триангуляцию Делоне в общем случае проще напрямую искать, а не через диаграмму Вороного; Есть довольно быстрый и легкий в реализации вероятностный алгоритм, например
vector0
Изначально была идея не городить своих велосипедов, поэтому начал смотреть в сторону доступных мне решений.
Vladislav
возьми cgal тогда
vector0
Тут ключевое слово доступных мне решений, у меня нет возможности тащить в проект всё, что захочется и не только из-за лицензионных ограничений.
vector0
Бустовые библиотеки тоже по большому счёту под запретом.
vector0
Ну на самом деле доступные вещи яна предмет доступности нужного я уже изучил, там оно отсутствует, так что остаются свои реализации. Спасибо за идею с вероятностным алгоритмом, был знаком только с итеративными, сейчас поподробней покапаюсь в эту сторону.
Vladislav
еще вариант - заюзать буст, если можно координаты да fixed-point округлить