Regras para uso do caractere sublinhado em identificadores C++
Olá a todos! Comecei a estudar C++ recentemente e notei que, em diferentes exemplos de código, o caractere sublinhado `_` é usado de maneiras diferentes. Às vezes ele aparece no início do nome de uma variável, como `_value` ou `__value`, às vezes no final — `value_`. E em algumas bibliotecas padrão, vi nomes como `_M_engine` ou `__func__`.
Escrevi um pequeno código que compilou sem erros:
```cpp
#include
int _myVar = 10;
int main() {
int __anotherVar = 20;
std::cout << _myVar + __anotherVar;
return 0;
}
```
Mas depois li que alguns identificadores com sublinhado são reservados para o compilador e a biblioteca padrão. Agora estou com medo de que meu código possa quebrar inesperadamente ou causar comportamento indefinido.
Por favor, me digam: quais são as regras para usar sublinhado em nomes? Quando posso usá-lo e quando não posso? E por que essas regras são tão rigorosas? Agradeço uma explicação detalhada com exemplos de uso correto e incorreto.