Na realidade C e C++ estão anos-luz de distância entre si, com apenas algumas coisas sendo comuns. Quanto ao termo STL, significa Standard Template Library, que é basicamente o conjunto de funções e estrutura de dados que já vêm prontos para serem usados, como Vector, Map e Set, diferentemente de C, que tudo tem que ser implementado à mão.

Entendo o ponto. Talvez onde eu estudei tenha ensinado de forma supercial para evitar confusões. Lembro de ter visto algo como "C++ é uma extensão do C".

Ao mesmo tempo, agora que você falou, em outras fontes de fato é dito que C++ tem infinitas coisas a mais que o C, e apesar de ter relações, há muitas nuances.

Esquisito isso, parece que veio um flash de luz quando tu falou em minha mente :smile:

Se fosse só coisas a mais, poderia ser realmente algo como uma extensão, porém existem coisas que estão presentes nas duas linguagens, só que tratadas de formas diferentes. Por exemplo, em C uma função escrita como ```c void foo() { // snip } ``` é diferente de ```c void foo(void) { // snip } ``` enquanto que em C++, a primeira definição (sem `void`) é tratada como a segunda (com `void`). [C function with no parameters behavior](https://stackoverflow.com/a/5929736) PS: Eu não vejo muita gente nova se interessando por low level, e é o que eu mais gosto, então se quiser me adicionar no discord pra trocar um papo depois, aqui está meu user: frangomolhado.
Isso mesmo, o problema é que quando usamos a STL, ou seja, os templates pre-prontos e os ponteiros inteligentes entramos numa área chamada **modern cpp**. Para alguns programadores ainda existe a versão antiquada do "Cpp é uma extensão de C" e isso damos ao nome de [Cpp Ortodoxo](https://terminalroot.com.br/2023/07/conheca-o-cpp-ortodoxo.html) que não é recomendado. Por isso uma das minhas dicas foi: **Não se apegue ao estilo C de escrever código.**