How to create subroutines at runtime?
Sorry if this is a noob question.
At some point during runtime, the code will receive some data. It will perform some very time-consuming operations, and execute a set of instructions according to the data.
How would I store the set of instructions so that they can be carried out again without doing the operations again on the data? There are infinite combinations possible so I can’t enumerate the output.
I’m looking for some way to create a function at runtime and write to it from elsewhere on the code but I have no idea how to go about it - is something like this possible?
https://redd.it/1e12e35
@r_cpp
Is there a easy way to install opencv using vcpkg on linux?
I started using vcpkg on one of my latest project because I saw a lot of praise on the internet about how vcpkg has improved developers' lives. I was intrigued. The installation and CMake integration went well. Small packages were easily installed when I ran CMake.
All hell breaks loose when I try to install opencv. It installs some dependencies and then fails, stating some packages are required to be installed in system package manager (in my case apt
). Fine, I go with it and rerun the build. It fails again stating the same thing but for a different dependency and different system packages required. I again complied and it again failed for a different dependency. I was really starting to get irritated, but anyway, I kept installing packages as it told me. After about 2 or so more tries, it failed on gtk3
with absolutely no explanation. There were no errors in any of the log files either.
This left me really annoyed. If I have to install all these dependencies on the system myself even though I am using a package manager, why shouldn't I just list the dependencies on a Readme file and ask the user to install it themselves on their system (at least for something like opencv)?
Is there a solution to this problem? Am I missing something or is this a common experience? I heard a lot of good things about vcpkg, therefore I still think I may not know something which causing me this agony.
https://redd.it/1e0ptuc
@r_cpp
Requires in class member
Hi! I was writing some code and I wanted to use the `requires` clause. I noticed that MVSC rejects this code with the error "unable to match function definition to an existing declaration" while GCC compiles it successfully:
#include <type_traits>
struct B {
struct A {
using TVect = int;
using TQueue = float;
template <typename T> constexpr static bool isDesiredType
= std::is_same_v<TVect, T> || std::is_same_v<TQueue, T>;
};
template <typename T>
requires A::isDesiredType<T>
static T myFunc(int a);
};
template <typename T>
requires B::A::isDesiredType<T>
T B::myFunc(int a) {
return T{};
}
int main(const int argc, char** argv) {
B b;
b.myFunc<B::A::TVect>(1);
b.myFunc<B::A::TQueue>(2);
}
GodBolt for MSVC: [https://godbolt.org/z/qhEov5P33](https://godbolt.org/z/qhEov5P33)
GodBolt for GCC: [https://godbolt.org/z/jon88haGd](https://godbolt.org/z/jon88haGd)
Is this a compiler bug or should this function be rejected? If so, how can I notify MSVC developers about this?
Also, if I remove the `requires` clause or if I move `A` outside of `B`, the code compiles just fine.
https://redd.it/1e0qxto
@r_cpp
Matrix Calculation C++ (Python numpy -> C++ ?)
Hi, I need some advice or direction. I want to bring a machine learning algorithm from python to C++ so I can run it on an Arduino. Can someone give me some advice what library I can use for replacement for NumPy?
(FYI: I only needed basic matrix calculations, and won't run the algorithm in parallel.)
https://redd.it/1e0pkyx
@r_cpp
Best code editors to write C++ programs?
I have always used VS code to write programs of any kind, but when it comes to C++ it always give me the same error of "the prelaunchtask c/c++: gcc build active file terminated with exit code -1" at compile time and it is a recurring problem. As I have seen on the internet it is a common error that happens recurringly to a lot of people too so I am looking for an alternative for writing my code and I am tired of having to constantly look for different solutions that don't work and having the error pop up again after I fix it. What is a good alternative to VS studio code that lets you write C++ and compile smoothly?
https://redd.it/1e08n2b
@r_cpp
C++ Unit Testing Library With Hooks
Did anyone hear of a UT library that utilizes hooks to perform the mocks?
For comparison, you have gMock today, which works great.
However, to use gMock, you must design your code in a "testable" way - i.e. factories everywhere, interfaces (even if there's only one clear implementation...), and more inconveniences.
I'm imagining a library very similar to gMock, which instead of utilizing inheritance & polymorphism
to create mocks, utilizes hooking a function or a member function, with the necessary mock logic, thus saving you the hassle of complicated your code with unnecessary interfaces.
https://redd.it/1e040ik
@r_cpp
Coroutines in C++
A beginner's guide to the seven coroutine types:
https://itnext.io/daily-bit-e-of-c-coroutines-step-by-step-e726b976d239?source=friends_link&sk=4c4b8231751c57b8c2a6ce0d02d0704d
https://redd.it/1dzx1ug
@r_cpp
Vectorlite: a fast vector search extension for SQLite
Hi reddit, I write a sqlite extension in c++17 for fast vector search. 1yefuwang1/vectorlite: Fast vector search for SQLite (github.com)
# Some highlights
1. Fast ANN-search backed by hnswlib. Compared with existing sqlite extension https://github.com/asg017/sqlite-vss, vectorlite is 10x faster in inserting vectors, 2x-40x faster in searching (depending on HNSW parameters with speed-accuracy tradeoff).
2. Works on Windows, Linux and MacOS.
3. SIMD accelerated vector distance calculation for x86 platform, using vector_distance()
4. Supports all vector distance types provided by hnswlib: l2(squared l2), cosine, ip(inner product. I do not recomend you to use it though). For more info please check hnswlib's doc.
5. Full control over HNSW parameters for performance tuning.
6. Metadata(rowid) filter pushdown support (requires sqlite version >= 3.38).
7. Index serde support. A vectorlite table can be saved to a file, and be reloaded from it. Index files created by hnswlib can also be loaded by vectorlite.
8. Vector json serde support using vector_from_json()
and vector_to_json()
.
It is now pre-compiled and distributed as python wheels and can be installed using pip.
Vectorlite is still in early stage. Any feedback and suggestions would be appreciated.
https://redd.it/1dznijh
@r_cpp
Just Uploaded a Video on Mastering the sizeof Operator in C++ - Check it Out! 🚀
https://www.youtube.com/watch?v=DuiCjk2ksfc
https://redd.it/1dz6ibu
@r_cpp
Bookshop management system website
Hello I have to create a bookshop management system website using C++ for my internship but I am not quite sure what to do about the frontend development. Do you have any tips, can you give me some more information please? Or should I use another language for the frontend development and then connect it with the backend?
https://redd.it/1dz3pgn
@r_cpp
C++ DataFrame now has much improved documentation
We have significantly enhanced C++ DataFrame documentation. It now includes:
1. Explanation and code samples for every API
2. Better visual arrangements
3. Explanation for concepts such as multithreading, SIMD, ... and how to use them in DataFrame applications
4. Explanations and reasoning behind DataFrame design decisions, data structures, and constructs
5. Detailed explanation for benchmarks
6. References/links to other relevant sites
I am not an expert in documentation. The main purpose of this post is to get your feedback about the documentation and README content and visuals.
Thanks,
https://redd.it/1dyzzwu
@r_cpp
C++ Code Coverage for Compile Time Analysis
I just read the clang 19 docs https://clang.llvm.org/docs/SourceBasedCodeCoverage.html on source based code coverage. At work I am regularly using gcc code coverage with the excellent gcov plugin for vscode.
With both compilers I notice it is possible to determine template instantiations that have executed. The analysis has info on the computed types of each executed template instantiation which is straight from the compiler itself. The key is that the code coverage "anchors" the template code to a given instantiation such that then one can see the consequences in complex templates. clangd has no facility to do this "anchoring" and thus can only inform regarding the general aspects of template code.
I find using compiler based code coverage makes it is possible to work out dependent types and see useful info about what template code is doing in otherwise complex dependently typed contexts where clangd would not help much. I assume this is the same for CLion / Visual Studio etc.
Hopefully code coverage has a future where it integrates with clangd ( and others ) and sensible workflow to improve in this direction where we need to anchor a template instantiation so that one can interrogate complex templates. Imagine having clangd inlay hints but with a specified "anchor" where it could tell you the actual types of auto and alias declarations.
Very interested if others have found useful workflow with code coverage analysis in C++ especially in terms of compile time aspects.
https://redd.it/1dyuoes
@r_cpp
Has anyone successfully gotten MVSC to work WITHOUT Visual Studio? How?
https://redd.it/1dyoj10
@r_cpp
John Farrier - C++ Error Handling Strategies - Benchmarks and Performance
https://johnfarrier.com/c-error-handling-strategies-benchmarks-and-performance/
https://redd.it/1dyjb7v
@r_cpp
New C++ Conference Videos Released This Month - July 2024
This month the following C++ videos have been published to YouTube. A new post will be made each week as more videos are released
**ACCU Conference**
07/01/2024 - 07/07/2024
* How to Maximize the Benefits of Neurodiversity in Software Development Teams and Support Neurodivergent Developers - Dom Davis - [https://youtu.be/bt25w\_O05KI](https://youtu.be/bt25w_O05KI)
* Future of Software Programming with AI Bots at Hand - Amir Kirsh - [https://youtu.be/bz7M6rOKZLo](https://youtu.be/bz7M6rOKZLo)
* Contracts for C++ - Timur Doumler - [https://youtu.be/lHRyuTFig0U](https://youtu.be/lHRyuTFig0U)
**C++Online**
07/01/2024 - 07/07/2024
* Lightning Talk: Keeping Up to LLVM IR: An Introduction to LLVM IR - Isaac David Bermudez Lara - [https://youtu.be/5FbhwOxoJsg](https://youtu.be/5FbhwOxoJsg)
* Lightning Talk: Use SIMD Pairwise Reduction in C++! - Andrew Drakeford - [https://youtu.be/QYkU0u9M9Mg](https://youtu.be/QYkU0u9M9Mg)
* Lightning Talk: Why False Is Less Than True in Boolean Algebra - Ben Deane - [https://youtu.be/vAwYP0Ox96I](https://youtu.be/vAwYP0Ox96I)
**Audio Developer Conference**
07/01/2024 - 07/07/2024
* Creating Ubiquitous, Composable, Performant DSP Modules - Stefano D’Angelo - [https://youtu.be/lKhVtbnILDk](https://youtu.be/lKhVtbnILDk)
* Running High Channel Count Audio Applications on Linux RT - Olivier Petit - [https://youtu.be/1TgzjOoiqIs](https://youtu.be/1TgzjOoiqIs)
* Odd Challenges of Using Deep Learning in Designing a Feedback Delay Network Reverb - ADC23 - [https://youtu.be/5URLvwFmlb0](https://youtu.be/5URLvwFmlb0)
https://redd.it/1dyc9ss
@r_cpp
Can this book still be relevant for learning C++?
https://www.goodreads.com/book/show/115703.C_
https://redd.it/1e0usvs
@r_cpp
Can C++26 reflection allow one to create a vector of a base class type and store classes derived from that base class without using smart pointers?
https://redd.it/1e0q8wt
@r_cpp
What should I do?
I love programming, I know cpp and python, but I don't think I have achieved much, I have attended a few hackathons in which I learn some stuff about ml and ai, I have made github projects and all that but I feel like I haven't achieved anything great, there were weekly hackathons which had little challenges I scored in the top 1% programmers as well, currently I am learning game dev in Cpp, but I feel I haven't done anything and only learnt stuff, for context I'm 16 years old and coding since I was around 13-14, I had early exposure to computer and fiddled with the hardware since I am 8 years old. What should I do?
https://redd.it/1e0rdqd
@r_cpp
Combining Histograms Not Working
So I am writing code to combine histograms found within root files. I am running in ubuntu wsl, root is set up to work, the files are named after the following format "combined_run_13_DY.root", the histogram names are correct (although I did also try with 1; and _ as seen in the image below), the files that I have been inputting are correct, their directory structure is also correct, the histograms are also filled, which is why I am posting this. It seems like it should work (it was actually working before), but it doesn't. Here is an image of the root browser looking at an example file structure.
https://redd.it/1e0iw5t
@r_cpp
PhysX Engine Tutorial
I'm currently trying to play around with OpenGL and computer graphics; Recently I've noticed that people are creating interesting stuff with just physics engines like Bullet/PhysX and c++. I'd like to know why there's no tutorial or course for learning a great physics engine like PhysX. There's nothing other than documentation that can be confusing to follow.
I would definitely like to learn PhysX, but I don't know where to start.
https://redd.it/1e06lu6
@r_cpp
A fantasy roguelike I’ve been solo-developing
https://store.steampowered.com/app/2266780/Ascendant/
https://redd.it/1e049ir
@r_cpp
C++ Developer Career Path for BCA Graduates (2024)
I am pursuing a BCA and wish to build a career in C++ development. What is the average salary of a C/C++ developer in India in 2024, and what skills are necessary to secure a job as a C/C++ developer as a BCA fresher ?
https://redd.it/1dzp6g6
@r_cpp
Integer Types
What's up guys I'm new to C++. I have a question on the integers. I understand what short, int, long, long long, essentially "means". I know their definitions. My question is why are they important and what is the purpose of using them in the first place??
https://redd.it/1dzkf97
@r_cpp
Implicit/Explicit Constructures
How do we know that what method we need to use during constructure call in a certain programming?
(When is implict method used and when is explixit?)
https://redd.it/1dz6jxd
@r_cpp
Will Herb Sutter's cpp2 eventually evolve to a usable language?
Or it remains just a personal experimentation toy?
Github: [https://github.com/hsutter/cppfront?tab=readme-ov-file](https://github.com/hsutter/cppfront?tab=readme-ov-file)
Documentation: https://hsutter.github.io/cppfront/
A short intro: [https://www.youtube.com/watch?v=z5o5pu3FOfg](https://www.youtube.com/watch?v=z5o5pu3FOfg)
A review: https://www.youtube.com/watch?v=ZslemeHsOjk&t=526s
https://redd.it/1dz2hyp
@r_cpp
VS Code slow in a medium project, clangd
Hi!!!
Working in my personal project with Cmake, conan + SDL2. Vs Code start to slow down. When I edit some file, takes some time to show if is an error, warning, etc...
I am using linux (openSUSE TW), gcc/g++ 13.3, clang 18.1.8
Also, in cmake I use this, to get all files in src:
file(GLOBRECURSE GAMEPROTOTYPE00
CONFIGUREDEPENDS
"src/."
)
This is my config in VSCode:
"cmake.revealLog": "never",
"cmake.buildBeforeRun": true,
"cmake.configureOnOpen": false,
"cmake.buildDirectory": "${workspaceFolder}/build/${buildType}",
"cmake.showOptionsMovedNotification": false,
--
"clangd.arguments":
"--clang-tidy",
"--malloc-trim",
"-log=verbose",
"-pretty",
"--pch-storage=memory",
"--header-insertion=never",
"--background-index",
"--compile-commands-dir=build/Debug/",
"-j=8",
,
"clangd.onConfigChanged": "restart",
"clangd.restartAfterCrash": true,
"clangd.detectExtensionConflicts": false,
"clangd.serverCompletionRanking": true,
--
"CCpp.autocompleteAddParentheses": true,
"CCpp.intelliSenseEngine": "disabled",
"CCpp.autocomplete": "disabled",
"CCpp.errorSquiggles": "disabled",
https://redd.it/1dywr63
@r_cpp
What's the point of std::monostate? You can't do anything with it! - The Old New Thing
https://devblogs.microsoft.com/oldnewthing/20240708-00/?p=109959
https://redd.it/1dyuu08
@r_cpp
Libraries with REST requests using coroutines?
Hello,
I'm trying to find a C++ library that offers REST operations with coroutine support. My goal is to make different calls on a single thread without each blocking the other while waiting for responses. I'm looking for something higher-level than combining Boost.Asio and Beast, but not a full-fledged framework. It should have active development and be production-ready. Does anyone know if such a library exists?
I have also looked into cppcoro, but it doesn't seem to be production-ready. In fact, it looks abandoned.
Thank you!
https://redd.it/1dykd7a
@r_cpp
why is fuzzing cpp less popular in industry than SAST?
fuzzing proves when a bug is found by giving you a test vector for your test fuzz harness, while most sast tools just seem to be a pattern matcher. Yet I don't see a lot of fuzzing used in industry. OTOH, fuzzing seems to be very popular in rust.
Are there verticals in industry where fuzzing cpp is heavily used?
https://redd.it/1dyj0f5
@r_cpp
erroneous behavior. This is similar to how `std::unreachable` is always undefined behavior. This can enable libraries to define, contain, and diagnose their own erroneous behavior without needing compiler-specific hooks to do so.
Progress on [profiles](https://wg21.link/P3274) is slow going. We did get agreement in SG23 on using an attribute-like syntax for declaring profiles. So something along the lines of `[[ Profiles::enable(...) ]]`, instead of something like `profiles enable(...)`. The attribute-like syntax will make it easier to enable profiles in code that needs to be compiled in new standards and old standards.
Sean Baxter presented on memory safety and borrow checking in C++. This was similar to his [Safe C++ talk on YouTube](https://www.youtube.com/watch?v=5Q1awoAwBgQ). This approach has a lot of promise, and SG23 heavily encouraged more work in this area.
__POLL: We should promise more committee time on borrow checking, knowing that our time is scarce and this will leave less time for other work.__
|StronglyFavor|WeaklyFavor|Neutral|WeaklyAgainst|StronglyAgainst|
|-|-|-|-|-|
|20|7|1|0|0|
I am hopeful that some aspects of profiles and borrow checking can be merged and made complementary to each other. Perhaps the profile enable syntax can be used instead of the `#feature` approach that circle has. Maybe `unsafe` code can indicate which varieties of safety are being discarded. And maybe borrow checking can be the answer / implementation to several of the more ambitious profiles.
https://redd.it/1dyb44v
@r_cpp