Mam problem z używaniem makr w przestrzeniach nazw. Kod jestC++ makra i przestrzenie nazw
#include <iostream>
namespace a
{
#define MESSAGE_A(message) \
std::cout << (message) << std::endl;
}
#define MESSAGE_A(message) \
std::cout << (message) << std::endl;
int main()
{
//works fine
MESSAGE_A("Test");
//invalid
a::MESSAGE_A("Test")
return 0;
}
Jaki jest właściwy wariant z użyciem przestrzeni nazw obiektów w makr.
Może pomóc w rozwiązaniu problemu. W moim projekcie muszę używać makr w przestrzeni nazw i muszą wywoływać makra z innej przestrzeni nazw. – shadeglare
@MaxFX, makra nie są "wywoływane", są podstawiane. Jeśli potrzebujesz makr do czegoś zbyt skomplikowanego, robisz coś nie tak. – StoryTeller