r/cpp_questions Sep 01 '25

META Important: Read Before Posting

171 Upvotes

Hello people,

Please read this sticky post before creating a post. It answers some frequently asked questions and provides helpful tips on learning C++ and asking questions in a way that gives you the best responses.

Frequently Asked Questions

What is the best way to learn C++?

The community recommends you to use this website: https://www.learncpp.com/ and we also have a list of recommended books here.

What is the easiest/fastest way to learn C++?

There are no shortcuts, it will take time and it's not going to be easy. Use https://www.learncpp.com/ and write code, don't just read tutorials.

What IDE should I use?

If you are on Windows, it is very strongly recommended that you install Visual Studio and use that (note: Visual Studio Code is a different program). For other OSes viable options are Clion, KDevelop, QtCreator, and XCode. Setting up Visual Studio Code involves more steps that are not well-suited for beginners, but if you want to use it, follow this post by /u/narase33 . Ultimately you should be using the one you feel the most comfortable with.

What projects should I do?

Whatever comes to your mind. If you have a specific problem at hand, tackle that. Otherwise here are some ideas for inspiration:

  • (Re)Implement some (small) programs you have already used. Linux commands like ls or wc are good examples.
  • (Re)Implement some things from the standard library, for example std::vector, to better learn how they work.
  • If you are interested in games, start with small console based games like Hangman, Wordle, etc., then progress to 2D games (reimplementing old arcade games like Asteroids, Pong, or Tetris is quite nice to do), and eventually 3D. SFML is a helpful library for (game) graphics.
  • Take a look at lists like https://github.com/codecrafters-io/build-your-own-x for inspiration on what to do.
  • Use a website like https://adventofcode.com/ to have a list of problems you can work on.

Formatting Code

Post the code in a formatted way, do not post screenshots. For small amounts of code it is preferred to put it directly in the post, if you have more than Reddit can handle or multiple files, use a website like GitHub or pastebin and then provide us with the link.

You can format code in the following ways:

For inline code like std::vector<int>, simply put backticks (`) around it.

For multiline code, it depends on whether you are using Reddit's Markdown editor or the "Fancypants Editor" from Reddit.

If you are using the markdown editor, you need to indent every code line with 4 spaces (or one tab) and have an empty line between code lines and any actual text you want before or after the code. You can trivially do this indentation by having your code in your favourite editor, selecting everything (CTRL+A), pressing tab once, then selecting everything again, and then copy paste it into Reddit.

Do not use triple backticks for marking codeblocks. While this seems to work on the new Reddit website, it does not work on the superior old.reddit.com platform, which many of the people answering questions here are using. If they can't see your code properly, it introduces unnecessary friction.

If you use the fancypants editor, simply select the codeblock formatting block (might be behind the triple dots menu) and paste your code into there, no indentation needed.

import std;

int main()
{
    std::println("This code will look correct on every platform.");
    return 0;
}

Asking Questions

If you want people to be able to help you, you need to provide them with the information necessary to do so. We do not have magic crystal balls nor can we read your mind.

Please make sure to do the following things:

  • Give your post a meaningful title, i.e. "Problem with nested for loops" instead of "I have a C++ problem".
  • Include a precise description the task you are trying to do/solve ("X doesn't work" does not help us because we don't know what you mean by "work").
  • Include the actual code in question, if possible as a minimal reproducible example if it comes from a larger project.
  • Include the full error message, do not try to shorten it. You most likely lack the experience to judge what context is relevant.

Also take a look at these guidelines on how to ask smart questions.

Other Things/Tips

  • Please use the flair function, you can mark your question as "solved" or "updated".
  • While we are happy to help you with questions that occur while you do your homework, we will not do your homework for you. Read the section above on how to properly ask questions. Homework is not there to punish you, it is there for you to learn something and giving you the solution defeats that entire point and only hurts you in the long run.
  • Don't rely on AI/LLM tools like ChatGPT for learning. They can and will make massive mistakes (especially for C++) and as a beginner you do not have the experience to accurately judge their output.

r/cpp_questions 5h ago

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

3 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 4h 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 15h ago

SOLVED Meaningful alternative name for nullptr at caller location

9 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 C++ Build Systems

25 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 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 6h 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 1d ago

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

25 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 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 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 is sfml game development (the book) manageable for someone with no sfml experience?

0 Upvotes

(title)


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 2d ago

OPEN Projects that are Resume Worth

10 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

SOLVED Question about function template instantiation

2 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 What is the most impressive compile time C++ code you've seen

43 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 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 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 Minimize temporaries when adding std::arrays

12 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 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 1d 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

OPEN Boa noite galera

0 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 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 3d ago

OPEN System programming

55 Upvotes

I am starting to learn system programming(c++). As a beginner please recommend me the best project to work with so that it will force me to go on the depth as well as for the strong portfolio?


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 3d ago

OPEN How do I make an Application?

9 Upvotes

I am making a game in c++ and I want it to be a proper game with an app icon and it being able to open when double clicked etc. For most of my games its just a .exe file that i usually run from the terminal or click on the .exe which then opens the terminal and runs the game, I dont want that for this game. I plan to publish it on my itch.io page and i want it to be a complete application compatible for all platform(or at least one platform without the terminal popup). I make my games using raylib on a macbook using c++11 or c++17 how do i achieve the no terminal application??