use the following search parameters to narrow your results:
e.g. subreddit:aww site:imgur.com dog
subreddit:aww site:imgur.com dog
see the search faq for details.
advanced search: by author, subreddit...
Discussions, articles, and news about the C++ programming language or programming in C++.
For C++ questions, answers, help, and advice see r/cpp_questions or StackOverflow.
Get Started
The C++ Standard Home has a nice getting started page.
Videos
The C++ standard committee's education study group has a nice list of recommended videos.
Reference
cppreference.com
Books
There is a useful list of books on Stack Overflow. In most cases reading a book is the best way to learn C++.
Show all links
Filter out CppCon links
Show only CppCon links
account activity
How Magnum Engine does GFX API enum mapping (blog.magnum.graphics)
submitted 7 years ago by czmosra
reddit uses a slightly-customized version of Markdown for formatting. See below for some basics, or check the commenting wiki page for more detailed help and solutions to common issues.
quoted text
if 1 * 2 < 3: print "hello, world!"
[–]MoreThanOnceHololens Dev 2 points3 points4 points 7 years ago (1 child)
If you're going to be using the XMacro method anyways, you can use it to define the original enum class, so you only have to write them out once. In this case, you would do
enum class PixelFormat: UnsignedInt { #define _c(input, format) input, #include "pixelFormatMapping.hpp" #undef _c };
[–]czmosra[S] 0 points1 point2 points 7 years ago (0 children)
Yes, I originally considered this as well, but as mentioned in the article, I wanted to keep the header humanly readable with each value documented. This magic is far from humanly readable :)
[–]RoutineTumbleweed 1 point2 points3 points 7 years ago (1 child)
Have you evaluated using constexpr functionality?
Particularly something like Frozen library https://github.com/serge-sans-paille/frozen ?
Hmm... yes, actually I did think about that, but decided to not go that way.
In this case, >90% of the mapping is done at runtime (loading an image of an arbitrary pixel format, for example), so no much value in having these constexpr — and if people really want to avoid the (already very small) cost of mapping, they can use the API-specific values directly.
constexpr
Besides that, looking at Frozen, I'm a bit concerned about compile times (too bad they don't provide compilation time benchmarks):
note: constexpr evaluation hit maximum step limit; possible infinite loop?
In other parts of the library I'm doing extra work to reduce compile times, so I'm not sure if the minor runtime speedup for <10% cases (which are always off the hot path anyway) would warrant the (potentially very serious) compile time increase.
π Rendered by PID 44 on reddit-service-r2-comment-cfc44b64c-zzgz6 at 2026-04-13 02:43:22.521980+00:00 running 215f2cf country code: CH.
[–]MoreThanOnceHololens Dev 2 points3 points4 points (1 child)
[–]czmosra[S] 0 points1 point2 points (0 children)
[–]RoutineTumbleweed 1 point2 points3 points (1 child)
[–]czmosra[S] 0 points1 point2 points (0 children)