Mercury13, через строковый буфер ничем не поможет. один поток пишет int=11, второй int=22 и в консоли может оказаться "1212" хоть через буфер, хоть не через буфер. Так что или этот osyncstream или какие-нибудь мьютексы. Но про ввод в консоль это просто для примера.
Допустим, другой жизненный пример. Надо запретить запуск двух экзепляров приложения. Без WinAPI я не могу этого сделать "красиво". То есть можно файл в temp создавать и удалять при закрытии, но это костыли.
Mercury13, если бы оно было в стандарте и я бы об этом знал, то стал бы я спрашивать, есть ли такое в стандарте?
Но вот костыль через файл сработает, наверное. Создать пустой файл и открыать его на запись. Тогда второй процесс будет ждать, пока можно будет открыть на запись. Понятно, что можно ещё вебсокеты притянуть или ещё какие-то странные способы. Но мне стало интересно, может в современном С++23(26) уже что-то такое добавили. Особо не слежу за обновлениями.
например, когда два приложения пишут в один файл или в одну консоль. Знаю, что это звучит дикой архитектурой, но, если два приложения делают одну большую задачу, то мне удобно писать логи в один файл (одну консоль), а не в два. Можно писать в отдельные файлы с меткой времени, а потом два файла объединить в один, но хочется-то сразу. Межпроцессорным мьютексом синхронизировать запись.
res2001, не встречал упоминаний, что std::atomic и std::barrier подерживают процессы. Везде тлько про потоки.
Да и разделяемая память это уже API ОС, а не std\C++, а если всё-равно системное что-то испоьзовать, то как бы и изначально есть более удобные решения. Интересновало именно стандартное кроссплатформенное решение, а его нету. Раз нету, будем дальше использовать сторонние библиотеки.
rPman, а при чём тут Майкрософт? Не большой знаток Линуксов, там поток и процесс равнозначны в плане работы std::mutex?
Вот GUI в std крайне маловероятно что когда-то появится. Из boost кое-что тянут в std, но boost то открытый и бесплатный, а вот какой-нибудь Qt бесплатно никто не отдаст. А на что-то, кроме Qt-GUI, сообщество всё-равно не согласится :)
Если хочется кроссплатформенный байткод, то берём Java и пилим что хотим. Там и GUI свой инструментарий кроссплатформенный. Красота.
rPman, Да со сторними-то понятно. Чисто на Виндоус и WinAPI функций хватало. Просто столько всего в новые стандарты напихали, что мог недоглядеть. Значит и правда нет, а не я невнимательный.
Dyikot, а если не один nullptr надо проверить, а два?
Например: c.Parent()->Get()->Value();
Опять не подходит? То есть целый оператор ради одной строго фиксированной конструкции вводить, которая легко заменяется макросом?
Dyikot, Но ведь стандарт С++ не только для тебя пишут. Допустим, вот такой код:
auto cursor = c.Parent?.GetCursorOn() ?? c.Parent?.GetCursorOff();
Или всё, это уже слишком сложно и не будем оператор ??? вводить?
А мне вот хочется, чтобы в цикле for инкремент итератора был с условием. Сейчас для этого приходится while использовать, а хотелось бы в for как-нибудь по хитрому условие инкремента встроить. Чтобы отслеживало, перешло к следующей итерации автоматом или через continue. Предлагаю оператор о_0
Вообще похоже на то, что испорчены настройки проекта. Попробуй создать новый консольный проект и добавить в него include cfloat и попробовать скомпилировать.
ImagineTables, Если спрайты пиксель-арт, то есть программа заточенная под апскейл пиксельарта. Но я не помню название, поэтому пользы мало от этой информации...
Где выключал дамп памяти, там ещё флажок "сделать запись в журнал событий". Этот флажок тоже снял?
Не уверен, что можно мгновенный перезагруз в принципе сделать. Там же какая-то фоновая работа ещё может выполняться служебная, которая эти 3 секунды и даёт.
SmeliyR, Там в запросах несколько лет висит просьба о таком функционале, но не хочут её добавлять. Видимо, нативно не сделать сейчас никак.
Можно каким-нибудь Autohotkey виртуально нажимать правую кнопку.
Допустим, другой жизненный пример. Надо запретить запуск двух экзепляров приложения. Без WinAPI я не могу этого сделать "красиво". То есть можно файл в temp создавать и удалять при закрытии, но это костыли.