What can I do in c++?

Hello everyone.
I've been learning c++ recently and I really want to do something more with this language but I have a problem that I just have no idea what can I do. Does anyone have any ideas what I could make in c++? I can also do stuff in Nim or Pascal.
It sounds like an insignificant problem but I have it very often and it is the main thing that keeps me away from programming. I would be really grateful for every idea you may have.
Last edited on
https://sourceforge.net/directory/language:cpp/
Tick other filter boxes as per your specific interests.

The best way to learn is solving real problems on real software.

Plus you get to experience all those other joys like
- working with other people
- working with revision control systems
- working with continuous integration/test systems.
> Does anyone have any ideas what I could make in c++?

"A list of systems, applications, and libraries that are completely or mostly written in C++ ...
... that might give a novice an idea what is being done with C++" - Stroustrup
https://www.stroustrup.com/applications.html
KDE from linux is written in C++.

Given Linus Torvalds' intense dislike of C++ I find that little tidbit more than a bit amusing.
http://harmful.cat-v.org/software/c++/linus

He rants substandard programmers use C++, going all hysterical C is "the only sane choice", maybe(?) not realizing the same can be said about C.

Being substandard as a programmer isn't language dependent.

About the only thing C++ can't do is make a substandard programmer into a good one.
@Furry Guy

His post circulated many forums for a good laugh, it's funny how he talks about importance to program in lower level language to make good stuff...

So same can be said about linus and C programmers, they are substandard because they don't do it in assembly, because well low level = better code according to him.
@malibor,

I simply found his "I invented Linux" arrogance more than a bit amusing.

I know I am not someone that is an expert at programming, I code and learn new things for fun. With zero classroom or formal instructions. Book and internet learning.

I am what I am, and that's all that I am.
exactly that.

Linus is good with his kernel, but so am I with my own project and so are you with your own code because everyone is the best with on what he is focusing on, others don't understand it as good.

We can write high performance programs with C++ as well, there is really no need to do it in C, it just takes more time to grasp different language constructs and performance benefits, which is I think harder than in C because...

For example I know std::function is less performant than using hand crafted raw function pointers, but downside is flexibility and reuse.
If the section of code isn't time dependent I'll use std::function, if not I'll go ahead and invent my own specific class and run performance tests.

Linus seems to be unhappy because people don't do that, people don't reinvent the wheel with C++ because the language already offers easy to use solutions and the result may be less performant code where performance may be gained but at the expense of more work and testing.

But's that's no excuse to use C.
malibor wrote:
So same can be said about linus and C programmers, they are substandard because they don't do it in assembly, because well low level = better code according to him.
I don't think that's the conclusion Linus is making in his mailing list rant. I think he's saying all the features injected into C++ tend to make programmers produce unmaintainable C++ code. That and his specific concern about C++ exception handling not being zero-cost.
@Ganado

regarding "low level" I was referring to this:

In other words, the only way to do good, efficient, and system-level and
portable C++ ends up to limit yourself to all the things that are
basically available in C. And limiting your project to C means that people
don't screw that up, and also means that you get a lot of programmers that
do actually understand low-level issues and don't screw things up with any
idiotic "object model" crap.


My understanding is he doesn't like high level language features because it leads to inefficient or slower code.
Torvald's problem with C++ is threefold, methinks:

1. When he first looked at C++, it was still pretty basic, and a lot of it wasn't anywhere near as efficient or capable as it is now. Further, it had (and still has) linkage problems that C simply doesn't.

2. He thinks C++ coddles programmers into doing things the Wrong Way, which is exactly as malibor reads it: programmers rely on a magic black box to do stuff. Even now the magic black box needs help to avoid some bloat. Fortunately g++ and Clang both have some pretty sophisticated helps now, like LTO — but again that requires a careful and knowledgeable programmer.

3. He's an arrogant a**.


Torvalds knows C and can tweak it up very fine.
Learning C++ as well as he knows C is a very steep hill that not many can match.
Some of his snottiness may be justified.
a lot of it wasn't anywhere near as efficient or capable as it is now.


IMO one big performance issue that still remains is file stream i/o - especially stream insertion/extraction and getline() (with VS) for large files (Gigabytes) . Really, in a race a tortoise could beat it. For 'proper' programs we use WIN32 file handling and get far superior performance.
Topic archived. No new replies allowed.