@ProCxx

Страница 973 из 2477
Aidar
16.06.2017
22:24:27
А при входе в ветвление проверка в рантайме?

FailsBot
16.06.2017
22:24:35
/help@FailsBot
USAGE: /help - prints this message; /vzhuh [message] - do vzhuh; /start - info about bot.

/help@FailsBot
USAGE: /help - prints this message; /vzhuh [message] - do vzhuh; /start - info about bot.

Aidar
16.06.2017
22:25:04
Если нет то я нихрена не понял если да то это кастом можно заменить

Google
Danila
16.06.2017
22:27:53
/vzhuh test

FailsBot
16.06.2017
22:27:53
∧_∧ ( ・ω・。)つ━☆・*。 ⊂  ノ    ・゜+. しーJ   °。+ *´¨)          .· ´¸.·*´¨) ¸.·*¨)           (¸.·´ (¸.·'* ☆ test

Constantine
16.06.2017
22:27:56
А при входе в ветвление проверка в рантайме?
Нет ни одной проверки в рантайме от компилятора, например

Есть qualifier_ensure_or_terminate() явная проверка, вызывающая терминейт

При провале

Aidar
16.06.2017
22:29:26
Тогда там вообще все типами заменяется насколько я понял

Без кастов

Constantine
16.06.2017
22:30:05
Нет, это нельзя сделать типами без кастов, потому что ты никогда не сможешь написать тот самый пример с юник поинтерами)

Aidar
16.06.2017
22:30:06
Типом с null и nonnull

Сможешь

Constantine
16.06.2017
22:30:22
Как?

Aidar
16.06.2017
22:30:23
2 функции/шаблон

Constantine
16.06.2017
22:30:43
Угу, но нужен еще рекаст ссылки

Google
Aidar
16.06.2017
22:30:50
Не нужен

Ты никогда просто не теряй эту инфу о типах и все

Constantine
16.06.2017
22:31:25
Как? Я получил класс, который ведет себя как нотналл юник птр, аргмуентом функции

Мне нужен виртуальный делитер как минимум

Aidar
16.06.2017
22:31:58
И

Constantine
16.06.2017
22:32:16
И теперь эксепшон сейфети

Как я его добьюсь?

Aidar
16.06.2017
22:32:55
Ты не можешь юзать конструктор не зная про деструктор

Встречный вопрос как ты этого добъешься в компильтайме я не понял

Constantine
16.06.2017
22:33:58
Угу, то есть удалять я все время мог через делитер на супербейзкласс, ладно

В компильтайме без модификации компилятора я не могу модифицировать квалификаторы

Aidar
16.06.2017
22:35:48
С модификацией любой

Constantine
16.06.2017
22:36:12
С модификацией у меня у переменной тупо список квалификаторов

Aidar
16.06.2017
22:36:18
Эксепшн это рантайм

Constantine
16.06.2017
22:36:28
Который влияет на разрешение перегрузок

Aidar
16.06.2017
22:36:40
Это в любом случае проверка в рантайме

Это не компильтайм

Constantine
16.06.2017
22:37:00
Нет, это статическая информация, слабая часть типа переменной

Aidar
16.06.2017
22:37:08
Нет

Constantine
16.06.2017
22:37:14
Она может быть модифицирована оператором

Google
Aidar
16.06.2017
22:37:27
Блин напиши псевдокод

Constantine
16.06.2017
22:39:38
Короче компилятору говорят, что у юникптр есть квалификатор энжуредналл, он верен в случае нулевого внутреннего указателя, мувконструктор модифицирует принятую ссылку, дописывая энжуредналл, есть перегруженная версия деструктора для энжуредналл, которая не делает ничего

Aidar
16.06.2017
22:40:20
Как узнать что указатель нулевой

Constantine
16.06.2017
22:40:30
И стд::мув не меняет квалификаторы

Aidar
16.06.2017
22:40:33
Блин опять не туда

С эксепшнами то чтт

Что происходит при эксепшне

Constantine
16.06.2017
22:44:26
Теперь компилируется функция, которая принимает аргумент и возвращает мувом. Мув придется делать встроенным чтобы было все ок, потому как компилятор должен протащить имя переменной, или тут нужен какой-то чит. Вызывается конструктор перемещения, его параметру довешивают энжуредналл, в итоге на выходе функции параметр функции энжуредналл и вызван деструктор делать ничего

Aidar
16.06.2017
22:45:42
Пока все делается двумя классами/шаблоном с 2 инстансами

Constantine
16.06.2017
22:45:47
Эксепшон с точки зрения компилятора является чем-то вроде свитча в конце функции с пробросом, там логика не меняется

Логика ветвления общая - убить все не общие квалификаторы в ветках

Aidar
16.06.2017
22:46:28
Что с инкомплитом эксепшном и ноннулом

Constantine
16.06.2017
22:48:15
Еали эксепшн может быть синтезирован до конструктора перемещения, в этот момент переменная была без энжуредналла и поэтому в моментвыхода функции с удалением аргумента функции квалификатора энжуредналл нет

Aidar
16.06.2017
22:49:42
Тоесть все что без noexcept меняет квалификатор?

Constantine
16.06.2017
22:50:51
Нет, просто формально вот так. Нет никакой проблемы с броском эксепшена после перемещения

Aidar
16.06.2017
22:51:21
Тоесть всё-таки да

Забудь про перемещение

Перемещение можно заменить другой переменной

Короче это все ещё делается на двух классах только тебе нужно всего лишь переписать всю стд

Ну или дописать

Google
Constantine
16.06.2017
22:53:06
Не понимаю, как ты реализуешь фишку с ноуэксепт до возврата, честно

Aidar
16.06.2017
22:53:28
Забудь про возврат

Это делается просто перемещением в нужный тип

Constantine
16.06.2017
22:55:46
?

Aidar
16.06.2017
22:56:08
Вместо смены квалификатора перемещение в нужный тип

Трассировка переменных не нужна

Мы не теряем тип

Admin
ERROR: S client not available

Constantine
16.06.2017
22:56:37
Ты же понимаешь, что я неявно проверю, может ли код до некоторого оператора выбросить исключение?

Aidar
16.06.2017
22:57:01
Это не нужно делать

Если каждый не noexcept меняет квалификатор

Просто возвращаем новый тип

Constantine
16.06.2017
22:57:56
Тогда ты не можешь гарантировать, что ты не вызываешь удаление

Aidar
16.06.2017
22:58:14
Но это реально на функциональщину смахивает

С разным поведением

Constantine
16.06.2017
22:59:09
Хм... указатель тебе во владение отдали

Aidar
16.06.2017
22:59:38
Да ты переписал все и у тебя 2 указателя

Один nonnull

Второй null

Google
Constantine
16.06.2017
23:00:26
Фактически вместо того, чтобы доказать, что ты не удаляешь указатель, ты пофиксишь, добавив возможность его удалить

Aidar
16.06.2017
23:02:22
А вот кстати нормально эксепшны в этом случае завести нельзя пока

Синтаксиса нет

Constantine
16.06.2017
23:03:11
У меня нарушение квалификатора ошибка уровня можно терминейт

Aidar
16.06.2017
23:03:16
Точнее noexcept

Constantine
16.06.2017
23:04:11
Пользовательский ввод получает квалификаторы под ифом всегда

if (ensure_cast(input, notnull)) { call(); }

И вообще все квалификаторы эти задуманы как средство формальных доказательств, а не рантайм чеки

Vika
17.06.2017
00:26:02
Ребята, приветствую! На интересный проект срочно нужен разработчик C++ с практическим опытом написания драйверов под PCI-E. Если есть знания Verilog - вообще замечательно. Заинтересованных прошу обращаться в ЛС с резюме (вакансий вообще несколько, большинство приватны - в паблике не найдете). ?

i'm crebs
17.06.2017
00:28:09
тебе на хх.ру

если ты конечно, не малварь пилишь

Vika
17.06.2017
00:30:49
если ты конечно, не малварь пилишь
Не малварь, проект серьезный ) На ХХ нужных кандидатов нет, увы (могу судить со слов исключительно, т.к. если бы они там были, в любом случае ко мне бы не обратились).

Vika
17.06.2017
01:16:46
Просьба соблюдать правила чата: все вакансии в личку @AlexFails
Прошу прощения :( Поскольку уже опубликовала - может пропустят? ;) На будущее буду знать. Обычно правила в пине прикрепляют, а у вас они оказывается в инфо висят.

Alexander
17.06.2017
01:28:54
24-26 августа в Томске на территории Томского государственного университета пройдёт конференция C++ Siberia 2017. Нулевой день конференции (24 августа) отведен для мастер-классов. В первый день (25 августа) состоится регистрация участников и открытие конференции. Открывать конференцию будет Ivan Cukic: аспирант кафедры Comuter Science университета Белграда, активный контрибьютор проекта KDE, автор книги Functional Programming in C++. Завершает первый день общение в неформальной обстановке. Второй день конференции (26 августа) будет открывать Александр Фокин: председатель российской рабочей группы по стандартизации С++, руководитель службы разработки поисковых компонент компании Яндекс. Подать заявку на доклад можно до 15 августа 2017 года на talks@cpp-russia.ru или здесь. Продолжительность доклада не должна превышать 50 минут (с учетом вопросов). Мы рады докладам о C++ (в том числ 2x), STL, Boost, Qt, любых других библиотеках, тестировании и сборке крупных проектов на С++, асинхронности и конкурентности, метапрограммировании, etc. Если у Вас есть вопросы, пишите нам. Регистрация на конференцию: http://cpp-russia.ru/?p=1379 Конференция проходит при поддержке Томского государственного университета и компаний Яндекс и Инфотекс.

Vlad
17.06.2017
07:41:27
ребята, подскажите чат по swift'у

Square
17.06.2017
07:43:13
Vlad
17.06.2017
07:43:29
https://telegram.me/ios_ru
а если мне нужно про гуй на маке (на десктопе)?

Square
17.06.2017
07:44:05
а если мне нужно про гуй на маке (на десктопе)?
:( там подскажут, главное вопросы предметно задавай

Страница 973 из 2477