Estou usando 2 bibliotecas no meu projeto. Uma define uma Status
macro e a outra tem uma classe nomeada Status
em um namespace.
Tenho problemas ao usar a classe Status
no meu código:
// first library
namespace Test {
class Status {};
}
// second library
#define Status int
// my code
int main() {
Test::Status test;
return 0;
}
Erro:
error: expected unqualified-id before ‘int’
8 | #define Status int
Como posso usar ambas as bibliotecas no meu projeto?
Se você não precisa usar a
Status
macro definida pela 2ª biblioteca, você pode tentar o seguinte:Se você quiser usar a
Status
macro definida pela 2ª biblioteca, você pode tentar o seguinte:E então use-o como
Status2
em vez deStatus
.Compilação do seu código
#define Status int
Test::Status test;
há um conflito aqui porque você alterou o Status[word] para int, o que converte a seguinte declaração
Test::Status test;
para issoTest::int test;
então para resolver esse problema você tem muitas opções