<?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.applied/</link>
    <description>Прикладные библиотеки и компоненты для C или C++ и тому подобные вопросы.</description>
    <category>cpp</category>
    <category>applied</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>Mon, 09 Mar 2026 21:17:34 GMT</lastBuildDate>
    <ttl>5</ttl>
	<item>
		<title>Все боги С++ 80-го уровня, пока не начнут писать CMake</title>
		<link>http://rsdn.org/Forum/cpp.applied/9059123.1</link>
		<guid isPermaLink="true">http://rsdn.org/Forum/cpp.applied/9059123</guid>
		<comments>http://rsdn.org/Forum/cpp.applied/9059123</comments>
		<wfw:comment>http://rsdn.org/Forum/PostRssComment.aspx?mid=9059123</wfw:comment>
		<wfw:commentRss>http://rsdn.org/Forum/RSS/9059123</wfw:commentRss>
		<trackback:ping>http://rsdn.org/Forum/Trackback.aspx?mid=9059123</trackback:ping>
		<description>
			
					&lt;div style="@import url(http://rsdn.org/Forum/Forum.css);"&gt;До недавних пор не сталкивался серьёзно с CMake. Собирал, конфигурировал &amp;mdash; да, но сам почти не писал. И тем более &amp;mdash; сложных проектов с нетривиальной сборкой зависимостей. Посмотрел с десяток крупных проектов, таких как ROS, VTK, LLVM, Eigen и так далее, везде какой-то ад и израиль в коде: snake_case, sausage-case и CamelCase в одном файле, разбиение на модули от балды, переопределение стандартных функций и макросов, чтобы сэкономить пару строчек, трёхэтажные if-ы. И всё равно всё ломается. Например, есть опциональная зависимость &lt;i&gt;A&lt;/i&gt;, она зависит &lt;i&gt;B&lt;/i&gt;, но отключить можно только &lt;i&gt;А&lt;/i&gt;. Отключаешь А через &lt;tt&gt;-DENABLE_FEATURE=OFF&lt;/tt&gt;, в каком-то месте нет проверки, что B тоже должна быть отключена, и сборка ломается. Получается, что на собеседовании по С++ могут выдрочить за неправильное название переменной, но когда те же люди пишут конфигурацию сборки, то они резко тупеют и превращаются во вчерашних школьников? &lt;img border='0' width='15' height='22' src='//rsdn.org/Forum/images/confused.gif' /&gt;&lt;br /&gt;
&lt;br /&gt;
P.S. Единственный проект, который выделяется на фоне всех остальных, это Qt. По нему действительно можно ориентироваться в плане написание конфигураций сборки. Видать за 6 версий разработчики намучились и таки сделали всё по уму &lt;img border='0' width='15' height='15' src='//rsdn.org/Forum/images/biggrin.gif' /&gt;&lt;/div&gt;
				
		</description>
		
		<category>cpp</category><category>applied</category>
		<pubDate>Sun, 22 Feb 2026 23:43:27 GMT</pubDate>
		
			<author>cppguard &lt;forum@rsdn.org&gt;</author>
		
		
			<slash:comments>9</slash:comments>
		
	</item>

	<item>
		<title>Можно как-то автоматически найти границы енума?</title>
		<link>http://rsdn.org/Forum/cpp.applied/9053434.1</link>
		<guid isPermaLink="true">http://rsdn.org/Forum/cpp.applied/9053434</guid>
		<comments>http://rsdn.org/Forum/cpp.applied/9053434</comments>
		<wfw:comment>http://rsdn.org/Forum/PostRssComment.aspx?mid=9053434</wfw:comment>
		<wfw:commentRss>http://rsdn.org/Forum/RSS/9053434</wfw:commentRss>
		<trackback:ping>http://rsdn.org/Forum/Trackback.aspx?mid=9053434</trackback:ping>
		<description>
			
					&lt;div style="@import url(http://rsdn.org/Forum/Forum.css);"&gt;Ясно, что обычно начинается с нуля и есть именованный последний типа MY_ENUM_LAST. &lt;br /&gt;
И можно в цикле от нуля до последнего пройтись по всем. &lt;br /&gt;
&lt;br /&gt;
Но пусть таких условий нет. Тот есть начинаться может не с нуля и последнего именованного нет. &lt;br /&gt;
Как определить границы в этом случае?&lt;/div&gt;
				
		</description>
		
		<category>cpp</category><category>applied</category>
		<pubDate>Thu, 05 Feb 2026 18:44:09 GMT</pubDate>
		
			<author>Hоmunculus &lt;forum@rsdn.org&gt;</author>
		
		
			<slash:comments>11</slash:comments>
		
	</item>

	<item>
		<title>CMake+VCPKG</title>
		<link>http://rsdn.org/Forum/cpp.applied/9050818.1</link>
		<guid isPermaLink="true">http://rsdn.org/Forum/cpp.applied/9050818</guid>
		<comments>http://rsdn.org/Forum/cpp.applied/9050818</comments>
		<wfw:comment>http://rsdn.org/Forum/PostRssComment.aspx?mid=9050818</wfw:comment>
		<wfw:commentRss>http://rsdn.org/Forum/RSS/9050818</wfw:commentRss>
		<trackback:ping>http://rsdn.org/Forum/Trackback.aspx?mid=9050818</trackback:ping>
		<description>
			
					&lt;div style="@import url(http://rsdn.org/Forum/Forum.css);"&gt;Здравствуйте!&lt;br /&gt;
&lt;br /&gt;
Кто их вместе использует? Пользуете стандартным способом?&lt;br /&gt;
&lt;br /&gt;
Это ж надо самому указывать тулчейн-файл vcpkg.cmake (перед этим найдя его в батнике или .sh), задавать triplet, потом, если есть ещё какой-то тулчейн файл, то делать цепочку.&lt;br /&gt;
&lt;br /&gt;
Как-то много возни.&lt;br /&gt;
&lt;br /&gt;
Я хочу так: просто включаешь в свой проект какой-то свой .cmake/vcpkg.cmake, он сам всё определяет, какой хост, какой таргет, формирует triplet, находит, где лежит VCPKG-шный vcpkg.cmake, и подключает его.&lt;br /&gt;
&lt;br /&gt;
Никто так не делал? &lt;br /&gt;
&lt;br /&gt;
Есть подводные камни? &lt;br /&gt;
&lt;br /&gt;
Когда подключать такой свой детектор? &lt;br /&gt;
&lt;br /&gt;
Тулчайн файлы отрабатывают обычно до директивы project, но делать какие-то подключения своих файлов до project как-то не очень красиво. Могут быть проблемы, если я свой детектор VCPKG буду после project подключать?&lt;/div&gt;
				
		</description>
		
		<category>cpp</category><category>applied</category>
		<pubDate>Sat, 31 Jan 2026 16:35:55 GMT</pubDate>
		
			<author>Marty &lt;forum@rsdn.org&gt;</author>
		
		
			<slash:comments>3</slash:comments>
		
	</item>

	<item>
		<title>Однопоточный типа мьютекс</title>
		<link>http://rsdn.org/Forum/cpp.applied/9048614.1</link>
		<guid isPermaLink="true">http://rsdn.org/Forum/cpp.applied/9048614</guid>
		<comments>http://rsdn.org/Forum/cpp.applied/9048614</comments>
		<wfw:comment>http://rsdn.org/Forum/PostRssComment.aspx?mid=9048614</wfw:comment>
		<wfw:commentRss>http://rsdn.org/Forum/RSS/9048614</wfw:commentRss>
		<trackback:ping>http://rsdn.org/Forum/Trackback.aspx?mid=9048614</trackback:ping>
		<description>
			
					&lt;div style="@import url(http://rsdn.org/Forum/Forum.css);"&gt;Есть однопоточная программа. &lt;br /&gt;
Есть два контрола, полностью друг друга дублирующие. Не спрашивайте зачем. Так надо. Изменения в первом тут же отоьражаются на втором и наоборот. &lt;br /&gt;
Естественно уходим в зацикливание. &lt;br /&gt;
Да, булевский флаг вопрос решает. Типа в одном оботабоьчике поднимаем, во втором проверяем и выходим. Типа мьютекса. Но как-то это допотопно. Есть красивые современные решения?&lt;/div&gt;
				
		</description>
		
		<category>cpp</category><category>applied</category>
		<pubDate>Fri, 23 Jan 2026 12:29:47 GMT</pubDate>
		
			<author>Hоmunculus &lt;forum@rsdn.org&gt;</author>
		
		
			<slash:comments>17</slash:comments>
		
	</item>

	<item>
		<title>conan, npm, vcpkg?</title>
		<link>http://rsdn.org/Forum/cpp.applied/9046397.1</link>
		<guid isPermaLink="true">http://rsdn.org/Forum/cpp.applied/9046397</guid>
		<comments>http://rsdn.org/Forum/cpp.applied/9046397</comments>
		<wfw:comment>http://rsdn.org/Forum/PostRssComment.aspx?mid=9046397</wfw:comment>
		<wfw:commentRss>http://rsdn.org/Forum/RSS/9046397</wfw:commentRss>
		<trackback:ping>http://rsdn.org/Forum/Trackback.aspx?mid=9046397</trackback:ping>
		<description>
			
					&lt;div style="@import url(http://rsdn.org/Forum/Forum.css);"&gt;Здравствуйте!&lt;br /&gt;
&lt;br /&gt;
Кто что использует? Где какие плюсы, где какие минусы? Кто-нибудь пробовал несколько вариантов, может сравнить?&lt;br /&gt;
&lt;br /&gt;
VCPKG мне понравился тем, что сам на плюсах написан, и вроде не сильно сложно. Если что, можно глянуть в сорцы, написанные на том же языке, на котором и работаю, не надо никакие питоны и тайпскрипты изучать&lt;/div&gt;
				
		</description>
		
		<category>cpp</category><category>applied</category>
		<pubDate>Thu, 15 Jan 2026 18:09:17 GMT</pubDate>
		
			<author>Marty &lt;forum@rsdn.org&gt;</author>
		
		
			<slash:comments>6</slash:comments>
		
	</item>

	<item>
		<title>Как покрасивше без “if”?</title>
		<link>http://rsdn.org/Forum/cpp.applied/9044038.1</link>
		<guid isPermaLink="true">http://rsdn.org/Forum/cpp.applied/9044038</guid>
		<comments>http://rsdn.org/Forum/cpp.applied/9044038</comments>
		<wfw:comment>http://rsdn.org/Forum/PostRssComment.aspx?mid=9044038</wfw:comment>
		<wfw:commentRss>http://rsdn.org/Forum/RSS/9044038</wfw:commentRss>
		<trackback:ping>http://rsdn.org/Forum/Trackback.aspx?mid=9044038</trackback:ping>
		<description>
			
					&lt;div style="@import url(http://rsdn.org/Forum/Forum.css);"&gt;Есть базовый класс A. Есть наследник В. И есть наследник наследника С. &lt;br /&gt;
Есть некая структура данный. Она парсится из файла. &lt;br /&gt;
Если в этой структуре все поля после парсинга заполнились &amp;mdash; то на основе этой структуры создается класс С. &lt;br /&gt;
Если каких-то полей нет, но чуть больше чем совсем минимум &amp;mdash; то создается класс В&lt;br /&gt;
А если совсем только базовый минимум полей заполнились из файла, то создается объекта класса А. &lt;br /&gt;
&lt;br /&gt;
Ясно, что тупым «if» проверяя поля структуры можно проверять какой именно класс создавать. Но что-то некрасиво как-то. Можно как-то стильно модно молодежно, С++-но и по последним стандартам с сотней шаблонов и SFINAE разрулить создание нужного класса на основе прочитанной структуры?&lt;/div&gt;
				
		</description>
		
		<category>cpp</category><category>applied</category>
		<pubDate>Wed, 14 Jan 2026 12:27:11 GMT</pubDate>
		
			<author>Hоmunculus &lt;forum@rsdn.org&gt;</author>
		
		
			<slash:comments>22</slash:comments>
		
	</item>

	<item>
		<title>scope_exit кто-нить юзал ?</title>
		<link>http://rsdn.org/Forum/cpp.applied/9043875.1</link>
		<guid isPermaLink="true">http://rsdn.org/Forum/cpp.applied/9043875</guid>
		<comments>http://rsdn.org/Forum/cpp.applied/9043875</comments>
		<wfw:comment>http://rsdn.org/Forum/PostRssComment.aspx?mid=9043875</wfw:comment>
		<wfw:commentRss>http://rsdn.org/Forum/RSS/9043875</wfw:commentRss>
		<trackback:ping>http://rsdn.org/Forum/Trackback.aspx?mid=9043875</trackback:ping>
		<description>
			
					&lt;div style="@import url(http://rsdn.org/Forum/Forum.css);"&gt;В Go есть defer-функции &amp;mdash; просто супер-необходимая штука. &lt;br /&gt;
Говорят, что и в D тоже есть аналогичное, но я не смотрел. &lt;br /&gt;
Работает при выходе из блока, хотя определить можно в любом месте блока. &lt;br /&gt;
И вот сегодня наткнулся на scope_exit в С++.&lt;br /&gt;
Однако пишут, что experimental пока &lt;br /&gt;
Хотя в boost есть. &lt;br /&gt;
&lt;br /&gt;
Кто-нить уже юзал ?&lt;/div&gt;
				
		</description>
		
		<category>cpp</category><category>applied</category>
		<pubDate>Wed, 14 Jan 2026 04:42:01 GMT</pubDate>
		
			<author>LaptevVV &lt;forum@rsdn.org&gt;</author>
		
		
			<slash:comments>13</slash:comments>
		
	</item>

	<item>
		<title>Использовать либы собранные другой версией GCC</title>
		<link>http://rsdn.org/Forum/cpp.applied/9043758.1</link>
		<guid isPermaLink="true">http://rsdn.org/Forum/cpp.applied/9043758</guid>
		<comments>http://rsdn.org/Forum/cpp.applied/9043758</comments>
		<wfw:comment>http://rsdn.org/Forum/PostRssComment.aspx?mid=9043758</wfw:comment>
		<wfw:commentRss>http://rsdn.org/Forum/RSS/9043758</wfw:commentRss>
		<trackback:ping>http://rsdn.org/Forum/Trackback.aspx?mid=9043758</trackback:ping>
		<description>
			
					&lt;div style="@import url(http://rsdn.org/Forum/Forum.css);"&gt;Здравствуйте!&lt;br /&gt;
&lt;br /&gt;
Либа собирается только новым GCC &amp;mdash; причина не в стандарте языка, либа на 17ых, банально GCC/asm выдаёт ошибку что-то типа слишком большой объектник у тебя. Рецепты всякие про bigobj, включить -Os/-O2, -g1/-g0 не помогали.&lt;br /&gt;
&lt;br /&gt;
Помог переезд с 13.2 на 15.2, там такой проблемы уже нет.&lt;br /&gt;
&lt;br /&gt;
Но. Хочу использовать её в проектах, которые собираю GCC 7/8 (Qt 5.X). Она ими вообще не собирается, там даже не bigobj, но это я обнаружил на каких-то внутренних хидерах, есть вероятность, что они не понадобятся, если либа будет предварительно собрана.&lt;br /&gt;
&lt;br /&gt;
В принципе, хотя и лень, можно попробовать переползти на Qt 6.X, но там используется GCC 13.1. Хотя разница в версиях GCC поменьше, чем c Qt5, но всё равно, на два мажорных номера отличается.&lt;br /&gt;
&lt;br /&gt;
Кто-нибудь подобным занимался?&lt;/div&gt;
				
		</description>
		
		<category>cpp</category><category>applied</category>
		<pubDate>Tue, 13 Jan 2026 18:45:40 GMT</pubDate>
		
			<author>Marty &lt;forum@rsdn.org&gt;</author>
		
		
			<slash:comments>4</slash:comments>
		
	</item>

	<item>
		<title>Re[2]: как вы готовите GRPC?</title>
		<link>http://rsdn.org/Forum/cpp.applied/9043751.1</link>
		<guid isPermaLink="true">http://rsdn.org/Forum/cpp.applied/9043751</guid>
		<comments>http://rsdn.org/Forum/cpp.applied/9043751</comments>
		<wfw:comment>http://rsdn.org/Forum/PostRssComment.aspx?mid=9043751</wfw:comment>
		<wfw:commentRss>http://rsdn.org/Forum/RSS/9043751</wfw:commentRss>
		<trackback:ping>http://rsdn.org/Forum/Trackback.aspx?mid=9043751</trackback:ping>
		<description>
			
					&lt;div style="@import url(http://rsdn.org/Forum/Forum.css);"&gt;Здравствуйте!&lt;br /&gt;
&lt;br /&gt;
Понадобилось GRPC заюзать &amp;mdash; пока подключил как сабмодуль.&lt;br /&gt;
&lt;br /&gt;
Минусы такие &amp;mdash; он очень жирный, чуть ли не полчаса выкачивается, и проект с ним собирается по часу. И чуть что тронешь в CMakeLists.txt &amp;mdash; он чуть ли не весь пересобирается с нуля.&lt;br /&gt;
&lt;br /&gt;
Из плюсов &amp;mdash; можно для проекта в VSCode любой CMake Kit выбрать, и собирать с ним, и под MSVC2019/MSVC2022/MSVC2026 в любой можно собрать без каких-либо проблем.&lt;br /&gt;
&lt;br /&gt;
Хотелось бы его один раз собрать под всё, и использовать в любой студии и с любым GCC.&lt;br /&gt;
&lt;br /&gt;
В описании GRPC ничего готового на эту тему нет. Никто хороших рецептиков не встречал? Или сам делал?&lt;/div&gt;
				
		</description>
		
		<category>cpp</category><category>applied</category>
		<pubDate>Tue, 13 Jan 2026 18:25:11 GMT</pubDate>
		
			<author>Marty &lt;forum@rsdn.org&gt;</author>
		
		
			<slash:comments>8</slash:comments>
		
	</item>

	<item>
		<title>Cow pages array</title>
		<link>http://rsdn.org/Forum/cpp.applied/9042803.1</link>
		<guid isPermaLink="true">http://rsdn.org/Forum/cpp.applied/9042803</guid>
		<comments>http://rsdn.org/Forum/cpp.applied/9042803</comments>
		<wfw:comment>http://rsdn.org/Forum/PostRssComment.aspx?mid=9042803</wfw:comment>
		<wfw:commentRss>http://rsdn.org/Forum/RSS/9042803</wfw:commentRss>
		<trackback:ping>http://rsdn.org/Forum/Trackback.aspx?mid=9042803</trackback:ping>
		<description>
			
					&lt;div style="@import url(http://rsdn.org/Forum/Forum.css);"&gt;Кто-нибудь встречал хорошую реализацию cow массива со страничным хранением данных?&lt;br /&gt;
То есть если мы копируем массив в другой массив, то у нас никакого копирования данных не происходит. И начтнается копирование только отдельных страниц, если мы что-то в них поменяли (не всего массива, а именно измененных страниц). &lt;br /&gt;
&lt;br /&gt;
Есть такое? Или свой велосипед городить?&lt;br /&gt;
&lt;br /&gt;
Типа такого&lt;br /&gt;
&lt;img border='0' src='http://files.rsdn.org/148796/fff.png' /&gt;&lt;/div&gt;
				
		</description>
		
		<category>cpp</category><category>applied</category>
		<pubDate>Sun, 11 Jan 2026 09:32:20 GMT</pubDate>
		
			<author>Hоmunculus &lt;forum@rsdn.org&gt;</author>
		
		
			<slash:comments>3</slash:comments>
		
	</item>

	<item>
		<title>Автоматическое использование test_n()</title>
		<link>http://rsdn.org/Forum/cpp.applied/9039264.1</link>
		<guid isPermaLink="true">http://rsdn.org/Forum/cpp.applied/9039264</guid>
		<comments>http://rsdn.org/Forum/cpp.applied/9039264</comments>
		<wfw:comment>http://rsdn.org/Forum/PostRssComment.aspx?mid=9039264</wfw:comment>
		<wfw:commentRss>http://rsdn.org/Forum/RSS/9039264</wfw:commentRss>
		<trackback:ping>http://rsdn.org/Forum/Trackback.aspx?mid=9039264</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;bool&lt;/span&gt; test_1() {…}
&lt;span class='kw'&gt;bool&lt;/span&gt; test_2() {…}
&lt;span class='kw'&gt;bool&lt;/span&gt; test_3() {…}
&lt;span class='kw'&gt;bool&lt;/span&gt; test_4() {…}

&lt;span class='kw'&gt;void&lt;/span&gt; main()
{
   test_1();
   test_2();
   test_3();
   test_4(); 
}&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
Хочу в main ничего не писать. То есть при написании test_5 чтоб ее запуск автоматически добавлялся в main&lt;br /&gt;
Как лучше такое провернуть?&lt;/div&gt;
				
		</description>
		
		<category>cpp</category><category>applied</category>
		<pubDate>Thu, 01 Jan 2026 22:15:23 GMT</pubDate>
		
			<author>Hоmunculus &lt;forum@rsdn.org&gt;</author>
		
		
			<slash:comments>8</slash:comments>
		
	</item>

	<item>
		<title>как вы готовите boost?</title>
		<link>http://rsdn.org/Forum/cpp.applied/9039192.1</link>
		<guid isPermaLink="true">http://rsdn.org/Forum/cpp.applied/9039192</guid>
		<comments>http://rsdn.org/Forum/cpp.applied/9039192</comments>
		<wfw:comment>http://rsdn.org/Forum/PostRssComment.aspx?mid=9039192</wfw:comment>
		<wfw:commentRss>http://rsdn.org/Forum/RSS/9039192</wfw:commentRss>
		<trackback:ping>http://rsdn.org/Forum/Trackback.aspx?mid=9039192</trackback:ping>
		<description>
			
					&lt;div style="@import url(http://rsdn.org/Forum/Forum.css);"&gt;Мне надо в проект подключить boost.&lt;br /&gt;
&lt;br /&gt;
И если с использованием через, например, c++20 modules всё более-менее понятно, то с организацией этого вопрос есть&lt;br /&gt;
&lt;br /&gt;
Варианты:&lt;br /&gt;
&lt;br /&gt;
1. Скачать версию буста и положить себе в репу&lt;br /&gt;
2. Сделать репу буста внешней зависимостью&lt;br /&gt;
3. Ставить boost через package management операционной системы сборки или ещё как-то, подключая в проект через, например, переменную окружения&lt;br /&gt;
4. Иное&lt;br /&gt;
&lt;br /&gt;
Если у вас на проекте вы используете Boost, то как вы его готовите?&lt;/div&gt;
				
		</description>
		
		<category>cpp</category><category>applied</category>
		<pubDate>Thu, 01 Jan 2026 14:41:31 GMT</pubDate>
		
			<author>Dair &lt;forum@rsdn.org&gt;</author>
		
		
			<slash:comments>5</slash:comments>
		
	</item>

	<item>
		<title>Cmake и MinGW windres</title>
		<link>http://rsdn.org/Forum/cpp.applied/9035443.1</link>
		<guid isPermaLink="true">http://rsdn.org/Forum/cpp.applied/9035443</guid>
		<comments>http://rsdn.org/Forum/cpp.applied/9035443</comments>
		<wfw:comment>http://rsdn.org/Forum/PostRssComment.aspx?mid=9035443</wfw:comment>
		<wfw:commentRss>http://rsdn.org/Forum/RSS/9035443</wfw:commentRss>
		<trackback:ping>http://rsdn.org/Forum/Trackback.aspx?mid=9035443</trackback:ping>
		<description>
			
					&lt;div style="@import url(http://rsdn.org/Forum/Forum.css);"&gt;Здравствуйте!&lt;br /&gt;
&lt;br /&gt;
В принципе, это конечно по инструментам разработки, но Cmake вроде только с плюсами и используется, да и MinGW тоже обычно, так что здесь больше шансов, имхо, найти ответ.&lt;br /&gt;
&lt;br /&gt;
Суть проблемы в следующем. Есть библиотека, которую я подключил как сабмодуль гита и подключаю в CMakeLists.txt через add_subdirectory. Она, в свою очередь, тащит сабмодули своих зависимостей. В одноё из этих сторонних зависимостей генерится conf.h, и в инклюды прописывается путь ${CMAKE_CURRENT_BINARY_DIR}/third_party/bla-bla-lib.&lt;br /&gt;
&lt;br /&gt;
Проблема в том, что у меня путь содержит пробелы. Windres CMake'ом вызывается корректно, все пути обрамлены в кавычки, а вот windres зовёт препроцессор cc1 и забывает закавычить пути инклюдов. Само собой, пути с пробелами бьются на части, такие каталоги не находятся, и сборка ломается.&lt;br /&gt;
&lt;br /&gt;
Вопрос: как решить эту проблему? Лезть в CMake конфиги сторонних библиотек очень не хочется, также очень не хочется менять пути, чтобы они были без пробелов. Кто-нибудь сталкивался с подобным? Как решить эту проблему?&lt;/div&gt;
				
		</description>
		
		<category>cpp</category><category>applied</category>
		<pubDate>Mon, 22 Dec 2025 18:36:15 GMT</pubDate>
		
			<author>Marty &lt;forum@rsdn.org&gt;</author>
		
		
			<slash:comments>8</slash:comments>
		
	</item>

	<item>
		<title>MSVC2022/2026 не видит макрос, вернее, пытается его как-то трактовать...</title>
		<link>http://rsdn.org/Forum/cpp.applied/9023981.1</link>
		<guid isPermaLink="true">http://rsdn.org/Forum/cpp.applied/9023981</guid>
		<comments>http://rsdn.org/Forum/cpp.applied/9023981</comments>
		<wfw:comment>http://rsdn.org/Forum/PostRssComment.aspx?mid=9023981</wfw:comment>
		<wfw:commentRss>http://rsdn.org/Forum/RSS/9023981</wfw:commentRss>
		<trackback:ping>http://rsdn.org/Forum/Trackback.aspx?mid=9023981</trackback:ping>
		<description>
			
					&lt;div style="@import url(http://rsdn.org/Forum/Forum.css);"&gt;Здраыствуйте!&lt;br /&gt;
&lt;br /&gt;
MSVC не видит макрос, причем у 2026 таких случаев сильно больше, но суть одна. Или даже похоже, что оно пытается до раскрытия макросов какие-то выводы делать.&lt;br /&gt;
Предыдущие студии нормально компилируют, GCC, вплоть до 15го, также нормально все компилирует.&lt;br /&gt;
&lt;br /&gt;
Вот прямо перед использованием проверяю его существование &amp;mdash; останавливается по ошибке "UMBA_RULE_OF_FIVE is defined before use". Отключаю проверку &amp;mdash; получаю "Function definition for 'UMBA_RULE_OF_FIVE' not found."&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;#if&lt;/span&gt; 0
&lt;span class='kw'&gt;#ifdef&lt;/span&gt; UMBA_RULE_OF_FIVE
    &lt;span class='kw'&gt;#error&lt;/span&gt; &lt;span class='str'&gt;"UMBA_RULE_OF_FIVE is defined before use"&lt;/span&gt;
&lt;span class='kw'&gt;#else
    #error&lt;/span&gt; &lt;span class='str'&gt;"UMBA_RULE_OF_FIVE is NOT defined before use"&lt;/span&gt;
&lt;span class='kw'&gt;#endif
#endif

struct&lt;/span&gt; ICommandLineOptionCollector
{
    UMBA_RULE_OF_FIVE(ICommandLineOptionCollector, &lt;span class='kw'&gt;default&lt;/span&gt;, &lt;span class='kw'&gt;default&lt;/span&gt;, &lt;span class='kw'&gt;default&lt;/span&gt;, &lt;span class='kw'&gt;default&lt;/span&gt;, &lt;span class='kw'&gt;default&lt;/span&gt;);

    &lt;span class='com'&gt;//...&lt;/span&gt;
};&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
				
		</description>
		
		<category>cpp</category><category>applied</category>
		<pubDate>Thu, 27 Nov 2025 19:58:51 GMT</pubDate>
		
			<author>Marty &lt;forum@rsdn.org&gt;</author>
		
		
			<slash:comments>10</slash:comments>
		
	</item>

	<item>
		<title>Lazy-calc и mutable</title>
		<link>http://rsdn.org/Forum/cpp.applied/9019318.1</link>
		<guid isPermaLink="true">http://rsdn.org/Forum/cpp.applied/9019318</guid>
		<comments>http://rsdn.org/Forum/cpp.applied/9019318</comments>
		<wfw:comment>http://rsdn.org/Forum/PostRssComment.aspx?mid=9019318</wfw:comment>
		<wfw:commentRss>http://rsdn.org/Forum/RSS/9019318</wfw:commentRss>
		<trackback:ping>http://rsdn.org/Forum/Trackback.aspx?mid=9019318</trackback:ping>
		<description>
			
					&lt;div style="@import url(http://rsdn.org/Forum/Forum.css);"&gt;Есть константная функция, которая что-то возвращает. Но, она возвращает лениво-вычесленные данные, то есть они вычисляются при первом обращении. Это нормально сделать эти данные mutable? Или кривой архитектурный шаг?&lt;/div&gt;
				
		</description>
		
		<category>cpp</category><category>applied</category>
		<pubDate>Mon, 17 Nov 2025 03:53:40 GMT</pubDate>
		
			<author>Hоmunculus &lt;forum@rsdn.org&gt;</author>
		
		
			<slash:comments>2</slash:comments>
		
	</item>

	<item>
		<title>Посоветуйте ORM для плюсиков</title>
		<link>http://rsdn.org/Forum/cpp.applied/9017168.1</link>
		<guid isPermaLink="true">http://rsdn.org/Forum/cpp.applied/9017168</guid>
		<comments>http://rsdn.org/Forum/cpp.applied/9017168</comments>
		<wfw:comment>http://rsdn.org/Forum/PostRssComment.aspx?mid=9017168</wfw:comment>
		<wfw:commentRss>http://rsdn.org/Forum/RSS/9017168</wfw:commentRss>
		<trackback:ping>http://rsdn.org/Forum/Trackback.aspx?mid=9017168</trackback:ping>
		<description>
			
					&lt;div style="@import url(http://rsdn.org/Forum/Forum.css);"&gt;Здравствуйте!&lt;br /&gt;
&lt;br /&gt;
Поддержка SQLite &amp;mdash; обязательно, но лучше, если поддерживаются и другие БД.&lt;br /&gt;
&lt;br /&gt;
Пока находится какая-то хрень только &lt;img border='0' width='15' height='15' src='//rsdn.org/Forum/images/frown.gif' /&gt;&lt;br /&gt;
&lt;br /&gt;
Для плюсиков нет ORMов?&lt;/div&gt;
				
		</description>
		
		<category>cpp</category><category>applied</category>
		<pubDate>Tue, 11 Nov 2025 21:48:57 GMT</pubDate>
		
			<author>Marty &lt;forum@rsdn.org&gt;</author>
		
		
			<slash:comments>8</slash:comments>
		
	</item>

	<item>
		<title>auto и proxy-объекты</title>
		<link>http://rsdn.org/Forum/cpp.applied/9016746.1</link>
		<guid isPermaLink="true">http://rsdn.org/Forum/cpp.applied/9016746</guid>
		<comments>http://rsdn.org/Forum/cpp.applied/9016746</comments>
		<wfw:comment>http://rsdn.org/Forum/PostRssComment.aspx?mid=9016746</wfw:comment>
		<wfw:commentRss>http://rsdn.org/Forum/RSS/9016746</wfw:commentRss>
		<trackback:ping>http://rsdn.org/Forum/Trackback.aspx?mid=9016746</trackback:ping>
		<description>
			
					&lt;div style="@import url(http://rsdn.org/Forum/Forum.css);"&gt;Здравствуйте!&lt;br /&gt;
&lt;br /&gt;
Вот у меня есть допустим какой-то мой map, есть там key_type, mapped_type...&lt;br /&gt;
&lt;br /&gt;
Для обычного map я напишу:&lt;br /&gt;
&lt;pre class='c'&gt;&lt;code&gt;&lt;span class='kw'&gt;auto&lt;/span&gt;  a = m[&lt;span class='str'&gt;"aaa"&lt;/span&gt;];
&lt;span class='kw'&gt;auto&lt;/span&gt;&amp;amp; b = m[&lt;span class='str'&gt;"bbb"&lt;/span&gt;];&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
И всё будет хорошо. Но. Раньше можно было использовать прокси объекты:&lt;br /&gt;
&lt;pre class='c'&gt;&lt;code&gt;&lt;span class='kw'&gt;class&lt;/span&gt; Proxy;

&lt;span class='kw'&gt;class&lt;/span&gt; MyMap
{
&lt;span class='com'&gt;//...&lt;/span&gt;
Proxy &lt;span class='kw'&gt;operator&lt;/span&gt;[](string key)
&lt;span class='com'&gt;//..&lt;/span&gt;

};

&lt;span class='com'&gt;//..&lt;/span&gt;

&lt;span class='kw'&gt;class&lt;/span&gt; Proxy
{
&lt;span class='com'&gt;//...&lt;/span&gt;
&lt;span class='kw'&gt;operator&lt;/span&gt; mapped_type()
&lt;span class='com'&gt;//...&lt;/span&gt;

Proxy(&lt;span class='kw'&gt;const&lt;/span&gt; mapped_type&amp;amp;m)
&lt;span class='com'&gt;//...&lt;/span&gt;

};&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
И всё работало, потому что не было auto, а надо было явно выписывать тип&lt;br /&gt;
&lt;br /&gt;
А теперь с auto как оно работает?&lt;br /&gt;
&lt;br /&gt;
Если я напишу&lt;br /&gt;
&lt;pre class='c'&gt;&lt;code&gt;&lt;span class='kw'&gt;auto&lt;/span&gt; a = myMap[&lt;span class='str'&gt;"aaa"&lt;/span&gt;];&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
то я же получу не mapped_type, а Proxy, а со ссылкой вообще висяк получу.&lt;br /&gt;
&lt;br /&gt;
Как это сейчас разруливается?&lt;/div&gt;
				
		</description>
		
		<category>cpp</category><category>applied</category>
		<pubDate>Mon, 10 Nov 2025 21:19:18 GMT</pubDate>
		
			<author>Marty &lt;forum@rsdn.org&gt;</author>
		
		
			<slash:comments>14</slash:comments>
		
	</item>

	<item>
		<title>Подкиньте ресурсов по protobuf</title>
		<link>http://rsdn.org/Forum/cpp.applied/9015776.1</link>
		<guid isPermaLink="true">http://rsdn.org/Forum/cpp.applied/9015776</guid>
		<comments>http://rsdn.org/Forum/cpp.applied/9015776</comments>
		<wfw:comment>http://rsdn.org/Forum/PostRssComment.aspx?mid=9015776</wfw:comment>
		<wfw:commentRss>http://rsdn.org/Forum/RSS/9015776</wfw:commentRss>
		<trackback:ping>http://rsdn.org/Forum/Trackback.aspx?mid=9015776</trackback:ping>
		<description>
			
					&lt;div style="@import url(http://rsdn.org/Forum/Forum.css);"&gt;Здравствуйте!&lt;br /&gt;
&lt;br /&gt;
Изучаю сейчас protobuf.dev. Какой-то он куцый и недоделанный. Нормального референса по языку нет, выглядит, как набор статей с хабра (но даже там обычно лучше всё раскрыто).&lt;br /&gt;
&lt;br /&gt;
proto2/proto3/edition 2023/edition 2024 &amp;mdash; нет внятного саммари по отличиям, всё раскидано по каким-то отдельным статьям. А что было до proto2?&lt;br /&gt;
&lt;br /&gt;
Про фичи (feature) тоже как-то не особо внятно &amp;mdash; &lt;a class="m" href="https://protobuf.dev/editions/overview/" target="_blank"&gt;https://protobuf.dev/editions/overview/&lt;/a&gt;&lt;br /&gt;
Не могу, например, найти, а где есть вообще полный список всех фич и в каких диалектах какой статус они имеют?&lt;br /&gt;
&lt;br /&gt;
Есть ли у protobuf ключевые слова? Я как-то не понял. &lt;tt&gt;message&lt;/tt&gt;, &lt;tt&gt;reserved&lt;/tt&gt;, &lt;tt&gt;optional&lt;/tt&gt;, &lt;tt&gt;repeated&lt;/tt&gt;, &lt;tt&gt;enum&lt;/tt&gt;, &lt;tt&gt;string&lt;/tt&gt;, &lt;tt&gt;option&lt;/tt&gt;, и тд и тп &amp;mdash; это ключевые слова или всё зависит от контекста?&lt;br /&gt;
&lt;br /&gt;
На уровне языка пространств имён нет, как я понимаю? Всё основано на файлах? В одном файле нельзя разные NS иметь, обращаться п ополному имени, только как &lt;tt&gt;google.protobuf.Timestamp&lt;/tt&gt;, например, если я делаю import google.protobuf.Timestamp.proto? От имени файла зависит? Или NS объявляется внутри файла один раз &amp;mdash; &lt;tt&gt;package google.protobuf;&lt;/tt&gt;?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Может, есть ещё какие годные ресурсы по protobuf? Лучше на русском, но можно и на вражеском&lt;/div&gt;
				
		</description>
		
		<category>cpp</category><category>applied</category>
		<pubDate>Fri, 07 Nov 2025 20:17:55 GMT</pubDate>
		
			<author>Marty &lt;forum@rsdn.org&gt;</author>
		
		
			<slash:comments>5</slash:comments>
		
	</item>

	<item>
		<title>MSVC C1061: compiler limit: blocks nested too deeply</title>
		<link>http://rsdn.org/Forum/cpp.applied/9007107.1</link>
		<guid isPermaLink="true">http://rsdn.org/Forum/cpp.applied/9007107</guid>
		<comments>http://rsdn.org/Forum/cpp.applied/9007107</comments>
		<wfw:comment>http://rsdn.org/Forum/PostRssComment.aspx?mid=9007107</wfw:comment>
		<wfw:commentRss>http://rsdn.org/Forum/RSS/9007107</wfw:commentRss>
		<trackback:ping>http://rsdn.org/Forum/Trackback.aspx?mid=9007107</trackback:ping>
		<description>
			
					&lt;div style="@import url(http://rsdn.org/Forum/Forum.css);"&gt;Здравствуйте!&lt;br /&gt;
&lt;br /&gt;
MSVC выдал сабжевую шляпу.&lt;br /&gt;
&lt;br /&gt;
Я завернул некоторые одинаковые действия в макрос, копипастить не хотелось, думать, как шаблонить тоже &amp;mdash; там три else if'а в макросе, из череды подобных else if'ов. Было два блока копипасты, отличающихся мелочами; пока их было два, всё устраивало, но понадобилось добавить ёще пяток аналогичных, решил в макрос завернуть, и получил такую ошибку.&lt;br /&gt;
&lt;br /&gt;
При этом, если я коментирую новое добавление, оставляя только первые исходные два варианта, но только через макросы, то нормас.&lt;br /&gt;
&lt;br /&gt;
Но 8 вариантов компилятор уже не выдерживает, проверил постепенным восстановлением закомментированного.&lt;br /&gt;
&lt;br /&gt;
Проверил идею: без макросов добавил пару if'ов:&lt;br /&gt;
&lt;pre class='c'&gt;&lt;code&gt;        &lt;span class='kw'&gt;else if&lt;/span&gt; (&lt;span class='kw'&gt;true&lt;/span&gt;)
        {
            &lt;span class='kw'&gt;return&lt;/span&gt; 0;
        }

        &lt;span class='kw'&gt;else if&lt;/span&gt; (&lt;span class='kw'&gt;false&lt;/span&gt;)
        {
            &lt;span class='kw'&gt;return&lt;/span&gt; 0;
        }&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
&amp;mdash; компиляция ломается&lt;br /&gt;
&lt;br /&gt;
у меня длинный if else из порядка 200 двухсот таких условий.&lt;br /&gt;
&lt;br /&gt;
И мне бы его хотелось и дальше его увеличивать без проблем. Иначе кучу всего переделывать придётся. И не факт, что если я переделаю, то не вылезет ещё что-то подобное.&lt;br /&gt;
&lt;br /&gt;
И чтоо делать?&lt;/div&gt;
				
		</description>
		
		<category>cpp</category><category>applied</category>
		<pubDate>Fri, 17 Oct 2025 22:25:28 GMT</pubDate>
		
			<author>Marty &lt;forum@rsdn.org&gt;</author>
		
		
			<slash:comments>23</slash:comments>
		
	</item>

	<item>
		<title>Кросс компиляция, посоветуйте best practice</title>
		<link>http://rsdn.org/Forum/cpp.applied/8996241.1</link>
		<guid isPermaLink="true">http://rsdn.org/Forum/cpp.applied/8996241</guid>
		<comments>http://rsdn.org/Forum/cpp.applied/8996241</comments>
		<wfw:comment>http://rsdn.org/Forum/PostRssComment.aspx?mid=8996241</wfw:comment>
		<wfw:commentRss>http://rsdn.org/Forum/RSS/8996241</wfw:commentRss>
		<trackback:ping>http://rsdn.org/Forum/Trackback.aspx?mid=8996241</trackback:ping>
		<description>
			
					&lt;div style="@import url(http://rsdn.org/Forum/Forum.css);"&gt;Всем привет.&lt;br /&gt;
&lt;br /&gt;
У меня есть пет проект, небольшая консольная утилита которая считает рейтинг детишкам для одной спортивной организации. Берёт на вход текстовые файлы с результатами соревнований, обрабатывает их в соответствии с правилами и ведёт учёт рейтинга. Но не суть.&lt;br /&gt;
Стек технологий такой: C++23, boost with ICU, fmt, sqlite_orm.&lt;br /&gt;
Сборка: в корне проекта есть vcpkg.json на который натравливается vcpkg и собирает в папку third_party все зависимости. Далее в CMakeLists.txt я просто передаю путь к этой папке и всё прекрасно разруливается через find_package (иногда в режиме CONFIG, иногда нет). Соответственно для винды/мака/линукса я написал простенькие bootstrap.bat/bootstrap.sh которые при необходимости выкачивают vcpkg и собирают зависимости.&lt;br /&gt;
Основная платформа разработки: macos, clang21.&lt;br /&gt;
ICU нужен потому что приходится делать всякие выборки/сортировки русских имён и фамилий в utf-8, а обработка буквы Ë без icu ведёт себя по разному на разных платформах. Ну то есть если я хочу правильно отсортировать вектор не ascii utf-8 строк по алфавиту то тут без icu никак.&lt;br /&gt;
&lt;br /&gt;
Никакого CI я не настраивал, нет на это ресурсов, просто собирал под маком версию для мака, потом загружался в винду и собирал версию для винды.&lt;br /&gt;
Сейчас мне стало лень заморачиваться с виндой, ибо я переехал на армовский мак. И хочу завезти кросс компиляцию.&lt;br /&gt;
&lt;br /&gt;
Вопрос: как завезти кросс-компиляцию на моём стеке с минимальной головной болью?&lt;br /&gt;
&lt;br /&gt;
Что я пробовал: &lt;a class="github m" href="https://github.com/dockcross/dockcross" target="_blank"&gt;dockcross&lt;/a&gt; + mingw64. Но возникла проблема с кросс-компиляцией ICU (где-то внутри скриптов сборки самого ICU он не понимает разницы между хостом в лице докер контейнера и таргетом &amp;mdash; виндой). На отладку и патч сборки ICU недостаточно свободного времени.&lt;br /&gt;
У меня есть стойкое чувство, что я что-то делаю не так. Поиск в интернете по кросс компиляции ICU мне ничего особого не дал.&lt;br /&gt;
&lt;br /&gt;
Пока что, как временное решение на стороне клиента &amp;mdash; WSL где запускается линуксовая версия моей тулзы. Но у людей в этой спортивной организации очень слабые компы и они еле тянут всё это дело, поэтому хочется нативное решение.&lt;/div&gt;
				
		</description>
		
		<category>cpp</category><category>applied</category>
		<pubDate>Mon, 22 Sep 2025 11:09:31 GMT</pubDate>
		
			<author>SaZ &lt;forum@rsdn.org&gt;</author>
		
		
			<slash:comments>7</slash:comments>
		
	</item>
</channel>
</rss>
