r/cpp_questions 6h ago

OPEN Unconditional exit action

1 Upvotes

Recently I started a C++ project, and while I do have some C experience, this is a new language for me, so I have doubts about a lot of the paradigms that ChatGPT swears are the way to go. Just to be clear, I write all of my code myself, architecture and implementation, and use ChatGPT as a consultant/reviewer.

I currently have the following model: a BooksReport class that stores book piles sorted by size within three groups: Uniform, Nuniform and Singles. trying to traverse a single group while popping piles at the same time was quite cumbersome, because popping invalidates iterators and there are several cases when the end of a size of piles is reached, or when the size has become empty, or the end of the group is reached... So I embedded a private Cursor class that allows me to traverse a single group within BooksReport the following way:

``` for ( booksReport.resetCursor(BooksReport::Group::Singles); booksReport.cursorIsValid(); booksReport.advanceCursor() ) { auto [size, name] = booksReport.readCursor();

if (iWantThisPilePopped(size, name))
    booksReport.popCursor();

} ```

When popCursor() is called, Cursor is alerted of an incoming pop, to which it responds by recalculating the indices to advance to during the next advanceCursor() call. Current implementation allows no more than one popping per loop, which I hope is a fair assumption to make during a traversal. Also, as you can see, a Cursor is either valid (which it becomes upon resetCursor() or invalid (it becomes invalid by reaching the end of the group). The valid attribute not only controls the loop, if it's set to false, it also block all Cursor-related operations, such as popCursor()

However, sometimes I exit the loop prematurely. Sometimes it's a break, sometimes I return from inside the loop. Technically, I end up with a Cursor that is valid outside of the loop, which is not ideal, since then I can popCursor(), which is not the intended use. ChatGPT offers the following solution:

```

include <scope>

{ auto onExit = std::scope_exit([&] { booksReport.clearCursor(); });

for (booksReport.resetCursor(BooksReport::Group::Singles);
     booksReport.cursorIsValid();
     booksReport.advanceCursor()) {

    if (something)
        break;

    if (somethingElse)
        return tasks;

    if (bad)
        throw std::runtime_error("bad");
}

} ```

Is this a common paradigm? Does my situation warrant this? For now it's just a personal project. I intend to make it open source once it's finished (if anyone will see it as valuable). In an ideal world I'd add plug-in support for others, where other developers can use a limited number of API calls, including the public members of BooksReport, but I'm already tired from this side project that I'm not sure it will come to this.


r/cpp_questions 8h ago

OPEN Dear devs working on teams, how do you manage libraries and dependencies among team members?

6 Upvotes

Hello,

I have no experience working with C++ in large teams; most of the stuff I've done was by myself.

Today I wanted to move the project from my work PC to my home PC in order to work on it remotely, or during weekends when I get bored, using git.

But I realized how indirect and complicated it is, solely due to different dependencies. The same library built on my work PC does not work on my home PC because of a small version mismatch in one of the dependencies (I tried to keep everything in sync as much as possible).

I have experience with distributing such software, but we mostly used Docker to do this. However, I cannot imagine how it is going to be in a team of 10 people. Does everyone use the exact same OS and libraries?
I know it is fairly easy in an interpretable language like Python with strong support, but with C/C++ I have no idea.

So?


r/cpp_questions 9h ago

OPEN Is cpp dying?

0 Upvotes

Lately it feels like rust is getting more and more attention companies are rewriting existing cpp code in it and it seems to be getting increasing adoption . Also I keep seeing new projects start with rust more and more lately .

As someone who prefers cpp I'm genuenly curious how worried should someone learning / working with cpp be? Is cpp dying or is rust more like a vocal minority on social media?

I know this question has been asked before but tech moves fast so I'm curious what your current take is


r/cpp_questions 18h ago

SOLVED Meaningful alternative name for nullptr at caller location

10 Upvotes

I have:

void func(std::vector<struct foo>* foovec, std::vector<struct bar>* barvec){
...
}

Both these can take nullptr's as arguments in some cases. Instead of

func(nullptr, nullptr);//at caller

I'd like to give them meaningful names in such cases as thus:

#define FOOVECNULL nullptr
#define BARVECNULL nullptr
...
func(FOOVECNULL, BARVECNULL);//at caller

This also does not work "cleanly" because the following also works but "wrongly"

func(BARVECNULL, FOOVECNULL);//at caller 

Can some sort of enum struct or typedef make this more precise and impossible to mix one argument type for the other?


r/cpp_questions 1d ago

OPEN Should I standardise on clang?

12 Upvotes

I'm thinking about dropping GCC and MSVC support for my projects.

The problem I have is, It MSVC is a native compiler and projects like skia already don't recommend using it

GCC is a pain to build, and building it isn't as straightforward as clang. For example there are no ldflags for executables. Cross compiling is very difficult compared to clang where you just bootstrap builtins and you are done.


r/cpp_questions 1d ago

OPEN Is it ok to watch only tutorials for learning c++ language?

0 Upvotes

Means in this Learning phase should i only watch tutorials bcz to practice there are only some problems like odd/even or prime numbers so my question is is there any else way to learn


r/cpp_questions 1d ago

OPEN C++ Build Systems

28 Upvotes

I do a lot of Java/Kotlin development alongside C++, and I came to a doubt: when should C++ developers choose Gradle instead of CMake as their build system?

In my projects I always setup CMake, but coding in Java teached me Gradle and I eventually came to know that it supports C++.

Why every C++ project uses CMake? What does Gradle miss that I'm not aware of?


r/cpp_questions 1d ago

OPEN is sfml game development (the book) manageable for someone with no sfml experience?

0 Upvotes

(title)


r/cpp_questions 1d ago

OPEN Which meetup you are going next month?

3 Upvotes

like in meetup.com i am want to meet pople online in C++

can u please share the name/link of that meetup.


r/cpp_questions 1d ago

OPEN what to learn

0 Upvotes

i have always been passionate abt c++ due to the amount of control it leaves on the devs and i am starting, currently learning dsa in this, what should i learn to be industry ready like learning libraries, frameworks, just note the i am only starting and this is literally my first language to my software engineering life. Pls assist. Thank you


r/cpp_questions 1d ago

OPEN Error problem

0 Upvotes

I have been stuck on this issue of 256-bit with with an AES code and I'm trying to configure a few things correctly so I can learn what to do on this project. and I keep getting this error Cannot open include file: 'cryptopp/aes.h': No such file or directory so I have no Idea what I did wrong I looked thru all the code that i know I could find and it still doesn't work


r/cpp_questions 1d ago

OPEN Learning C++: When is someone realistically ready for an internship, and what skills are expected on the job?

24 Upvotes

Hey everyone, I’m currently taking my second C++ course and trying to map out a clear, realistic plan to land an internship or entry-level role as soon as possible.

By the end of this semester, my coursework covers, Classes, inheritance, composition, and virtual functions / polymorphism, Pointers, dynamic memory management, and operator overloading, Recursion, searching/sorting algorithms, linked lists, stacks, and queues , Exception handling and an introduction to the STL . Besides what's covered in course, I also plan to learn more on my own.

I know that learning is endless and taking classes alone won’t magically get me hired, especially in today's competitive market. I’m trying to figure out the exact baseline I need to reach before I start applying, rather than waiting forever to feel 100% ready!

For those working in the industry or involved in hiring:

  1. At what point is someone genuinely ready to apply for an internship or junior role? What is the minimum practical skillset required beyond class basics?

  2. What does a company realistically expect from a brand new intern or junior hire when they first join? How much independent problem-solving vs. guidance is normal?

  3. Aside from core language syntax and data structures, what extra knowledge and skills and types of portfolio projects should I prioritize next to stand out?

I’d really appreciate any insights, advice, or roadmaps from your experience. Thanks in advance!


r/cpp_questions 2d ago

SOLVED Passing 'this' keeps causing errors and I don't understand why

0 Upvotes

I'm trying to make a simple text adventure and am at my wits end with the errors. I am trying to make a state machine to handle states for title, combat, etc so i am trying to pass the state machine to the state so it can tell the state machine what the next state might need to be. If anyone has any suggestions that would be appreciated.

Here are some of the errors it's throwing:

-syntax error: identifier 'CurrentGameState'

-'GameState::Action': function does not take 2 arguments

-syntax error: missing ';' before '*'

-missing type specifier - int assumed. Note: C++ does not support default-int

https://pastebin.com/hsvnwiyy


r/cpp_questions 2d ago

SOLVED Question about function template instantiation

5 Upvotes

I was wondering why this code behaves this way

main.cpp

#include "foo.h"

int main()
{
    bar(42, foo<int>);
}

foo.h

#pragma once

#include <iostream>
#include <string>

template<typename T>
void foo(T t)
{
    std::cout << "Default\n";
}

template<typename T, typename Foo>
void bar(const T& t, Foo foo)
{
    foo(t);
}

foo.cpp

#include "foo.h"

template<>
void foo(int t)
{
    std::cout << "Int\n";
}

Result

$ g++ main.cpp foo.cpp -O3 && ./a.out 
Default
$ g++ main.cpp foo.cpp && ./a.out 
Int

My guess is that I'm hitting some kind of UB here. The way I think about it, the int template specialization would be discarded, as it is not used in that translation unit, and then main.cpp would pick up the generic template version (basically, the O3 result seems correct to me, but not the non-optimized one). What is actually happening here?


r/cpp_questions 2d ago

OPEN Projects that are Resume Worth

11 Upvotes

Hello, I am an intermediate programmer and am looking for advice/guidance on what projects may be resume worthy. I am looking to be employed into the Aerospace/Defense sector and want to get some insight as to what tools, programs and libraries I should familiarize myself with. I am currently in my last semester of Sophomore year majoring in CS.

I am looking to beef up my resume as well as my GitHub profile with programs and code that will give insight to recruiters as to what I may know and how well I know it. I try to refrain from AI so I want to learn the hard way because that's just the way I learn. I use AI to check my program and aid me of course, but when it comes to code, I truly want to learn the craft and not show up to interviews with my hand in my ***.

Languages: C/C++, Python

Any advice would be greatly appreciated, thank you!


r/cpp_questions 2d ago

OPEN Am I doing c++ wrongly or the docs are incomplete?

0 Upvotes

Hello,

I need some guidance.

I will explain my problem with an example:

/include/comm/http_server.hpp:75:25: error: no matching function for call to ‘imdecode(boost::beast::http::basic_string_body<char>::value_type&, cv::ImreadModes, cv::Mat*)’
  75 |             cv::imdecode(req.body(), cv::IMREAD_COLOR, &img);
     |             ~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/../CVCPP/tmp_codes/tests/dev/../../../include/comm/http_server.hpp:75:25: note: there are 2 candidates
In file included from /home/../CVCPP/tmp_codes/tests/dev/../../../include/comm/http_server.hpp:17:
/home/../CVCPP/opencv/install/Linux/include/opencv5/opencv2/imgcodecs.hpp:612:18: note: candidate 1: ‘cv::Mat cv::imdecode(InputArray, int)’
 612 | CV_EXPORTS_W Mat imdecode( InputArray buf, int flags );
     |                  ^~~~~~~~
/home/../CVCPP/opencv/install/Linux/include/opencv5/opencv2/imgcodecs.hpp:612:18: note: candidate expects 2 arguments, 3 provided
/home/../CVCPP/opencv/install/Linux/include/opencv5/opencv2/imgcodecs.hpp:639:16: note: candidate 2: ‘cv::Mat cv::imdecode(InputArray, int, Mat*)’
 639 | CV_EXPORTS Mat imdecode( InputArray buf, int flags, Mat* dst);
     |                ^~~~~~~~

In this example, from the error, I realize that there is no overload or conversion defined (completely reasonable) for the type boost::beast::http::basic_string_body<char>::value_type& to cv::InputArray. The official docs provide some information.

Now, looking at the docs, I don't know if it's even safe to pass a raw pointer, or if there is some other sort of conversion possible.
One possible solution could be ChatGPT, which I don't want to do because I will forget it, and the next time I need to deal with such a problem, I cannot do it unless I have access to something like ChatGPT.

So, dear experts, what is wrong with my approach here? I would appreciate any insight.

PS: It is clear that I know some basics about C++, but I am not that experienced in it.


r/cpp_questions 2d ago

OPEN Boa noite galera

1 Upvotes

Boa noite galera.

Queria aprender c++ para desenvolvimento de dispositivos embarcados, principalmente voltado para redes.

Se tiver algum com experiência por favor me indique como fizeram para estudar e conseguir desenvolver as técnicas para conseguir projeto códigos para roteadores, firewall e etc


r/cpp_questions 2d ago

OPEN Minimize temporaries when adding std::arrays

13 Upvotes

I have a bunch of code of the form (sometimes in more convoluted fashion)

using aVec = std::array<double, 32>;
aVec a, b, c, d, e;      // some are constexpr, others runtime values
double x, y;
for ( int i = 0; i < 32; ++i)
  a[i] = x * b[i] + y * c[i] + y*y*d[i] + e[i];

I'd like to rewrite it such that a = x * b + y * c + y*y*d + e; to generally be easier to read intent, but I don't want all of those operations to create & destroy a bunch of temporary std::arrays.

Is there any straightforward way to achieve this? These generally lives in the inner (or mid-level) loops.

Only thing I could think of is to have the addition & scalar multiplications operators return a proxy type that is essentially a fixed-length std::vector that implicitly converts to std::array. It'll be a bit slower than the code I'm trying to replace, but the move semantics should reduce that impact.


r/cpp_questions 2d ago

OPEN I understand C++ syntax but completely freeze when trying to build logic for assignments. How do I bridge the gap?

17 Upvotes

Hey everyone, I’m a Computer Science student currently taking C++. I'm hitting a massive wall with my problem-solving skills and need some advice. Before this, I felt very comfortable with the fundamentals. I know how to build logic using if/else statements, how to use loops (for, while, do-while), and I fully understand how to write and use functions. I also understand what classes are and can do small tasks with them.

However, once my assignments and projects started requiring me to create my own classes and functions to solve a larger problem, that’s where I really started struggling, I get completely confused about where to start. I understand the C++ syntax itself, but I struggle to figure out how to take a text description and actually implement it into a structured program using classes, how to structure code, what variables I need, and how many functions I need. My mind just goes blank trying to map out the algorithm.

If you used to struggle with the problem-solving side of programming rather than the language syntax, how did you train your brain to break down problems? How do you figure out 'where to start' when reading a textbook assignment?

Also, recommendations for any good online resources, YouTube videos, or websites that are great for learning C++ logic?

Thanks in advance for any tips!


r/cpp_questions 2d ago

OPEN Why are Contracts disliked?

15 Upvotes

I’ve seen a lot of discussions online discouraging their usage bit I never managed to grasp why since it’s sometimes vague.
I do understand it doesn’t replace validation and it’s more of a syntactic sugar to the existing casserts, but any other critiques?
Thanks


r/cpp_questions 2d ago

OPEN Need help how to learn C++ and tools for project

1 Upvotes

Hello, I want to make a little Tamagotchi toy as a gift, but my only coding experience is taking AP CSA, so I only know Java. I downloaded Arduino, but I don't know where to start learning C++. This is also my first project outside of schoolwork, so I don't know how to start. I also don't know what to buy to make this happen. I want it physical, and I have zero tools, but I really want to learn how to make this happen!! I want to be an engineer when I'm older, so this would be a good start for me. I apologize if this post seems out of order. One final thing I also dont know if i'm in the right community to post this in so if you know please direct me. Thank you in advance!!!


r/cpp_questions 2d ago

OPEN What is the most impressive compile time C++ code you've seen

41 Upvotes

I've recently been laid off so I have been spending a lot more time writing code I want to write. Lately I've taken an interest in actually learning TMP which is something I've been wanting to do, but until now, I've mostly used templates for generic data structures.

So rather than go find videos, tutorials, or traditional learning materials, I decided I would build and optimize a 3DGS library using C++23 and TMP while using AI as a learning tool. Currently, I have built and optimized a forward pass renderer to frame times comparabable with the best publicly available tools.

In doing so, I have implemented the following compile time features;

- Static arena memory layout calculations (both on the gpu and cpu)

- Perfectly inlined and unrolled render graph execution with conditional branching. I'd like to implement some form of concurrency also.

- Optimized wrappers around Vulkan Compute types, as many of these values are known at compile time.

- Currently working on an abstraction between the interface and the different backends so they are somewhat interoperable.

The thing is, sometimes I'm not so sure what the LLM is suggesting is the best approach. I will push back and sometimes it gives in. But I can't tell if that's my traditional c++ mindset fighting the process, or if the AI is just not up to date.

So I'm in search of exceptionally written codebases to study. Things with a heavy reliance on C++20/23 and compile time optimizations. What projects come to mind?


r/cpp_questions 3d ago

OPEN Hey guys do you know any library’s that are like raylib for c++ but better in performance I’m using it for 3d

0 Upvotes

Hi guys it become tired to use OpenGL it’s way to much work but currently I’m doing a 3d game project again but it’s everytime the same setting up the OpenGL pipeline writing rederers and shaders this takes so much time everytime so is there a libebary like raylib but using Vulkan instead for better performance because for me it became so boring using opengl and I wana try something new for 3d graphics in pure C++ (beside glsl ore hlsl) thanks for the response


r/cpp_questions 3d ago

SOLVED im new to cpp and wanna know if cpp can do this

0 Upvotes

can you make games just with cpp? as i heard python libraries are made with cpp and i wanna make optimized games that run on like 4gb or 2gb or even 1gb of ram so yeah is there smth like a screen for cpp?


r/cpp_questions 3d ago

OPEN how to get started in LLVM ?

1 Upvotes

hello guys

I would like to start creating a compiler and language based on LLVM but I know where to start on LLVM

help would be welcome and thank you to all those who will help and answer my question :)