Я реагировал на действия других стран лет 20 назад, когда слышал по радио, как кого-то судили и штраф назначили за "нелегальный" просмотр фильм у себя дома. Офигевал от того, куда катится мир и радовался, что у нас самая свободная страна в то время была.
А компании в США обязаны хранить логи? А IT компании в США вообще обязаны предоставлять личную информацию о своих пользователях государству без веских на то причин?
Не так сложна сериализация, как страшна десериализация. (с) Джейсон Стетхем
Очень непонятно в использовании.
На мой взгляд десериализатор должен выплевывать конкретный дочерний объект по указателю на базовый. При этом при добавлении нового конкретного типа никаких лишних телодвижений в базовых компонентах производиться не должно. Не должно быть никаких ограничений в архитектуре и составе конкретных типов, кроме необходимости реализовать то-то, то-то и сё-то (компилятор должен подсказать выводимыми ошибками). Но по-моему, это из области фантастики и вообще C++ - боль.
Не понимаю, как связаны ежедневные билды с качеством?
Ну собирается автоматически проект, дальше то что?
Это еще не делает его стабильным.
Тем более что в название есть слово «ежедневные».
За один день невозможно сделать новую функциональность и достичь стабильности.
Для достижения статуса стабильности нужно пройти тщательный этап тестирования. Даже после мержа тщательно проверенной ветки в стабильную ветку.
А есть ли способ из sub_directory получить его include_directories?
Другими словами унаследовать пути до инклудников из подпроекта?
А то чего то задалбливает в корневом проекте все пути до инклудов всех включенных подпроектов перечислять, неправильно это как то.
Ну семплы 1, 2, 3, 4 где акрил с ясенем подсовывают я различить могу, они действительно были там чуток разные.
А вот запомнить звучание тембров на аккордах G в открытой позиции и на баре в 3 позиции дольше двух секунд не могу. Про экстраполяцию звучания тона на другие аккорды я вообще молчу.
А может есть подобные исследования, откуда берутся мертвые ноты, волчки, от чего зависит сустейн и как его увеличить.
Только нормальное исследование, как у Пола Грахама, с измерениями.
А почему нельзя сразу из live линукса (или где ты там делал загрузочную флешку) сразу скопировать дистрибутив на диск C: (то есть в ntfs раздел)? и затем оттуда же скопировать что надо в EFI раздел? Зачем мы загружаемся с флешки?
Или я чего то недопонял.
Ваш пример 2 «сработал», — выдал " Stack around the variable 'a' was corrupted." когда освобождается стек при выходе из стек-фрейма (из функции just_segfault())
Ну так получается, что поля типа заключать под #ifdef'ами в заголовочных файлах — потенциально опасная вещь.
Сами подумайте:
Хедерник может включаться многократно в разные единицы трансляции (т.е. в разные cpp/c/cxx и т.п. файлы)
И в разных единицах трансляции могут быть разные определения препроцессора.
Мы получим разные размеры объектов одного и того же типа в разных единицах трансляции, они могут слинковаться, могут не слинковаться, если слинкуются, то получится потенциально небезопасный код.
Не хватает экранирования кавычек во втором ряду строкового литерала.
Странно, что вообще компилируется (проверять я конечно же не буду), но строки лучше писать так:
std::string str = «some text»
«second row»
«third row»
…
«last row»;
Синьор — это специалист со знанием широкостекового мидла, который занимается неким режиссированием проекта — то есть продумывает архитектуру, концепцию, формализует и распараллеливает задачу от заказчика на несколько подзадач для разработчиков, ведет чейнджлог, просматривает merge request'ы, порой сам мёржит.
var theThing = null;
var replaceThing = function ()
{
var originalThing = theThing;
var unused = function () // Данная лямбда ссылается на ссылку originalThing,
// однако на данную лямбду окромя ссылки unusued
// ссылок нет.
{
if (originalThing)
console.log("hi");
};
theThing = // переинициализируем ссылку theThing нижеописанной лямбдой,
// которая ни на что не ссылается. На текущую лямбду будет ссылаться
// ссылка theThing, на предыдущую лямбду в данный
// момент ссылается только лишь ссылка originalThing, верно?
{
longStr: new Array(1000000).join('*'),
someMethod: function ()
{
console.log(someMessage);
}
};
}; // смело грохаем лямбду по ссылке unused, затем
// грохаем лямбду originalThing (gc с подсчетом ссылок)
setInterval(replaceThing, 1000);
Так в чем проблема? При выходе из области видимости лямбды replaceThing мы можем смело грохнуть объект (лямбду) расположенную по ссылке unused, тем самым разрешив разрушение объекта (лямбды) расположенной по ссылке originalThing.
А где нибудь есть список всех случаев UB со ссылками на стандарт?
Может от самого комитета?
Например:
— Изменение скалярного объекта между двумя точками следования более одного раза
— разыменование нулевого указателя
— переполнение знакового целочисленного
— Использование неинициализированной переменной.
и т.п.
Эмм…
а мне нужен планировщик расписания задач, но дело в том что по английски расписание — это scheduler и планировщик — это scheduler, и вот я нагуглил Вашу статью. Тема конечно интересная, но не совсем то, что мне в данный момент нужно (а тут речь скорее идет о пуле задач и потоков или о задаче «Round-robin» https://ru.wikipedia.org/wiki/Round-robin_(%D0%B0%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC) )
А мне нужно такое:
добавлять задачу и время её выполнения (или периодичность — не суть) Ну и компонента уже сама выполняет добавленные задачи когда наступает время X. Своеобразный крон такой.
Есть ли готовые решения в бусте? Ну или как с минимальным велосипедизмом люди делают?
Я реагировал на действия других стран лет 20 назад, когда слышал по радио, как кого-то судили и штраф назначили за "нелегальный" просмотр фильм у себя дома.
Офигевал от того, куда катится мир и радовался, что у нас самая свободная страна в то время была.
А компании в США обязаны хранить логи?
А IT компании в США вообще обязаны предоставлять личную информацию о своих пользователях государству без веских на то причин?
Не так сложна сериализация, как страшна десериализация.
(с) Джейсон Стетхем
Очень непонятно в использовании.
На мой взгляд десериализатор должен выплевывать конкретный дочерний объект по указателю на базовый. При этом при добавлении нового конкретного типа никаких лишних телодвижений в базовых компонентах производиться не должно. Не должно быть никаких ограничений в архитектуре и составе конкретных типов, кроме необходимости реализовать то-то, то-то и сё-то (компилятор должен подсказать выводимыми ошибками).
Но по-моему, это из области фантастики и вообще C++ - боль.
Димон, разлогинься)
А кто нибудь знает, как завести эту kernel-mode сборку в отдельной сборочной директории?
Ну собирается автоматически проект, дальше то что?
Это еще не делает его стабильным.
Тем более что в название есть слово «ежедневные».
За один день невозможно сделать новую функциональность и достичь стабильности.
Для достижения статуса стабильности нужно пройти тщательный этап тестирования. Даже после мержа тщательно проверенной ветки в стабильную ветку.
Другими словами унаследовать пути до инклудников из подпроекта?
А то чего то задалбливает в корневом проекте все пути до инклудов всех включенных подпроектов перечислять, неправильно это как то.
А вот запомнить звучание тембров на аккордах G в открытой позиции и на баре в 3 позиции дольше двух секунд не могу. Про экстраполяцию звучания тона на другие аккорды я вообще молчу.
А может есть подобные исследования, откуда берутся мертвые ноты, волчки, от чего зависит сустейн и как его увеличить.
Только нормальное исследование, как у Пола Грахама, с измерениями.
Или я чего то недопонял.
Ну так получается, что поля типа заключать под #ifdef'ами в заголовочных файлах — потенциально опасная вещь.
Сами подумайте:
Хедерник может включаться многократно в разные единицы трансляции (т.е. в разные cpp/c/cxx и т.п. файлы)
И в разных единицах трансляции могут быть разные определения препроцессора.
Мы получим разные размеры объектов одного и того же типа в разных единицах трансляции, они могут слинковаться, могут не слинковаться, если слинкуются, то получится потенциально небезопасный код.
Препроцессинг мог остаться старый, в то время как компиляцию мелкомягкие сделали нормально.
Странно, что вообще компилируется (проверять я конечно же не буду), но строки лучше писать так:
std::string str = «some text»
«second row»
«third row»
…
«last row»;
Так в чем проблема? При выходе из области видимости лямбды replaceThing мы можем смело грохнуть объект (лямбду) расположенную по ссылке unused, тем самым разрешив разрушение объекта (лямбды) расположенной по ссылке originalThing.
Может от самого комитета?
Например:
— Изменение скалярного объекта между двумя точками следования более одного раза
— разыменование нулевого указателя
— переполнение знакового целочисленного
— Использование неинициализированной переменной.
и т.п.
Это en.cppreference.com/w/cpp/language/ub полный список?
И причём там «Infinite loop without side-effects»?
И выделить этот блок в отдельную функцию, назвав ее наиболее точно, например
а мне нужен планировщик расписания задач, но дело в том что по английски расписание — это scheduler и планировщик — это scheduler, и вот я нагуглил Вашу статью. Тема конечно интересная, но не совсем то, что мне в данный момент нужно (а тут речь скорее идет о пуле задач и потоков или о задаче «Round-robin» https://ru.wikipedia.org/wiki/Round-robin_(%D0%B0%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC) )
А мне нужно такое:
добавлять задачу и время её выполнения (или периодичность — не суть) Ну и компонента уже сама выполняет добавленные задачи когда наступает время X. Своеобразный крон такой.
Есть ли готовые решения в бусте? Ну или как с минимальным велосипедизмом люди делают?