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 (...) { } можно еще писать, именно многоточие
Alexander
да, но про "одно на каждое" не понял
Dmitriy / დიმიტრი
Alexander
ага
Junior
Добрейший вечерочек
Surreal
Surreal
Про catch(...) уже написали.
🦥Alex Fails
кстати. MSVC умеет в catch(...) ловить SEH-исключения. Никто не пробовал в таком блоке вызывать std::current_exception?
Surreal
Вот, точно.
Еще std::current_exception и std::exception_ptr
Dmitriy / დიმიტრი
Al
Dmitriy / დიმიტრი
Al
Автор книги по stl
Al
Там не только метод what у некоторых исключений есть.
🦥Alex Fails
о, а у тебя есть эта книга в эл. варианте?
🦥Alex Fails
от этого автора у меня есть по шаблонам книга, вообще зачотная
Al
Да, я уже скидывал ее
🦥Alex Fails
фак, лол. Точно. тот файл в 48 Мб
Al
Вот в книге по stl, глава 4.3
🦥Alex Fails
🦥Alex Fails
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
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
Sergey
я так подозреваю, что много где. но не осилил разобраться
Surreal
Dmitriy / დიმიტრი
Это не костыль. Вполне юзабельная вещь.
А можешь какой-нибудь пример привести? A то кроме того что это фиксит логику в STL и ещё удобно для дебага в некоторых случаях, ничего не нашел.
Surreal
У компилятора больше простора в оптимизации при наличии noexcept спецификатора.
Surreal
У программиста больше простора в оптимизации при наличии noexcept спецификатора.
Berkus
Surreal
Среди программистов на плюсах сложилось негативное отношение к исключениям и всему, что с ними связано. Больше всего меня раздражает, что указывать спецификацию исключений у функции throw(InternalException, NullptrException, ...) считается дурным тоном. Типа потом эту функцию зарефакторят, спецификация исключений поменяется и поломается весь код, который писался с учетом предыдущей спецификации.
Surreal
Так что лучше вообще забить на все эти "нормы" с исключениями. Надо просто понимать как с ними работать. А дальше уже ориентироваться на код-стайл команды, в которой работаешь.
Surreal
Surreal
Это на твоей совести, что она выбросит что-то вопреки спецификации.
Dmitriy / დიმიტრი
Surreal
Тогда не помечай свою функцию noexcept.
Sergey
прочитал эту статью дважды
Sergey
я верно понял - единственное применение - это в move constructor объектов, которые часто будут перемещаться в stl-объекты?