ch
Feedback
C++ - Reddit

C++ - Reddit

前往频道在 Telegram

Stay up-to-date with everything C++! Content directly fetched from the subreddit just for you. Join our group for discussions : @programminginc Powered by : @r_channels

显示更多
229
订阅者
+124 小时
+17
+230
帖子存档
std::array in C++ is faster than array in C. Sometimes https://pvs-studio.com/en/blog/posts/cpp/1231/ https://redd.it/1j4w8tq @r_cpp

Is it OK to move unique_ptr's between different program modules? (DLL's and EXE's) I'm developing an application framework where functionality can be extended via DLL modules. Part of framework tooling includes an ability to edit "Resources" defined within each module via "Properties". So I have property and resource interfaces defined by the framework that look like this (in "Framework.exe"): `class IProperty {` `public:` `virtual handleInput(Event& event) = 0;` `};` `class IResource {` `public:` `virtual std::vector<std::unique_ptr<IProperty>> getProperties() = 0;` `};` So a simple resource implementing this interface within a module might look like this (in "MyModule.dll"): `class Colour : public IResource {` `public:` `std::vector<std::unique_ptr<IProperty>> getProperties() override {` `std::vector<std::unique_ptr<IProperty>> mProperties;` `mProperties.emplace_back(std::make_unique<PropertyFloat>("Red", &cRed));` `mProperties.emplace_back(std::make_unique<PropertyFloat>("Green", &cGreen));` `mProperties.emplace_back(std::make_unique<PropertyFloat>("Blue", &cBlue));` `return mProperties;` `}` `private:` `float cRed;` `float cGreen;` `float cBlue;` `};` Now let's say we have functionality in the framework tooling to edit a resource via it's properties, we can do something like this (in "Framework.exe"): `void editResource(IResource& resource) {` `std::vector<std::unique_ptr<IProperty>> mProperties = resource.getProperties();` `// Call some functions to edit the obtained properties as desired.` `// ...` `// Property editing is finished. All the properties are destroyed when the vector of unique_ptr's goes out of scope.` `}` I've implemented it this way with the aim of following RAII design pattern, and everything seems to be working as expected, but I'm concerned that the properties are constructed in "MyModule.dll", but then destructed in "Framework.exe", and I'm not sure if this is OK, since my understanding is that memory should be freed by the same module in which it was allocated. Am I right to be concerned about this? Is this technically undefined behaviour? Do I need to adjust my design to make it correct? https://redd.it/1j4vie9 @r_cpp

MSVC C++20 compiler bug with modules and non-exported classes Full repro is available as a git repository here: https://github.com/abuehl/mod\_test If two non-exported classes from different C++ module interface units have the same name, the compiler uses the wrong class definition and for example calls the wrong destructor on an object. Reported here: https://developercommunity.visualstudio.com/t/post/10863347 (Upvotes appreciated) Found while converting our product to using C++20 modules. https://redd.it/1j4uepj @r_cpp

Getting ready for modules: porting one of my projects. Discussing file naming, strategies for module naming and more. Hello everyone, I have decided to start porting one of my projects to C++ modules making use of the latest big three compilers, sticking to preview GCC15 for Linux. The plan is to port libraries, one at a time, from a static library with headers to a CMI with whatever I need I am guessing. And I have some questions/discussion. # File naming conventions (extension) There are four kinds of module units: module interface units, module implementation units, module partition interface units and module partition implementation units. What should I use and why? I plan to settle with .cppm for interface modules .cppmi for module implementation, .cppmp for module partition interface unit and .cppmpi for module partition implementation, if I need all those. Any other schemes I should try or avoid like the plague? # File naming conventions (namespaces and module names) Should I establish a correspondence between namespaces and folders? Currently I have a two-levels namespace, a bunch of "modules" (in the sense of library + headers per "module"), called TopProjectns::Modulewith corresponding src/TopProjectns/Module folder for both cpp and hpp files. Maybe creating a folder (this will be an incremental non-intrusive port that does not touch the current structure, in parallel) like modules-src/TopProjectns.Module is a good idea? # Build tools I am currently using Meson. Unfortunately the module support is so so. Any hacks, recommendations for integrating module building, especially build order, in Meson? I would like to not have to port the full build system. # Compiler flags and module cache A bit lost here, especially in the build order. I expect to have to add flags by hand to some extent bc I want a unified file extension convention. Any recommendations? # Package consumption I need to consume dependencies, mostly pkg-confog given via Conan. # Consuming my project modules (before my static libraries) as modules for other modules Not sure how this will be done currently. But I guess that object/library files + cmi interface are needed. # Code completion Does LSP work for modules partially or totally? # IDE Recognising file extensions as C++. I think this will be easy in Emacs it is just adding a couple of lines of Lisp... Suggestions and previous experiences of what to do/avoid are very welcome. https://redd.it/1j4t8t9 @r_cpp

Sourcetrail 2025.3.3 released Hi everybody, Sourcetrail 2025.3.3, a C++/Java source explorer, has been released with small updates to the Java Indexer, namely: Add support for Eclipse JDT 3.40 (Java 23) Update Gradle support to 8.12 Unfortunately, I can't post an announcement for this release in the Java subreddit, but maybe for some C++/Java developer here, this is also of interest. https://redd.it/1j4swyb @r_cpp

gnuplot with C++ I'm trying to write a program in C++ using gnuplot, but I can't. I get the message " 'gnuplot' is not recognized as an internal or external command, operable program or batch file". Please help me fix this. Here is the code: #include <iostream> #include <fstream> #include <cmath> using namespace std; #define GNUPLOTNAME "gnuplot -persist" struct Point { double x, y; }; class Figure { int num; Point *coord; public: Figure() {}; Figure(int num, Point _coord) { num = _num; coord = new Point[num + 1]; for (int i = 0; i < num; i++) coord[i] = _coord[i]; coord[num] = _coord[0]; } ~Figure() { num = 0; delete[] coord; coord = nullptr; } void save(string nameOfFile, int a) { ofstream file; file.open(nameOfFile + ".txt"); { for (int i = 0; i < num; i++) { if (coord[i].x == 0.0 && coord[i].y == 0.0) file << "\n"; else file << coord[i].x << " " << coord[i].y << endl; } if (a == 1) file << coord[0].x << " " << coord[0].y << endl; file.close(); } } void DrawLines(const string nameOfFile, int a) { string str; if (a == 1) str = "set grid\nset xrange[-5:15]\nset yrange[-2:10]\nplot \"" + nameOfFile + ".txt" + "\" lt 7 w lp\n"; if (a == 2) str = "set grid\nset xrange[-5:15]\nset yrange[-2:10]\nplot \"" + nameOfFile + ".txt" + "\" lt 7 w p\n"; FILE pipe = popen(GNUPLOTNAME, "w"); if (pipe != NULL) { fprintf(pipe, "%s", str.cstr()); fflush(pipe); pclose(pipe); } } }; int main(void) { int l1 = 3, l2 = 3; Point p1l1; Point p2l2; p10 = {1.0, 0.0}; p11 = {1.0, 6.0}; p12 = {8.0, 3.0}; // p13 = {6.0, 0.0}; p20 = {2.0, 1.0}; p21 = {2.0, 2.0}; p22 = {4.0, 4.0}; // p23 = {3.0, 1.0}; Figure z1(l1, p1); z1.save("z1", 1); z1.DrawLines("z1", 1); Figure z2(l2, p2); z2.save("z2", 1); z2.DrawLines("z2", 1); return 0; } https://redd.it/1j4rthn @r_cpp

Game development C++ Im making a dungeon escape game and im confused Should i do Allegro Or SFML Or what other Also in Visual Studio 2022 It ask for me what to download Which do i click Desktop development with c++ Mobile development with c++ Gane development with c++ Pls help lol First time game maker https://redd.it/1j4rczb @r_cpp

Looking for C++ formatter/linter combo like Prettier for Visual Studio I'm fairly new to C++ development and using Visual Studio (not VSCode) as my IDE. Coming from a JavaScript background, I really miss the convenience of Prettier for auto-formatting and ESLint for catching issues. Does anyone have recommendations for: 1. A good C++ formatter that can auto-format my code on save (similar to Prettier) 2. A reliable C++ linter that can catch common errors and style issues 3. Ideally something that integrates well with Visual Studio I'm working on a small personal project and finding myself spending too much time on formatting and dealing with simple mistakes that a linter would catch. Any suggestions from experienced C++ devs would be much appreciated! https://redd.it/1j4ql0j @r_cpp

Another Tool for Checking Library Level API and ABI Compatibility Hi Everyone, A few years ago I created a tool that can detect library level API and ABI compatibility breaking changes based on source code, as my thesis project. Recently, I decided to make it public, so that it might come in handy to some people. If you're interested, you can find it at github.com/isuckatcs/abicorn-on-graduation-ceremony https://redd.it/1j4hb61 @r_cpp

Web sockets in c++ Can you recommend a library that helps you connect to ws in cpp? Ive always used websocketpp but Ive seen that the last commit on github was about 5 years ago, are there any other good libraries I can use? Thanks https://redd.it/1j45w3e @r_cpp

Making a 3d desktop app Hey guys, I want to make a 3d desktop app in c++ for showing the 3d orientation and the graphs of roll, pitch and yaw. It gets this information from serial port. But I sk at opengl. What library or turorials would you suggest? https://redd.it/1j3xcyp @r_cpp

So need some project ideas in C++ So our uni will have a project expo type which will entirely focus on C++. I don't want to make those library, school, hotel management system because I already have made them and 5-6 of them with all types of modifications already a year ago. I want something advanced to work on. Then comes toc tac toe, hangman, guessing,sudoku and chess game which I can make but I think many people will be making that as there are a lot of versions of it freely available on github and YouTube using the Qt library So, I have thought to make a python compiler in C++ using the lexer, ast and parser things like basic ones which will handle basic operations and maybe I will make it good.I only have 3 weeks to make it. I'm a first year.so suggest some accordingly Any other ideas please help guys!! https://redd.it/1j3tc93 @r_cpp

Lets talk about optimizations I work in embedded signal processing in automotive (C++). I am interested in learning about low latency and clever data structures. Most of my optimizations were on the signal processing algorithms and use circular buffers. My work doesnt require to fiddle with kernels and SIMD. How about you? Please share your stories. https://redd.it/1j3i0di @r_cpp

List comprehension using operator overloading I created list comprehension using operator overloading in C++. It's a novelty more than anything, as it uses a bunch of template magic, so compile times skyrocket. But it was quite fun to put together. https://github.com/KaixoCode/list\_comprehension https://redd.it/1j3iofg @r_cpp

How to implement global manager correctly I am making a game and need a manager that has a vector of all game Entities. I implemented it and wrote extern UnitManager um; in header and UnitManager um; in .cpp But i have been hearing that global variables are bad practice. But it works as for now https://redd.it/1j37bkn @r_cpp

worth brushing off c++ skills to get in finance in 2025? Hi mates, currently a BA in trading industry and a 2023 grad in B.eng. in SWE. Want to switch into investment analyst/ risk analyst roles and not sure if c++ can help me along the way. p.s: interested in trading with python. would c++ make a difference as a skillset? https://redd.it/1j36ibx @r_cpp

Well worth a look! Look what I found! A nice collection of C++ stuff, from window creation to audio. All header only. Permissive licence. A huge collection of utility functions & classes. Written by the Godfather of JUCE, Julian Storer. All looks pretty high quality to me. Handles HTTP (including web sockets), too. The only downside I can see here is that you need Boost for the http stuff. Boost beast to be precise, and this is all documented in the header files. CHOC: "Classy Header Only Classes" https://github.com/Tracktion/choc Here is a link to a video explaining and justifying this library <iframe width="722" height="406" src="https://www.youtube.com/embed/wnlOytci2o4" title="CHOC: Why Can\&#39;t I Stop Writing C++ Libraries or Using Backronyms? - Julian Storer - ADC22" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe> https://redd.it/1j33fkq @r_cpp

I'm scared of c++ I find C++ really intimidating. I don't understand any of this code with pointers, reference, 100 different kinds of int, etc. It all looks like spagetti to me and everytime I tried to learn it gave me a headache. How do I get over my phobia of learning c++? https://redd.it/1j2z781 @r_cpp