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.**