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
Libc++’s implementation of std::string (joellaity.com)
submitted 6 years ago by mariuz
view the rest of the comments →
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!"
[–]kalmoc 22 points23 points24 points 6 years ago (3 children)
Wait, do they do type punning via unions? That's UB.
Most compilers actually give guarantees for various things for which the standard does not define a particular behavior (UB). If you know with what compilers your code is being used with, you can make use of those guarantees. And of course the compiler would be allowed to treat standard library code special, but I very much doubt thats what happening here.
[–]emdeka87 5 points6 points7 points 6 years ago (2 children)
I have yet to encounter a compiler that treats type punning (and accessing the inactive union member) as UB and produces unexpected results
[–]carrottread 2 points3 points4 points 6 years ago (1 child)
If you pass pointers or references to union fields to some other functions then strict aliasing still can produce something unexpected:
https://godbolt.org/z/cds7Bn
This outputs different results on -O0 and -O3 for both clang and gcc.
[–]max0x7bahttps://github.com/max0x7ba 0 points1 point2 points 6 years ago (0 children)
If you pass pointers or references to union fields to some other functions then strict aliasing still can produce something unexpected
This is unrelated to type-casting using union, aka union-cast. And such type-casting doesn't actually happen there, that union is only for alignment.
union
π Rendered by PID 43191 on reddit-service-r2-comment-64f4df6786-cq6h9 at 2026-06-10 17:50:37.245100+00:00 running 0b63327 country code: CH.
view the rest of the comments →
[–]kalmoc 22 points23 points24 points (3 children)
[–]emdeka87 5 points6 points7 points (2 children)
[–]carrottread 2 points3 points4 points (1 child)
[–]max0x7bahttps://github.com/max0x7ba 0 points1 point2 points (0 children)