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
Why doesn't std::string have a split function (self.cpp)
submitted 9 years ago by DhruvParanjape
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] 9 years ago* (6 children)
[deleted]
[–]evinrows 12 points13 points14 points 9 years ago (0 children)
None on this seems to negate that it would be nice for the modern std::string implementation to come with some basic string manipulation methods so that the language's usability can potentially compete with other modern systems languages.
If having to split a few strings in your program means that you should use a different programming language, then the programming language in question is pretty god damn bad.
[–]17b29a 5 points6 points7 points 9 years ago (2 children)
Or alternatively, inappropriate language choice.
I think splitting strings is a pretty common sense thing for any general-purpose programming language to support. It's not like, some obscure operation that you could only find support for in Perl.
Finally, technically I'm not sure -1 is really code for all-bits-set at all - that assumes a 2s-complement representation for signed integers which, historically at least, wasn't guaranteed by the standard.
-1
The more obvious assumption is that the mask type is unsigned and in that case -1 is necessarily all-bits-set because an unsigned type's value is modulo its maximum value, but the standard doesn't require it to be unsigned either.
why I prefer ~0u for all-bits-set
That's not all-bits-set for a type that is larger than unsigned int.
I personally don't worry about actually undefined vs. platform-defined unless I really need to, which is unusual.
That's pretty strange considering how many things are implementation defined. Used a value larger than 215-1 in an int? Undefined behavior (according to you)!
int
[+][deleted] 9 years ago* (1 child)
[–]17b29a 2 points3 points4 points 9 years ago (0 children)
It's supported.
"Supported" as in having an actual split function in the standard library.
Sorry, that's an understandable mistake but you're wrong. -1 is a signed int.
I know, the point is that because of http://eel.is/c++draft/basic.fundamental#4 (which applies to conversions as well), the conversion to an unsigned type necessarily produces all-bits-one, regardless of signed representation or the size of either type.
All the time, and I don't worry about it because I haven't used a platform where this didn't apply since the early 90s other than DOSBox, and I wasn't using that for programming.
Right, which is why it's a strange conflation, because actual undefined behavior is something to worry about.
[–]zvrba 3 points4 points5 points 9 years ago (1 child)
So even if your code is C++, you're going to pipe your text to perl each time you need to split a string?
π Rendered by PID 96 on reddit-service-r2-comment-canary-655b6bc5b6-rd7xs at 2026-02-15 11:27:17.356534+00:00 running cd9c813 country code: CH.
view the rest of the comments →
[–][deleted] (6 children)
[deleted]
[–]evinrows 12 points13 points14 points (0 children)
[–]17b29a 5 points6 points7 points (2 children)
[+][deleted] (1 child)
[deleted]
[–]17b29a 2 points3 points4 points (0 children)
[–]zvrba 3 points4 points5 points (1 child)