<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/">
  <channel>
    <title>Форум 'C/C++' на RSDN</title>
    <link>http://rsdn.org/Forum/cpp/</link>
    <description>Программирование на C++. No VCL, no MFC, pure C++ only.</description>
    <category>cpp</category>
    <language>ru-ru</language>
    <copyright>Copyright ©, RSDN, 2001-2007</copyright>
    <webMaster>forum@rsdn.org</webMaster>
    <generator>RSDN RSS Generator 1.3</generator>
    <image>
      <url>http://rsdn.org/rsdn.gif</url>
      <title>RSDN</title>
      <link>http://rsdn.org</link>
    </image>
    <lastBuildDate>Thu, 30 Apr 2026 16:41:30 GMT</lastBuildDate>
    <ttl>5</ttl>
	<item>
		<title>iota_view::iterator не двунаправленный</title>
		<link>http://rsdn.org/Forum/cpp/9068225.1</link>
		<guid isPermaLink="true">http://rsdn.org/Forum/cpp/9068225</guid>
		<comments>http://rsdn.org/Forum/cpp/9068225</comments>
		<wfw:comment>http://rsdn.org/Forum/PostRssComment.aspx?mid=9068225</wfw:comment>
		<wfw:commentRss>http://rsdn.org/Forum/RSS/9068225</wfw:commentRss>
		<trackback:ping>http://rsdn.org/Forum/Trackback.aspx?mid=9068225</trackback:ping>
		<description>
			
					&lt;div style="@import url(http://rsdn.org/Forum/Forum.css);"&gt;всем привет. Такая проблема.&lt;br /&gt;
&lt;br /&gt;
&lt;pre class='c'&gt;&lt;code&gt;&lt;span class='kw'&gt;const auto&lt;/span&gt; fpsRange = std::ranges::iota_view(1, 32);
&lt;span class='kw'&gt;auto&lt;/span&gt; it = fpsRange.begin();
std::advance(it, 100); &lt;span class='com'&gt;// Ok&lt;/span&gt;
std::advance(it, -10); &lt;span class='com'&gt;// UB&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
что за фигня? Там же внутри итератора простое число хранится. Почему не разрешить обратный проход?&lt;br /&gt;
Или может кто знает, как сделать с минимумом телодвижений двунаправленный. Идея в том, чтобы заработал такой код&lt;br /&gt;
&lt;br /&gt;
&lt;pre class='c'&gt;&lt;code&gt;&lt;span class='kw'&gt;const auto&lt;/span&gt; testFps = [](&lt;span class='kw'&gt;int&lt;/span&gt; fps) { &lt;span class='kw'&gt;return&lt;/span&gt; fps &amp;lt; 15; };
&lt;span class='kw'&gt;auto&lt;/span&gt; it = std::ranges::lower_bound(fpsRange, &lt;span class='kw'&gt;true&lt;/span&gt;, std::ranges::less{}, [&amp;amp;](&lt;span class='kw'&gt;int&lt;/span&gt; fps){ &lt;span class='kw'&gt;return&lt;/span&gt; !testFps(fps); });&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
Сейчас он уверенно виснет.&lt;/div&gt;
				
		</description>
		
		<category>cpp</category>
		<pubDate>Thu, 19 Mar 2026 15:35:31 GMT</pubDate>
		
			<author>sergii.p &lt;forum@rsdn.org&gt;</author>
		
		
			<slash:comments>10</slash:comments>
		
	</item>

	<item>
		<title>Операции сравнения</title>
		<link>http://rsdn.org/Forum/cpp/9060191.1</link>
		<guid isPermaLink="true">http://rsdn.org/Forum/cpp/9060191</guid>
		<comments>http://rsdn.org/Forum/cpp/9060191</comments>
		<wfw:comment>http://rsdn.org/Forum/PostRssComment.aspx?mid=9060191</wfw:comment>
		<wfw:commentRss>http://rsdn.org/Forum/RSS/9060191</wfw:commentRss>
		<trackback:ping>http://rsdn.org/Forum/Trackback.aspx?mid=9060191</trackback:ping>
		<description>
			
					&lt;div style="@import url(http://rsdn.org/Forum/Forum.css);"&gt;Вот завели в С++20 операцию трехстороннего сравнения. &lt;br /&gt;
Компилятор при ее реализации в классе генерит на ее основе правильные логические выражения с обычными операция сравнения. &lt;br /&gt;
&lt;br /&gt;
А если трехстороннее сравнение не определено в классе, чего тогда делается ?&lt;br /&gt;
Понятно, что равенство и неравенство можно сгенерить (но и тут есть нюансы). &lt;br /&gt;
А операция МЕНЬШЕ &amp;mdash; генерится ?&lt;br /&gt;
И какой из трех вариантов порядка соблюдается ?&lt;/div&gt;
				
		</description>
		
		<category>cpp</category>
		<pubDate>Thu, 26 Feb 2026 08:47:46 GMT</pubDate>
		
			<author>LaptevVV &lt;forum@rsdn.org&gt;</author>
		
		
			<slash:comments>8</slash:comments>
		
	</item>

	<item>
		<title>Уроки по написанию компилятора на C++</title>
		<link>http://rsdn.org/Forum/cpp/9059612.1</link>
		<guid isPermaLink="true">http://rsdn.org/Forum/cpp/9059612</guid>
		<comments>http://rsdn.org/Forum/cpp/9059612</comments>
		<wfw:comment>http://rsdn.org/Forum/PostRssComment.aspx?mid=9059612</wfw:comment>
		<wfw:commentRss>http://rsdn.org/Forum/RSS/9059612</wfw:commentRss>
		<trackback:ping>http://rsdn.org/Forum/Trackback.aspx?mid=9059612</trackback:ping>
		<description>
			
					&lt;div style="@import url(http://rsdn.org/Forum/Forum.css);"&gt;Шесть часов видео для интересующихся основами создания компиляторов.&lt;br /&gt;
&lt;br /&gt;
Юрий Минаев, архитектор компании PVS-Studio, записал 10 практических видеоуроков по написанию компилятора на языке С++. Это компилятор для выдуманного языка, который, впрочем, сильно смахивает на C.&lt;br /&gt;
&lt;br /&gt;
Бесплатные уроки: &lt;a class="m" href="https://pvs-studio.ru/ru/blog/training/courses/davajte-sozdadim-yazyk-programmirovaniya/" target="_blank"&gt;Давайте создадим язык программирования&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
Составить впечатление о том, что вас ждёт, поможет эта &lt;a class="m" href="https://vkvideo.ru/video-11805870_456239700" target="_blank"&gt;видеонарезка&lt;/a&gt;.&lt;/div&gt;
				
		</description>
		
		<category>cpp</category>
		<pubDate>Tue, 24 Feb 2026 10:54:56 GMT</pubDate>
		
			<author>Analytic2007 &lt;forum@rsdn.org&gt;</author>
		
		
			<slash:comments>4</slash:comments>
		
	</item>

	<item>
		<title>так компайл тайм рефлекшину быть 26-й стандарт ??</title>
		<link>http://rsdn.org/Forum/cpp/9054555.1</link>
		<guid isPermaLink="true">http://rsdn.org/Forum/cpp/9054555</guid>
		<comments>http://rsdn.org/Forum/cpp/9054555</comments>
		<wfw:comment>http://rsdn.org/Forum/PostRssComment.aspx?mid=9054555</wfw:comment>
		<wfw:commentRss>http://rsdn.org/Forum/RSS/9054555</wfw:commentRss>
		<trackback:ping>http://rsdn.org/Forum/Trackback.aspx?mid=9054555</trackback:ping>
		<description>
			
					&lt;div style="@import url(http://rsdn.org/Forum/Forum.css);"&gt;прогнозы? к какому году, к примеру у мелгкомякгких появится..&lt;/div&gt;
				
		</description>
		
		<category>cpp</category>
		<pubDate>Mon, 09 Feb 2026 03:55:59 GMT</pubDate>
		
			<author>ботаныч &lt;forum@rsdn.org&gt;</author>
		
		
			<slash:comments>29</slash:comments>
		
	</item>

	<item>
		<title>Какие методы логирования из С либы знаете?</title>
		<link>http://rsdn.org/Forum/cpp/9041431.1</link>
		<guid isPermaLink="true">http://rsdn.org/Forum/cpp/9041431</guid>
		<comments>http://rsdn.org/Forum/cpp/9041431</comments>
		<wfw:comment>http://rsdn.org/Forum/PostRssComment.aspx?mid=9041431</wfw:comment>
		<wfw:commentRss>http://rsdn.org/Forum/RSS/9041431</wfw:commentRss>
		<trackback:ping>http://rsdn.org/Forum/Trackback.aspx?mid=9041431</trackback:ping>
		<description>
			
					&lt;div style="@import url(http://rsdn.org/Forum/Forum.css);"&gt;Есть С API либа (без классов), которая должна подключаться вообще ко всему, то есть к С# прогам, к свифтным прогамина иос, к андроидным прогам, ну и разумеется винда, линукс, мак. &lt;br /&gt;
Мне надо изнутри либы в кидать оповещения о происходящем в виде строк с описанием. Не просто коды ошибок. Функции сложные и длинные, иногда несколько-поточные. &lt;br /&gt;
&lt;br /&gt;
Как лучше сделать?&lt;br /&gt;
&lt;br /&gt;
Первое что приходит в голову коллбек &amp;mdash; функция со строкой в аргументе. Приложение дает такую функцию и либа ее тянет. &lt;br /&gt;
Второе &amp;mdash; кидать в файл, но этот кажется кривым. Не хочу через файл. &lt;br /&gt;
Как еще можно? Нужно кросс-платформенно и между-языково&lt;/div&gt;
				
		</description>
		
		<category>cpp</category>
		<pubDate>Thu, 08 Jan 2026 06:23:58 GMT</pubDate>
		
			<author>Hоmunculus &lt;forum@rsdn.org&gt;</author>
		
		
			<slash:comments>12</slash:comments>
		
	</item>

	<item>
		<title>Полухин - что там с С++26</title>
		<link>http://rsdn.org/Forum/cpp/9033766.1</link>
		<guid isPermaLink="true">http://rsdn.org/Forum/cpp/9033766</guid>
		<comments>http://rsdn.org/Forum/cpp/9033766</comments>
		<wfw:comment>http://rsdn.org/Forum/PostRssComment.aspx?mid=9033766</wfw:comment>
		<wfw:commentRss>http://rsdn.org/Forum/RSS/9033766</wfw:commentRss>
		<trackback:ping>http://rsdn.org/Forum/Trackback.aspx?mid=9033766</trackback:ping>
		<description>
			
					&lt;div style="@import url(http://rsdn.org/Forum/Forum.css);"&gt;Полухин рассказывал о прогрессе с С++26&lt;br /&gt;
правда 1/3 видео звук хреновый&lt;br /&gt;
потом нормальный&lt;br /&gt;
может исправили и перезалили, не проверял, я смотрел до этого онлайн&lt;br /&gt;
&lt;br /&gt;
собственно на что меня задело&lt;br /&gt;
это на вопрос &amp;mdash; почему комитет не сделает форматирование аргументов в С++26 как это сделано в расте или питоне&lt;br /&gt;
ответ Антона &amp;mdash; что то типа, разработчики компиляторов протестуют/бунтуют, короче не хотят, для них это якобы сложно&lt;br /&gt;
&lt;br /&gt;
&lt;a class="lite" href="https://www.youtube.com/watch?v=38WcYF3ubXE" id="38WcYF3ubXE" style="width:640px;height:360px;" target="_blank"&gt;https://www.youtube.com/watch?v=38WcYF3ubXE&lt;/a&gt;&lt;/div&gt;
				
		</description>
		
		<category>cpp</category>
		<pubDate>Wed, 17 Dec 2025 23:07:51 GMT</pubDate>
		
			<author>Великий Мессия &lt;forum@rsdn.org&gt;</author>
		
		
			<slash:comments>47</slash:comments>
		
	</item>

	<item>
		<title>Асинхронщина</title>
		<link>http://rsdn.org/Forum/cpp/9027202.1</link>
		<guid isPermaLink="true">http://rsdn.org/Forum/cpp/9027202</guid>
		<comments>http://rsdn.org/Forum/cpp/9027202</comments>
		<wfw:comment>http://rsdn.org/Forum/PostRssComment.aspx?mid=9027202</wfw:comment>
		<wfw:commentRss>http://rsdn.org/Forum/RSS/9027202</wfw:commentRss>
		<trackback:ping>http://rsdn.org/Forum/Trackback.aspx?mid=9027202</trackback:ping>
		<description>
			
					&lt;div style="@import url(http://rsdn.org/Forum/Forum.css);"&gt;В последнее время рабочие задачи стали сильно мигрировать, условно, с CPU-bound на IO-bound. Приходится миксовать логику и различные сетевые запросы и их ожидания. И чем навороченнее микс, тем больше приходит понимание, что синхронный подход тут начинает буксовать, код становится трудно поддерживать и менять бизнес логику всего этого. Тут вот подумалось, может быть спросить коллег, кто как подходит к IO-bound задачам, где CPU, будем считать для простоты, почти не используется и в основном приходится ждать завершение операций.&lt;br /&gt;
&lt;br /&gt;
Что в идеале хочется получить:&lt;br /&gt;
&lt;br /&gt;
&lt;pre class='c'&gt;&lt;code&gt;data = await read(...);
await write(data);&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
Понятно, что скорее всего должен быть некий механизм, который следит за завершенными операциями и продолжает выполнение с точки ожидания.&lt;br /&gt;
Как такое можно организовать проще всего? Обязательно нужно кроссплатформенное решение, без погружения в дебри с ассемблером, регистрами и т.л.&lt;br /&gt;
&lt;br /&gt;
Первое что приходит на ум С++20 c безстековыми корутинами. Но это С++20, а я пока на С++17 плотно сижу.&lt;br /&gt;
Можно ли еще как-то в С++17 организовать такой код, можно с колбеками/скрытими колбеками, может быть разбивать код в ручном режиме, но что бы он был более-менее понятен и можно было протаскивать объемный контекст между этой машиной состояний?&lt;br /&gt;
&lt;br /&gt;
Большая просьба по возможности воздержаться от тыканья в готовые библиотеки, в плане бери вот это, там всё уже есть и не думай. Хочется понять основные идеи и подходы, а не максимально быстро начать писать код в продакшене.&lt;br /&gt;
&lt;br /&gt;
Если читаемый подход возможен только в С++20, то придется конечно дрейфовать туда, ничего не поделаешь. &lt;img border='0' width='15' height='15' src='//rsdn.org/Forum/images/frown.gif' /&gt;&lt;/div&gt;
				
		</description>
		
		<category>cpp</category>
		<pubDate>Fri, 05 Dec 2025 21:32:04 GMT</pubDate>
		
			<author>Videoman &lt;forum@rsdn.org&gt;</author>
		
		
			<slash:comments>45</slash:comments>
		
	</item>

	<item>
		<title>std::variant для вложенного класса</title>
		<link>http://rsdn.org/Forum/cpp/9026351.1</link>
		<guid isPermaLink="true">http://rsdn.org/Forum/cpp/9026351</guid>
		<comments>http://rsdn.org/Forum/cpp/9026351</comments>
		<wfw:comment>http://rsdn.org/Forum/PostRssComment.aspx?mid=9026351</wfw:comment>
		<wfw:commentRss>http://rsdn.org/Forum/RSS/9026351</wfw:commentRss>
		<trackback:ping>http://rsdn.org/Forum/Trackback.aspx?mid=9026351</trackback:ping>
		<description>
			
					&lt;div style="@import url(http://rsdn.org/Forum/Forum.css);"&gt;Почему некоторые компиляторы это отказываются компилировать ?&lt;br /&gt;
&lt;pre class='c'&gt;&lt;code&gt;&lt;span class='kw'&gt;#include&lt;/span&gt; &amp;lt;variant&amp;gt;

&lt;span class='kw'&gt;struct&lt;/span&gt; D
{
    &lt;span class='kw'&gt;struct&lt;/span&gt; FService
    {
        &lt;span class='kw'&gt;int&lt;/span&gt;  nFService_ = 0;
    };

    std::variant&amp;lt;FService&amp;gt; data_;
};

&lt;span class='kw'&gt;int&lt;/span&gt; main() 
{
D d;
&lt;span class='kw'&gt;return&lt;/span&gt; 0;
}&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a class="m" href="https://godbolt.org/z/MPK6Gq9Tz" target="_blank"&gt;здесь&lt;/a&gt;&lt;/div&gt;
				
		</description>
		
		<category>cpp</category>
		<pubDate>Wed, 03 Dec 2025 20:05:13 GMT</pubDate>
		
			<author>B0FEE664 &lt;forum@rsdn.org&gt;</author>
		
		
			<slash:comments>28</slash:comments>
		
	</item>

	<item>
		<title>GTest does not officially support dynamic loading</title>
		<link>http://rsdn.org/Forum/cpp/9024544.1</link>
		<guid isPermaLink="true">http://rsdn.org/Forum/cpp/9024544</guid>
		<comments>http://rsdn.org/Forum/cpp/9024544</comments>
		<wfw:comment>http://rsdn.org/Forum/PostRssComment.aspx?mid=9024544</wfw:comment>
		<wfw:commentRss>http://rsdn.org/Forum/RSS/9024544</wfw:commentRss>
		<trackback:ping>http://rsdn.org/Forum/Trackback.aspx?mid=9024544</trackback:ping>
		<description>
			
					&lt;div style="@import url(http://rsdn.org/Forum/Forum.css);"&gt;&lt;blockquote class='q'&gt;&lt;p&gt;Google Test (GTest)&lt;br /&gt;
does not officially support dynamic loading of tests within shared libraries (DLLs) using functions like LoadLibrary(). The problem arises because GTest uses static variables to register tests when the library is loaded, and attempting to unload and reload libraries or running the cleanup code after a library has been unloaded can cause a crash.&lt;/p&gt;&lt;/blockquote&gt;
&lt;br /&gt;
при написании тестов столкнулся с тем что при использовании GTest при вызове LoadLibrary возникает exception&lt;br /&gt;
&lt;br /&gt;
подскажите пожалуйстта реально ли обойти эту проблемму&lt;/div&gt;
				
		</description>
		
		<category>cpp</category>
		<pubDate>Sat, 29 Nov 2025 02:22:07 GMT</pubDate>
		
			<author>sergey2b &lt;forum@rsdn.org&gt;</author>
		
		
			<slash:comments>1</slash:comments>
		
	</item>

	<item>
		<title>cmake 4.2.0 +cpp modules / import std fix</title>
		<link>http://rsdn.org/Forum/cpp/9021254.1</link>
		<guid isPermaLink="true">http://rsdn.org/Forum/cpp/9021254</guid>
		<comments>http://rsdn.org/Forum/cpp/9021254</comments>
		<wfw:comment>http://rsdn.org/Forum/PostRssComment.aspx?mid=9021254</wfw:comment>
		<wfw:commentRss>http://rsdn.org/Forum/RSS/9021254</wfw:commentRss>
		<trackback:ping>http://rsdn.org/Forum/Trackback.aspx?mid=9021254</trackback:ping>
		<description>
			
					&lt;div style="@import url(http://rsdn.org/Forum/Forum.css);"&gt;вышла новая версия cmake 4.2.0&lt;br /&gt;
&lt;a class="m" href="https://discourse.cmake.org/t/cmake-4-2-0-available-for-download/15333" target="_blank"&gt;https://discourse.cmake.org/t/cmake-4-2-0-available-for-download/15333&lt;/a&gt;&lt;br /&gt;
с исправлением для модулей что бы можно было использовать &lt;br /&gt;
import std;&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote class='q'&gt;&lt;p&gt;The “CMAKE_CXX_STDLIB_MODULES_JSON” variable was added to set the&lt;br /&gt;
path to the “import std” metadata file for the standard library&lt;br /&gt;
rather than using the compiler to discover its location.&lt;/p&gt;&lt;/blockquote&gt;
&lt;br /&gt;
проблема была в том что зоопарк линукс пакетов&lt;br /&gt;
собирали gcc по разному&lt;br /&gt;
и файл метаданных необходимый для подключения import std&lt;br /&gt;
был в разных локациях линукс фс&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;s&gt;так же проблемы была при использовании&lt;br /&gt;
clang под виндовс с msvc stl&lt;br /&gt;
поскольку для clang была поддержка только кланговского stl&lt;br /&gt;
и он не находил файл метаданных с msvc stl&lt;br /&gt;
&lt;/s&gt;&lt;br /&gt;
проверил, это не пофиксили&lt;br /&gt;
upd &lt;br /&gt;
оказывается проблема более глобальная&lt;br /&gt;
у каждого компиля свой формат json метаданных&lt;br /&gt;
и если clang/gcc еще кое как сходятся&lt;br /&gt;
то у msvc свой&lt;br /&gt;
поэтому cmake разрабы играются со своим парсером и пытаются стандартизировать формат метаданных&lt;br /&gt;
&lt;a class="m" href="https://gitlab.kitware.com/cmake/cmake/-/merge_requests/11422" target="_blank"&gt;https://gitlab.kitware.com/cmake/cmake/-/merge_requests/11422&lt;/a&gt;&lt;br /&gt;
&lt;a class="github m" href="https://github.com/ecostd/rfcs/pull/3" target="_blank"&gt;https://github.com/ecostd/rfcs/pull/3&lt;/a&gt;&lt;br /&gt;
upd2&lt;br /&gt;
пофиксил для cmake 4.2.0 что бы работал clang под виндовс c import std;&lt;br /&gt;
&lt;img border='0' width='26' height='28' src='//rsdn.org/Forum/images/super.gif' /&gt;&lt;br /&gt;
&lt;br /&gt;
следующая версия cmake 4.3.0 зарелизится не ранее февраля 2026&lt;/div&gt;
				
		</description>
		
		<category>cpp</category>
		<pubDate>Thu, 20 Nov 2025 21:50:41 GMT</pubDate>
		
			<author>Великий Мессия &lt;forum@rsdn.org&gt;</author>
		
		
			<slash:comments>21</slash:comments>
		
	</item>
</channel>
</rss>
