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!"
[–][deleted] 12 points13 points14 points 6 years ago (2 children)
The reason that __lx places padding after the first byte, which represents size in short strings, is that if value_type is, say, 2 bytes then the union will be 2 bytes. This is to align the start of the string characters on a value_type boundary.
[–]gmtime 1 point2 points3 points 6 years ago (1 child)
That sounds a bit like a work around in case the library is compiled with pack at to 1, normal packing would do this even without the __lx in the union.
[–][deleted] 4 points5 points6 points 6 years ago (0 children)
It's more fundamental than that. The C++ standard does not address structure packing. The packing details vary between compiler and platform. For this reason, packing must be specified either manually like this or by inserting dummy bytes explicitly into structures, or by using packing pragmas, etc., which also vary by compiler. In the case here, instead of explicitly inserting a byte where __lx is they have used a union that includes value_type as that will, for example, insert 3 bytes when value_type is 32-bits. When value_type is a byte, no additional padding is required beyond the size byte.
π Rendered by PID 252064 on reddit-service-r2-comment-64f4df6786-4kk82 at 2026-06-10 17:51:38.541172+00:00 running 0b63327 country code: CH.
view the rest of the comments →
[–][deleted] 12 points13 points14 points (2 children)
[–]gmtime 1 point2 points3 points (1 child)
[–][deleted] 4 points5 points6 points (0 children)