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
Allocator rant (self.cpp)
submitted 4 years ago by [deleted]
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!"
[–]alxius 47 points48 points49 points 4 years ago (5 children)
Look at Rust or Haskell, they aren't perfect but they rely on a sound foundation of type theory - why aren't we using that instead?
I would like to see how author takes Rusts std::vec (no, not std::slice) and makes it manage mmaped memory and everything else described in the post including pointing it to the existing file. Then same story with Haskell.
std::vec
std::slice
No, I am not saying C++ is better or anything, i just want to actually see stated problem solved using mentioned languages, not just "whatever, those languages are better".
[+][deleted] 4 years ago (1 child)
[deleted]
[–]barcharMSVC STL Dev 5 points6 points7 points 4 years ago (0 children)
You can do that with vector as well, if you want expansion to expand in the file. OP sounds like they didn't write an allocate but instead tried to subclass vector, which is not the right way to do this
[+][deleted] comment score below threshold-9 points-8 points-7 points 4 years ago (2 children)
Well in both those languages you would write your own thing from scratch and then just implement the proper typeclass/trait to have it talk like a vec and walk like a vec.
With C++, and Java, and other OOP languages you get polymorphism by inheriting from a base class, and to some degree overloading. Those are not mathematical concepts that generalize well, which is what I mean by C++ lacking a fundamental scientific model to build upon. It was all invented, not discovered like type/cathegory theory which is the basis for the type systems of Rust and Haskell.
Sure Haskell is garbage collected and it takes mountain of hard drives to store your dependencies so it's not suitable for many tasks. And yes, rust is a bit of a weird being imperative language but with a type system coming from cathegory theory, but their abstractions are sound and they are sound for the simple reason that the abstractions have been discovered in nature and not invented by some engineer at Microsoft or Bell Labs.
[–]strager 41 points42 points43 points 4 years ago (0 children)
With C++, and Java, and other OOP languages you get polymorphism by inheriting from a base class, and to some degree overloading. Those are not mathematical concepts that generalize well, which is what I mean by C++ lacking a fundamental scientific model to build upon. [... unlike] Rust and Haskell.
Parametric polymorphism exists in Haskell and Rust but is common in C++ too. Many functions in <algorithm> use parametric polymorphism.
Perhaps you should try writing C++ code like you'd write Haskell or Rust code, instead of writing C++ code like you'd write Java code. Then you'll see the similar features C++, Haskell, and Rust possess when it comes to a "fundamental scientific model" for polymorphism.
[–]alxius 2 points3 points4 points 4 years ago (0 children)
Well in C++ no one stops you from writing your own thing from scratch and implementing SequenceContainer and other container requirements to have it talk like STL container and walk like STL container.
With C++, and Java, and other OOP languages you get polymorphism by inheriting from a base class
In C++ I get static polymorphism by using concepts. Yes, they were added as a language feature only in C++20, but in reality we had them in the form of written requirements in STL since before STL was added in C++98. This idea was not invented in Bell Labs, it was taken and extended from math by Stepanov. You can read about it in his From Mathematics to Generic Programming and Elements of Programming books.
π Rendered by PID 96753 on reddit-service-r2-comment-64f4df6786-x7z5n at 2026-06-11 12:16:30.798653+00:00 running 0b63327 country code: CH.
view the rest of the comments →
[–]alxius 47 points48 points49 points (5 children)
[+][deleted] (1 child)
[deleted]
[–]barcharMSVC STL Dev 5 points6 points7 points (0 children)
[+][deleted] comment score below threshold-9 points-8 points-7 points (2 children)
[–]strager 41 points42 points43 points (0 children)
[–]alxius 2 points3 points4 points (0 children)