Andrei
Но std::bind зато умеет.
Andrei
Но и возвращаемый тип std::bind зато не кастуется к std::function
Anton
Ну т.е. если о главном. размер объекта получается "сравним" с обектом содержащим указатель на функцию?
🦥Alex Fails
предлагаю оценить через sizeof
Anton
Andrei
объект, который толлько мувать можно, но нельзя копировать
Anton
Ну т.е. определена move семантика и запрещен конструктор копирования?
Stanislav
например unique_ptr
🦥Alex Fails
или std::thread
Dmitriy / დიმიტრი
Ребят, я тут C++ изучаю(снова). Написал себе коротенькую шпору по исключениям. Ничего не забыл? https://gist.github.com/shelomentsevd/54fe3fb3ef84c6db1f4f28177c26d8b7
Alexander
try { } catch (...) { } можно еще писать, именно многоточие
Dmitriy / დიმიტრი
try { } catch (...) { } можно еще писать, именно многоточие
Это типа "нам пофиг что за исключения, просто делаем что-то одно на каждое"?
Alexander
да, но про "одно на каждое" не понял
Dmitriy / დიმიტრი
да, но про "одно на каждое" не понял
Не так выразился. Одна обработка для всех
Alexander
ага
Junior
Добрейший вечерочек
Surreal
Ребят, я тут C++ изучаю(снова). Написал себе коротенькую шпору по исключениям. Ничего не забыл? https://gist.github.com/shelomentsevd/54fe3fb3ef84c6db1f4f28177c26d8b7
Вместо throw() лучше noexcept\noexcept(bool). +Примеры на иерархию catch блоков с наследованием. +set_terminate +set_unexpected
Surreal
Про catch(...) уже написали.
🦥Alex Fails
кстати. MSVC умеет в catch(...) ловить SEH-исключения. Никто не пробовал в таком блоке вызывать std::current_exception?
Surreal
Вот, точно. Еще std::current_exception и std::exception_ptr
Al
Автор книги по stl
Al
Там не только метод what у некоторых исключений есть.
🦥Alex Fails
о, а у тебя есть эта книга в эл. варианте?
🦥Alex Fails
от этого автора у меня есть по шаблонам книга, вообще зачотная
Al
Да, я уже скидывал ее
🦥Alex Fails
фак, лол. Точно. тот файл в 48 Мб
Al
Вот в книге по stl, глава 4.3
🦥Alex Fails
вот она
🦥Alex Fails
#book #cpp #stl
Dmitriy / დიმიტრი
Казалось бы такая обыденная тема - исключения, а уже дофига страниц открыл. Тут на статью, наверное, хватает, а не на шпору.
🦥Alex Fails
Можно будет потом на гитхаб-страницу procxx разместить
Berkus
это ты еще boost::exception не видел...
Dmitriy / დიმიტრი
это ты еще boost::exception не видел...
За boost я вот вообще не знаю с какой стороной взяться. На работе его почти не используем, а читать всю доку по нему это с ума сойти можно
Gleb
У нас на работе буст даже в r0.
Gleb
Дрова на нем пишем.
Gleb
#include <boost/scope_exit.hpp> #include <boost/lambda/bind.hpp> #include <boost/lambda/construct.hpp> #include <boost/lambda/lambda.hpp>
Gleb
Вот такие хидеры в драйвере.
Gleb
Что то никого не впечатлило, ну ладно.
Gleb
нет. В студии 2008 нет с11
Gleb
с 2013 появилились в std
🦥Alex Fails
Since C++11
Berkus
-fPIC
Berkus
написано же
Berkus
а линковал ld, у тебя один файл для линковки?
Berkus
add.o это твой файл?
Berkus
а насмом ты компилил 32 битный код?
Berkus
у него были сложности с поддержкой x86_64 раньше, попробуй yasm
Berkus
там написано gcc -m32
Berkus
как думаешь какой это режим
Berkus
правильно, то есть 64 битный код не получится использовать
Berkus
тебе надо a) ассемблить в elf64, b) линковать gcc -m64
Berkus
c) возможно использовать yasm вместо nasm
Berkus
вроде да
Berkus
таак, стили вроде сгенерил
Berkus
теперь надо приватные Qt headers победить
Surreal
Вы все телеграм пытаете?
🦥Alex Fails
Ага
Berkus
гррр tdesktop/Telegram/SourceFiles/ui/text/text.h:23:10: fatal error: 'QtGui/private/qfontengine_p.h' file not found #include "QtGui/private/qfontengine_p.h" ^
Dmitriy / დიმიტრი
В итоге noexcept это какой-то костыль что бы move семантика нормально работала в STL получается. Я разочарован немного.
Sergey
я так подозреваю, что много где. но не осилил разобраться
Dmitriy / დიმიტრი
а на кой черт нужен этот noexcept?
https://akrzemi1.wordpress.com/2014/04/24/noexcept-what-for/ вот самое дельное объеснение какое нашел
Dmitriy / დიმიტრი
Это не костыль. Вполне юзабельная вещь.
А можешь какой-нибудь пример привести? A то кроме того что это фиксит логику в STL и ещё удобно для дебага в некоторых случаях, ничего не нашел.
Surreal
У компилятора больше простора в оптимизации при наличии noexcept спецификатора.
Surreal
У программиста больше простора в оптимизации при наличии noexcept спецификатора.
Surreal
Среди программистов на плюсах сложилось негативное отношение к исключениям и всему, что с ними связано. Больше всего меня раздражает, что указывать спецификацию исключений у функции throw(InternalException, NullptrException, ...) считается дурным тоном. Типа потом эту функцию зарефакторят, спецификация исключений поменяется и поломается весь код, который писался с учетом предыдущей спецификации.
Surreal
Так что лучше вообще забить на все эти "нормы" с исключениями. Надо просто понимать как с ними работать. А дальше уже ориентироваться на код-стайл команды, в которой работаешь.
Dmitriy / დიმიტრი
У компилятора больше простора в оптимизации при наличии noexcept спецификатора.
только вот если функция выбросит exception всё-таки, то вызовется std::terminate напрямую. Разве это хорошо?
Surreal
Это на твоей совести, что она выбросит что-то вопреки спецификации.
Dmitriy / დიმიტრი
Это на твоей совести, что она выбросит что-то вопреки спецификации.
Не сказал бы. Может и библиотека которую я использую выбросить
Surreal
Тогда не помечай свою функцию noexcept.
Sergey
прочитал эту статью дважды
Sergey
я верно понял - единственное применение - это в move constructor объектов, которые часто будут перемещаться в stl-объекты?