Aidar
Пока все делается двумя классами/шаблоном с 2 инстансами
Constantine
Эксепшон с точки зрения компилятора является чем-то вроде свитча в конце функции с пробросом, там логика не меняется
Constantine
Логика ветвления общая - убить все не общие квалификаторы в ветках
Aidar
Что с инкомплитом эксепшном и ноннулом
Constantine
Еали эксепшн может быть синтезирован до конструктора перемещения, в этот момент переменная была без энжуредналла и поэтому в моментвыхода функции с удалением аргумента функции квалификатора энжуредналл нет
Aidar
Тоесть все что без noexcept меняет квалификатор?
Constantine
Нет, просто формально вот так. Нет никакой проблемы с броском эксепшена после перемещения
Aidar
Тоесть всё-таки да
Aidar
Забудь про перемещение
Aidar
Перемещение можно заменить другой переменной
Aidar
Короче это все ещё делается на двух классах только тебе нужно всего лишь переписать всю стд
Aidar
Ну или дописать
Constantine
Не понимаю, как ты реализуешь фишку с ноуэксепт до возврата, честно
Aidar
Забудь про возврат
Aidar
Это делается просто перемещением в нужный тип
Constantine
?
Aidar
Вместо смены квалификатора перемещение в нужный тип
Aidar
Трассировка переменных не нужна
Aidar
Мы не теряем тип
Constantine
Ты же понимаешь, что я неявно проверю, может ли код до некоторого оператора выбросить исключение?
Aidar
Это не нужно делать
Aidar
Если каждый не noexcept меняет квалификатор
Aidar
Просто возвращаем новый тип
Constantine
Тогда ты не можешь гарантировать, что ты не вызываешь удаление
Aidar
Но это реально на функциональщину смахивает
Aidar
Aidar
С разным поведением
Constantine
Хм... указатель тебе во владение отдали
Aidar
Да ты переписал все и у тебя 2 указателя
Aidar
Один nonnull
Aidar
Второй null
Constantine
Фактически вместо того, чтобы доказать, что ты не удаляешь указатель, ты пофиксишь, добавив возможность его удалить
Aidar
А вот кстати нормально эксепшны в этом случае завести нельзя пока
Aidar
Синтаксиса нет
Constantine
У меня нарушение квалификатора ошибка уровня можно терминейт
Aidar
Точнее noexcept
Constantine
Пользовательский ввод получает квалификаторы под ифом всегда
Constantine
if (ensure_cast(input, notnull)) { call(); }
Constantine
И вообще все квалификаторы эти задуманы как средство формальных доказательств, а не рантайм чеки
Anonymous
Ребята, приветствую! На интересный проект срочно нужен разработчик C++ с практическим опытом написания драйверов под PCI-E. Если есть знания Verilog - вообще замечательно. Заинтересованных прошу обращаться в ЛС с резюме (вакансий вообще несколько, большинство приватны - в паблике не найдете). 👍
Anonymous
тебе на хх.ру
Anonymous
если ты конечно, не малварь пилишь
Anonymous
если ты конечно, не малварь пилишь
Не малварь, проект серьезный ) На ХХ нужных кандидатов нет, увы (могу судить со слов исключительно, т.к. если бы они там были, в любом случае ко мне бы не обратились).
Vladislav
Vlad
ребята, подскажите чат по swift'у
Square
Vlad
спасибо
Влад
👾Парни, а есть какие-то книги по Boost Asio и Libevent? Или какие-либо хорошие обучающие статьи? 👾
Vlad
по буст асио ща скину
Vlad
https://theboostcpplibraries.com/
Vlad
очень хорошее введение в материал
Влад
Оке) спасибо)
Vlad
конкретно асио - https://theboostcpplibraries.com/boost.asio
Влад
Пасиб)
Square
Aidar
Разве у полухина в книге про это нет?
Co(n)stantine👨🔬
Alex
А киньте линк на либу, которая строковые литералы на этапе компиляции компилит в C++-код. Тут где-то была
Evgenii
Alex
Вроде да. Тут кидали, и кто-то еще шутил по этому поводу
Alex
определила user-defined literal для строк, который на этапе компиляции генерит код по строчке
Alex
Ладно. Как прочитаю весь чат, найду мб
Alex
Нашел
Alex
https://github.com/kw-udon/constexpr-8cc
Evgenii
Повседневный C++: изолируем API в стиле C
https://habrahabr.ru/post/331100/
Tags: C++, c++17, повседневный c++
Author sergey_shambir on #habrahabr
Anonymous
Привет всем
Anonymous
Чуваки, кто в Графах могёт?
Anonymous
Привет
Anonymous
"Соседние ячейки принято классифицировать двояко: в смысле окрестности Мура и окрестности фон Неймана, отличающийся тем, что в окрестности фон Неймана соседними ячейками считаются только 4 ячейки по вертикали и горизонтали, в окрестности Мура — все 8 ячеек, включая диагональные."
(с) Википедия, описание волнового алгоритма(алгоритм Ли)
Anonymous
В начале описания алгоритма написано что он на планарном графе, но в планарном не может быть у вершины 8 соседей, тогда ребра неизбежно будут пересекаться и он перестанет быть планарным
Anonymous
https://ru.wikipedia.org/wiki/Алгоритм_Ли
Anonymous
Что я не так понимаю, объясните плес.
Anatoly
крестики-нолики 3x3 представляешь?
Anatoly
так вот, центральная клетка будет иметь 8 соседей
Anatoly
на плоскости
Anonymous
это я понимаю.