Pull to refresh
-4
0
Александр @kovalexius

User

Send message

Я реагировал на действия других стран лет 20 назад, когда слышал по радио, как кого-то судили и штраф назначили за "нелегальный" просмотр фильм у себя дома.
Офигевал от того, куда катится мир и радовался, что у нас самая свободная страна в то время была.

А компании в США обязаны хранить логи?
А IT компании в США вообще обязаны предоставлять личную информацию о своих пользователях государству без веских на то причин?

Не так сложна сериализация, как страшна десериализация.
(с) Джейсон Стетхем

Очень непонятно в использовании.

На мой взгляд десериализатор должен выплевывать конкретный дочерний объект по указателю на базовый. При этом при добавлении нового конкретного типа никаких лишних телодвижений в базовых компонентах производиться не должно. Не должно быть никаких ограничений в архитектуре и составе конкретных типов, кроме необходимости реализовать то-то, то-то и сё-то (компилятор должен подсказать выводимыми ошибками).
Но по-моему, это из области фантастики и вообще C++ - боль.

А кто нибудь знает, как завести эту kernel-mode сборку в отдельной сборочной директории?

Не понимаю, как связаны ежедневные билды с качеством?
Ну собирается автоматически проект, дальше то что?
Это еще не делает его стабильным.
Тем более что в название есть слово «ежедневные».
За один день невозможно сделать новую функциональность и достичь стабильности.
Для достижения статуса стабильности нужно пройти тщательный этап тестирования. Даже после мержа тщательно проверенной ветки в стабильную ветку.
А есть ли способ из 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 со ссылками на стандарт?
Может от самого комитета?
Например:
— Изменение скалярного объекта между двумя точками следования более одного раза
— разыменование нулевого указателя
— переполнение знакового целочисленного
— Использование неинициализированной переменной.
и т.п.

Это en.cppreference.com/w/cpp/language/ub полный список?
И причём там «Infinite loop without side-effects»?
Просто нужно понять, что есть, например

    || strncmp(tx, "+Inf", 4) == 0 || strncmp(tx, "-Inf", 4) == 0
    || strncmp(tx, "+Nan", 4) == 0 || strncmp(tx, "-Nan", 4) == 0
    || strncmp(tx, "%nan", 4) == 0 || strncmp(tx, "%inf", 4) == 0


И выделить этот блок в отдельную функцию, назвав ее наиболее точно, например

bool isValueNonRationalNumeric(const std::string& _value)
{
  return strncmp(_value.c_str(), "+Inf", 4) == 0 || strncmp(_value.c_str(), "-Inf", 4) == 0 ||
         strncmp(_value.c_str(), "+Nan", 4) == 0 || strncmp(_value.c_str(), "-Nan", 4) == 0 ||
         strncmp(_value.c_str(), "%nan", 4) == 0 || strncmp(_value.c_str(), "%inf", 4) == 0;
}
Эмм…
а мне нужен планировщик расписания задач, но дело в том что по английски расписание — это 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. Своеобразный крон такой.

Есть ли готовые решения в бусте? Ну или как с минимальным велосипедизмом люди делают?

Information

Rating
Does not participate
Date of birth
Registered
Activity