<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>C++ on Arcanelab Blog</title><link>https://blog.arcanelab.com/tags/c++/</link><description>Recent content in C++ on Arcanelab Blog</description><generator>Hugo</generator><language>en-US</language><copyright>Zoltán Majoros</copyright><lastBuildDate>Sat, 27 Jul 2024 23:58:00 +0200</lastBuildDate><atom:link href="https://blog.arcanelab.com/tags/c++/index.xml" rel="self" type="application/rss+xml"/><item><title>PhysFS performance, a story of threading and locking · Mathieu Ropert</title><link>https://blog.arcanelab.com/2024/07/physfs-performance-a-story-of-threading-and-locking-mathieu/</link><pubDate>Sat, 27 Jul 2024 23:58:00 +0200</pubDate><guid>https://blog.arcanelab.com/2024/07/physfs-performance-a-story-of-threading-and-locking-mathieu/</guid><description>&lt;h1&gt;&lt;/h1&gt;</description></item><item><title>Halide</title><link>https://blog.arcanelab.com/2023/11/halide/</link><pubDate>Sat, 11 Nov 2023 00:24:00 +0100</pubDate><guid>https://blog.arcanelab.com/2023/11/halide/</guid><description>&lt;h1&gt;&lt;/h1&gt;</description></item><item><title>PhysicsFS</title><link>https://blog.arcanelab.com/2023/10/physicsfs/</link><pubDate>Wed, 11 Oct 2023 21:06:00 +0200</pubDate><guid>https://blog.arcanelab.com/2023/10/physicsfs/</guid><description>&lt;h1&gt;&lt;/h1&gt;</description></item><item><title>Learn Modern C++</title><link>https://blog.arcanelab.com/2023/10/learn-modern-c/</link><pubDate>Tue, 10 Oct 2023 12:55:00 +0200</pubDate><guid>https://blog.arcanelab.com/2023/10/learn-modern-c/</guid><description>&lt;h1&gt;&lt;/h1&gt;</description></item><item><title>For the project I’m currently working on, I’m evaluating options for an embeddable…</title><link>https://blog.arcanelab.com/2023/07/for-the-project-im-currently-working-on-im-evaluating/</link><pubDate>Fri, 28 Jul 2023 17:51:00 +0200</pubDate><guid>https://blog.arcanelab.com/2023/07/for-the-project-im-currently-working-on-im-evaluating/</guid><description>&lt;h1&gt;&lt;/h1&gt;
&lt;p&gt;For the project I&amp;rsquo;m currently working on, I&amp;rsquo;m evaluating options for an embeddable scripting language. Here&amp;rsquo;s a shortlist I compiled after researching &lt;a href="https://href.li/?https://github.com/dbohdan/embedded-scripting-languages"&gt;this&lt;/a&gt; list:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="https://href.li/?https://marcobambini.github.io/gravity/"&gt;Gravity&lt;/a&gt; (Swift-like syntax, one of my favs)&lt;/li&gt;&lt;li&gt;&lt;a href="https://href.li/?https://www.lua.org/"&gt;Lua&lt;/a&gt; (The most popular embedded language)&lt;/li&gt;&lt;li&gt;&lt;a href="https://href.li/?https://terralang.org/"&gt;Terra&lt;/a&gt; (A statically-typed Lua-like language)&lt;/li&gt;&lt;li&gt;&lt;a href="https://href.li/?https://github.com/jpoirier/picoc"&gt;PicoC&lt;/a&gt; (Small footprint C interpreter)&lt;/li&gt;&lt;li&gt;&lt;a href="https://href.li/?https://wren.io/"&gt;Wren&lt;/a&gt; (Class-based)&lt;/li&gt;&lt;li&gt;&lt;a href="https://href.li/?https://github.com/GaijinEntertainment/quirrel"&gt;Quirrel&lt;/a&gt; (An improvement on Squirrel)&lt;/li&gt;&lt;li&gt;&lt;a href="https://href.li/?https://www.angelcode.com/angelscript/"&gt;Angelscript&lt;/a&gt; (C/C++ like, popular in game engines)&lt;/li&gt;&lt;li&gt;&lt;a href="https://href.li/?http://chaiscript.com/"&gt;ChaiScript&lt;/a&gt; (Easy-to-integrate, C++ based)&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Here&amp;rsquo;s a benchmark of many scripting languages: &lt;a href="https://href.li/?https://github.com/r-lyeh-archived/scriptorium"&gt;https://github.com/r-lyeh-archived/scriptorium&lt;/a&gt;&lt;/p&gt;</description></item><item><title>fgetwc, getwc - cppreference.com</title><link>https://blog.arcanelab.com/2023/07/fgetwc-getwc-cppreference-com/</link><pubDate>Wed, 19 Jul 2023 22:19:00 +0200</pubDate><guid>https://blog.arcanelab.com/2023/07/fgetwc-getwc-cppreference-com/</guid><description>&lt;h1&gt;&lt;/h1&gt;</description></item><item><title>How do I enable SSE4.1 and SSE3 (but NOT AVX) in MSVC</title><link>https://blog.arcanelab.com/2023/07/how-do-i-enable-sse4-1-and-sse3-but-not-avx-in-msvc/</link><pubDate>Tue, 11 Jul 2023 23:00:00 +0200</pubDate><guid>https://blog.arcanelab.com/2023/07/how-do-i-enable-sse4-1-and-sse3-but-not-avx-in-msvc/</guid><description>&lt;h1&gt;&lt;/h1&gt;</description></item><item><title>SDL2 common mistakes and how to avoid them</title><link>https://blog.arcanelab.com/2023/07/sdl2-common-mistakes-and-how-to-avoid-them/</link><pubDate>Mon, 10 Jul 2023 01:45:00 +0200</pubDate><guid>https://blog.arcanelab.com/2023/07/sdl2-common-mistakes-and-how-to-avoid-them/</guid><description>&lt;h1&gt;&lt;/h1&gt;</description></item><item><title>Learn WebGPU</title><link>https://blog.arcanelab.com/2023/07/learn-webgpu/</link><pubDate>Sat, 08 Jul 2023 00:03:00 +0200</pubDate><guid>https://blog.arcanelab.com/2023/07/learn-webgpu/</guid><description>&lt;h1&gt;&lt;/h1&gt;</description></item><item><title>What's the best free C++ profiler for Windows?</title><link>https://blog.arcanelab.com/2023/06/what-s-the-best-free-c-profiler-for-windows/</link><pubDate>Tue, 20 Jun 2023 01:41:00 +0200</pubDate><guid>https://blog.arcanelab.com/2023/06/what-s-the-best-free-c-profiler-for-windows/</guid><description>&lt;h1&gt;&lt;/h1&gt;</description></item><item><title>POCO C++ Libraries - Simplify C++ Development</title><link>https://blog.arcanelab.com/2023/06/poco-c-libraries-simplify-c-development/</link><pubDate>Sat, 17 Jun 2023 11:03:00 +0200</pubDate><guid>https://blog.arcanelab.com/2023/06/poco-c-libraries-simplify-c-development/</guid><description>&lt;h1&gt;&lt;/h1&gt;</description></item><item><title>Overview of modules in C++</title><link>https://blog.arcanelab.com/2023/06/overview-of-modules-in-c/</link><pubDate>Mon, 12 Jun 2023 17:04:00 +0200</pubDate><guid>https://blog.arcanelab.com/2023/06/overview-of-modules-in-c/</guid><description>&lt;h1&gt;&lt;/h1&gt;</description></item><item><title>Table of Contents · Game Programming Patterns</title><link>https://blog.arcanelab.com/2017/08/table-of-contents-game-programming-patterns/</link><pubDate>Fri, 11 Aug 2017 14:50:00 +0200</pubDate><guid>https://blog.arcanelab.com/2017/08/table-of-contents-game-programming-patterns/</guid><description/></item><item><title>AnthonyCalandra/modern-cpp-features</title><link>https://blog.arcanelab.com/2017/07/anthonycalandra-modern-cpp-features/</link><pubDate>Tue, 11 Jul 2017 14:48:00 +0200</pubDate><guid>https://blog.arcanelab.com/2017/07/anthonycalandra-modern-cpp-features/</guid><description/></item><item><title>Wrapping C++ - Take 2, Part 1 - Cocoaphony</title><link>https://blog.arcanelab.com/2017/06/wrapping-c-take-2-part-1-cocoaphony/</link><pubDate>Wed, 28 Jun 2017 17:07:00 +0200</pubDate><guid>https://blog.arcanelab.com/2017/06/wrapping-c-take-2-part-1-cocoaphony/</guid><description/></item><item><title>Swift And C: Everything You Need to Know on Types, Pointers and more</title><link>https://blog.arcanelab.com/2017/05/swift-and-c-everything-you-need-to-know-on-types-pointers/</link><pubDate>Tue, 23 May 2017 17:03:00 +0200</pubDate><guid>https://blog.arcanelab.com/2017/05/swift-and-c-everything-you-need-to-know-on-types-pointers/</guid><description/></item><item><title>Confusion between C++ and OpenGL matrix order (row-major vs column-major)</title><link>https://blog.arcanelab.com/2017/05/confusion-between-c-and-opengl-matrix-order-row-major-vs/</link><pubDate>Thu, 04 May 2017 17:29:00 +0200</pubDate><guid>https://blog.arcanelab.com/2017/05/confusion-between-c-and-opengl-matrix-order-row-major-vs/</guid><description/></item><item><title>conan.io - C/C++ Open Source Package Manager</title><link>https://blog.arcanelab.com/2017/04/conan-io-c-c-open-source-package-manager/</link><pubDate>Mon, 24 Apr 2017 00:26:00 +0200</pubDate><guid>https://blog.arcanelab.com/2017/04/conan-io-c-c-open-source-package-manager/</guid><description/></item><item><title>An Introduction to Reflection in C++</title><link>https://blog.arcanelab.com/2017/04/an-introduction-to-reflection-in-c/</link><pubDate>Sat, 15 Apr 2017 23:56:00 +0200</pubDate><guid>https://blog.arcanelab.com/2017/04/an-introduction-to-reflection-in-c/</guid><description/></item><item><title>Compiler Explorer - C++</title><link>https://blog.arcanelab.com/2017/04/compiler-explorer-c/</link><pubDate>Fri, 14 Apr 2017 19:16:00 +0200</pubDate><guid>https://blog.arcanelab.com/2017/04/compiler-explorer-c/</guid><description/></item><item><title>C++ Pimpl Implementation</title><link>https://blog.arcanelab.com/2017/04/c-pimpl-implementation/</link><pubDate>Wed, 12 Apr 2017 17:39:00 +0200</pubDate><guid>https://blog.arcanelab.com/2017/04/c-pimpl-implementation/</guid><description/></item><item><title>Refactoring C++ To Reduce Dependencies</title><link>https://blog.arcanelab.com/2017/04/refactoring-c-to-reduce-dependencies/</link><pubDate>Wed, 12 Apr 2017 14:23:00 +0200</pubDate><guid>https://blog.arcanelab.com/2017/04/refactoring-c-to-reduce-dependencies/</guid><description/></item><item><title>Modern C++ in embedded systems – Part 1: Myth and Reality</title><link>https://blog.arcanelab.com/2017/04/modern-c-in-embedded-systems-part-1-myth-and-reality/</link><pubDate>Wed, 12 Apr 2017 14:22:00 +0200</pubDate><guid>https://blog.arcanelab.com/2017/04/modern-c-in-embedded-systems-part-1-myth-and-reality/</guid><description/></item><item><title>C++ Software Design Books John Lakos - Large-Scale C++ Software Design Erich Gamma -…</title><link>https://blog.arcanelab.com/2017/04/c-software-design-books-john-lakos-large-scale-c-software/</link><pubDate>Wed, 12 Apr 2017 14:14:00 +0200</pubDate><guid>https://blog.arcanelab.com/2017/04/c-software-design-books-john-lakos-large-scale-c-software/</guid><description>&lt;h1&gt;C++ Software Design Books&lt;/h1&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="https://www.amazon.co.uk/Large-Scale-C-Software-Design-APC/dp/0201633620"&gt;John Lakos - Large-Scale C++ Software Design&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="https://www.amazon.co.uk/Design-patterns-elements-reusable-object-oriented/dp/0201633612/"&gt;Erich Gamma - Design patterns : elements of reusable object-oriented software Hardcover&lt;/a&gt;&lt;br/&gt;&lt;/li&gt;&lt;/ul&gt;</description></item><item><title>CppCon 2016: Jason Turner “Practical Performance Practices"</title><link>https://blog.arcanelab.com/2017/04/cppcon-2016-jason-turner-practical-performance-practices/</link><pubDate>Thu, 06 Apr 2017 19:14:00 +0200</pubDate><guid>https://blog.arcanelab.com/2017/04/cppcon-2016-jason-turner-practical-performance-practices/</guid><description>&lt;div class="caption"&gt;&lt;p&gt;CppCon 2016: Jason Turner “Practical Performance Practices&amp;quot;
&lt;br/&gt;&lt;/p&gt; &lt;/div&gt;</description></item><item><title>ocornut/imgui</title><link>https://blog.arcanelab.com/2017/04/ocornut-imgui/</link><pubDate>Sun, 02 Apr 2017 02:41:00 +0200</pubDate><guid>https://blog.arcanelab.com/2017/04/ocornut-imgui/</guid><description/></item><item><title>Obsessive Coding Disorder, Julian Storer - JUCE Summit keynote 2015</title><link>https://blog.arcanelab.com/2016/12/obsessive-coding-disorder-julian-storer-juce-summit-keynote/</link><pubDate>Wed, 28 Dec 2016 17:49:00 +0100</pubDate><guid>https://blog.arcanelab.com/2016/12/obsessive-coding-disorder-julian-storer-juce-summit-keynote/</guid><description>&lt;div class="caption"&gt;&lt;blockquote&gt;&lt;p&gt;Julian Storer, the founder of JUCE, rewrites one of the most used C 
library in the world, Zlib. In doing so, Julian showcases the coding 
standards that apply to the JUCE library. Watch on to see how many lines
of code Julian managed to reduce Zlib to, while improving drastically 
the readability of the code and removing all dependencies.&lt;br/&gt;&lt;/p&gt;&lt;/blockquote&gt; &lt;/div&gt;</description></item><item><title>Using C++11 to Improve Code Clarity: Braced Initialisers, David Rowland, JUCE Summit 2015</title><link>https://blog.arcanelab.com/2016/12/using-c-11-to-improve-code-clarity-braced-initialisers/</link><pubDate>Wed, 28 Dec 2016 00:27:00 +0100</pubDate><guid>https://blog.arcanelab.com/2016/12/using-c-11-to-improve-code-clarity-braced-initialisers/</guid><description/></item><item><title>Only an idiot would write a new C-like language in 2016, Jules Storer</title><link>https://blog.arcanelab.com/2016/12/only-an-idiot-would-write-a-new-c-like-language-in-2016/</link><pubDate>Tue, 27 Dec 2016 19:14:00 +0100</pubDate><guid>https://blog.arcanelab.com/2016/12/only-an-idiot-would-write-a-new-c-like-language-in-2016/</guid><description>&lt;div class="caption"&gt;&lt;p&gt;Keynote talk, ADC 2016, by Jules Storer, founder of JUCE&lt;/p&gt; &lt;/div&gt;</description></item><item><title>strtk -C++ String Toolkit Library</title><link>https://blog.arcanelab.com/2016/05/strtk-c-string-toolkit-library/</link><pubDate>Wed, 25 May 2016 22:56:00 +0200</pubDate><guid>https://blog.arcanelab.com/2016/05/strtk-c-string-toolkit-library/</guid><description/></item><item><title>C++ Modules — Clang 3.9 documentation</title><link>https://blog.arcanelab.com/2016/05/c-modules-clang-3-9-documentation/</link><pubDate>Tue, 17 May 2016 15:08:00 +0200</pubDate><guid>https://blog.arcanelab.com/2016/05/c-modules-clang-3-9-documentation/</guid><description/></item><item><title>Top 10 dumb mistakes to avoid with C++ 11 smart pointers</title><link>https://blog.arcanelab.com/2016/05/top-10-dumb-mistakes-to-avoid-with-c-11-smart-pointers/</link><pubDate>Sun, 15 May 2016 13:16:00 +0200</pubDate><guid>https://blog.arcanelab.com/2016/05/top-10-dumb-mistakes-to-avoid-with-c-11-smart-pointers/</guid><description/></item><item><title>Linking an OSX external bundle with a .dylib library</title><link>https://blog.arcanelab.com/2016/05/linking-an-osx-external-bundle-with-a-dylib-library/</link><pubDate>Thu, 12 May 2016 13:53:00 +0200</pubDate><guid>https://blog.arcanelab.com/2016/05/linking-an-osx-external-bundle-with-a-dylib-library/</guid><description/></item><item><title>Clang Environment variable for linker path</title><link>https://blog.arcanelab.com/2016/05/clang-environment-variable-for-linker-path/</link><pubDate>Wed, 04 May 2016 22:37:00 +0200</pubDate><guid>https://blog.arcanelab.com/2016/05/clang-environment-variable-for-linker-path/</guid><description/></item><item><title>C++ Has Become More Pythonic</title><link>https://blog.arcanelab.com/2016/05/c-has-become-more-pythonic/</link><pubDate>Sun, 01 May 2016 06:10:00 +0200</pubDate><guid>https://blog.arcanelab.com/2016/05/c-has-become-more-pythonic/</guid><description/></item><item><title>stb single-file public domain libraries for C/C++</title><link>https://blog.arcanelab.com/2016/04/stb-single-file-public-domain-libraries-for-c-c/</link><pubDate>Tue, 26 Apr 2016 22:23:00 +0200</pubDate><guid>https://blog.arcanelab.com/2016/04/stb-single-file-public-domain-libraries-for-c-c/</guid><description/></item><item><title>Power up C++ with the Standard Template Library: Part 1 – topcoder</title><link>https://blog.arcanelab.com/2016/03/power-up-c-with-the-standard-template-library-part-1/</link><pubDate>Wed, 30 Mar 2016 23:35:00 +0200</pubDate><guid>https://blog.arcanelab.com/2016/03/power-up-c-with-the-standard-template-library-part-1/</guid><description/></item><item><title>ziplib - Bitbucket</title><link>https://blog.arcanelab.com/2015/12/ziplib-bitbucket/</link><pubDate>Fri, 11 Dec 2015 08:42:00 +0100</pubDate><guid>https://blog.arcanelab.com/2015/12/ziplib-bitbucket/</guid><description/></item><item><title>UTF8-CPP: UTF-8 with C++ in a Portable Way</title><link>https://blog.arcanelab.com/2015/11/utf8-cpp-utf-8-with-c-in-a-portable-way/</link><pubDate>Sat, 21 Nov 2015 03:49:00 +0100</pubDate><guid>https://blog.arcanelab.com/2015/11/utf8-cpp-utf-8-with-c-in-a-portable-way/</guid><description/></item><item><title>The Makeheaders Program</title><link>https://blog.arcanelab.com/2015/11/the-makeheaders-program/</link><pubDate>Fri, 13 Nov 2015 13:04:00 +0100</pubDate><guid>https://blog.arcanelab.com/2015/11/the-makeheaders-program/</guid><description/></item><item><title>Cheerp, the C++ compiler for the Web</title><link>https://blog.arcanelab.com/2015/11/cheerp-the-c-compiler-for-the-web/</link><pubDate>Sat, 07 Nov 2015 19:16:00 +0100</pubDate><guid>https://blog.arcanelab.com/2015/11/cheerp-the-c-compiler-for-the-web/</guid><description/></item><item><title>Cockos Incorporated | WDL/whittle</title><link>https://blog.arcanelab.com/2015/08/cockos-incorporated-wdl-whittle/</link><pubDate>Fri, 07 Aug 2015 20:24:00 +0200</pubDate><guid>https://blog.arcanelab.com/2015/08/cockos-incorporated-wdl-whittle/</guid><description/></item><item><title>WDL/IPlug "Tale" Edition</title><link>https://blog.arcanelab.com/2015/08/wdl-iplug-tale-edition/</link><pubDate>Fri, 07 Aug 2015 20:24:00 +0200</pubDate><guid>https://blog.arcanelab.com/2015/08/wdl-iplug-tale-edition/</guid><description/></item><item><title>google/google-api-cpp-client</title><link>https://blog.arcanelab.com/2015/06/google-google-api-cpp-client/</link><pubDate>Thu, 04 Jun 2015 01:03:00 +0200</pubDate><guid>https://blog.arcanelab.com/2015/06/google-google-api-cpp-client/</guid><description/></item><item><title>How to convert an integer to a hexadecimal string in C++ int number = 42; stringstream…</title><link>https://blog.arcanelab.com/2011/12/how-to-convert-an-integer-to-a-hexadecimal-string-in-c-int/</link><pubDate>Sat, 10 Dec 2011 06:58:00 +0100</pubDate><guid>https://blog.arcanelab.com/2011/12/how-to-convert-an-integer-to-a-hexadecimal-string-in-c-int/</guid><description>&lt;h1&gt;How to convert an integer to a hexadecimal string in C++&lt;/h1&gt;
&lt;pre&gt;int number = 42;&lt;br/&gt;stringstream ss;&lt;br/&gt;ss &amp;lt;&amp;lt; hex &amp;lt;&amp;lt; number;&lt;br/&gt;// now ss.str(), which is a &lt;em&gt;string&lt;/em&gt;, contains "2a"&lt;/pre&gt;</description></item><item><title>Polycode</title><link>https://blog.arcanelab.com/2011/06/polycode/</link><pubDate>Sat, 04 Jun 2011 14:10:00 +0200</pubDate><guid>https://blog.arcanelab.com/2011/06/polycode/</guid><description/></item><item><title>Enabling C++ constructor calling from Objective C</title><link>https://blog.arcanelab.com/2010/11/enabling-c-constructor-calling-from-objective-c/</link><pubDate>Mon, 01 Nov 2010 20:51:00 +0100</pubDate><guid>https://blog.arcanelab.com/2010/11/enabling-c-constructor-calling-from-objective-c/</guid><description/></item><item><title>C/C++ trick with logical operators Let me show a nice C/C++ trick I just found out:…</title><link>https://blog.arcanelab.com/2010/09/c-c-trick-with-logical-operators-let-me-show-a-nice-c-c/</link><pubDate>Sat, 04 Sep 2010 02:14:00 +0200</pubDate><guid>https://blog.arcanelab.com/2010/09/c-c-trick-with-logical-operators-let-me-show-a-nice-c-c/</guid><description>&lt;h1&gt;C/C++ trick with logical operators&lt;/h1&gt;
&lt;p&gt;Let me show a nice C/C++ trick I just found out:&lt;/p&gt;
&lt;p&gt;Instead of writing:&lt;/p&gt;
&lt;pre&gt;if (function1())&lt;br/&gt; function2();&lt;/pre&gt;
&lt;p&gt;you could write:&lt;/p&gt;
&lt;pre&gt;function1() &amp;amp;&amp;amp; function2();&lt;/pre&gt;
&lt;p&gt;because the right side of the &amp;amp;&amp;amp; operator is only evaluated (in this case: called), when function1() is true (returns a non-null value).&lt;/p&gt;
&lt;p&gt;Subsequently, instead of:&lt;/p&gt;
&lt;pre&gt;if (!function1()) // or if (function1()==0) etc.&lt;br/&gt; function2();&lt;/pre&gt;
&lt;p&gt;you could write:&lt;/p&gt;
&lt;pre&gt;function1() || function2();&lt;/pre&gt;
&lt;p&gt;Cool, eh?&lt;/p&gt;</description></item></channel></rss>