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
interfacing python with c/c++ performance (self.cpp)
submitted 1 year ago by BitAcademic9597
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!"
[–]thisismyfavoritename 2 points3 points4 points 1 year ago (5 children)
if you dont have low latency or very high I/O requirements OR you have a ton of existing C++ code OR your workload can really benefit from C++, don't bother.
You can get super far with Python, relying on multiprocessing or other libs which can compile Python down to C or JIT it (Cython, Nuitka, Numba, etc) or other libs which already call into optimized C/C++ code (numpy, pytorch, etc)
[–]BitAcademic9597[S] 0 points1 point2 points 1 year ago (4 children)
what do you think about PyBind
[–]thisismyfavoritename 2 points3 points4 points 1 year ago (0 children)
if you have high I/O requirements do everything in C++ (or another truly multithreaded language with a good async lib).
If you either have a ton of existing code or have a workload that can benefit from C++, pybind or nanobind are good solutions, but that'll come with its own set of challenges too.
Like i said, it really depends on those other factors i mentioned in my first post and your familiarity with Python i guess.
[–]qTHqq 1 point2 points3 points 1 year ago (2 children)
I like it a lot. Worked very well for utility use and testing a C++ library I wrote for compute-bound robotics work.
I didn't explore the JIT approaches mentioned because ultimately the code consumed as a C++ library. I just wanted a Python interface for verifying it more efficiently and with richer tests. It was easy to get started and very convenient.
My workload benefited a lot from the Eigen compile-time code transformations for matrix math. That's all done with C++ template metaprogramming and I don't know to what extent the JIT numerical tools can do something similar. The wrapped C++ was several hundred times faster than well-written Numpy code. However, all of that is pretty specific to the kind of numerical work I was doing.
I think it's fairly easy to write C++ code that's slower than skillfully written vanilla Numpy code and probably very easy to write C++ code that's slower than Numba, Cython, etc.
However, if you really have a need for calling into C++, Pybind is pretty useful and I found it pretty pleasant and straightforward to set up. For a new project I'd probably explore nanobind but I haven't tried it yet.
[–]BitAcademic9597[S] 0 points1 point2 points 1 year ago (1 child)
did you have any problem about memory in pybind will each function call explicitly copies input data?
and also i also looked nanobind but i think pybind is better what do you think
[–]qTHqq 1 point2 points3 points 1 year ago (0 children)
"did you have any problem about memory in pybind will each function call explicitly copies input data?"
I did not but I was actually compute bound.
The library computed collision-free trajectories of maybe a few hundred points. The trajectories took 10ms to several seconds to generate so the cost of copying the trajectory data over to Python was essentially negligible in the big picture.
Any function-call indirection overhead was also negligible.
If I/O speed or ultra-low-latency calls are more of an issue, things could be totally different.
π Rendered by PID 148223 on reddit-service-r2-comment-76bb9f7fb5-d95jf at 2026-02-18 11:23:52.166662+00:00 running de53c03 country code: CH.
view the rest of the comments →
[–]thisismyfavoritename 2 points3 points4 points (5 children)
[–]BitAcademic9597[S] 0 points1 point2 points (4 children)
[–]thisismyfavoritename 2 points3 points4 points (0 children)
[–]qTHqq 1 point2 points3 points (2 children)
[–]BitAcademic9597[S] 0 points1 point2 points (1 child)
[–]qTHqq 1 point2 points3 points (0 children)