Como definir corretamente uma constante estática std::string em uma classe C++?
Olá a todos! Comecei a estudar C++ e me deparei com um problema ao trabalhar com constantes estáticas em uma classe. Preciso definir um membro de dados estático do tipo `const std::string` dentro da classe.
Aqui está meu código:
```cpp
#include
class MyClass {
public:
static const std::string kAppName = "MyApp"; // Erro!
};
```
O compilador exibe um erro: "error: 'const std::string kAppName' cannot be initialized by a constant expression" ou algo como "non-const static data member must be initialized out of line". Eu sei que para tipos inteiros (int, char, etc.) e enum é possível inicializar diretamente na classe, mas para std::string isso não funciona.
Tentei diferentes abordagens: removi const, adicionei constexpr, mas nada resolveu. Na internet dizem que é necessário definir a constante estática fora da classe, mas não entendo como fazer isso corretamente. Vocês podem me ajudar a declarar e definir uma string constante estática em uma classe?
Também gostaria de saber: é possível fazer isso