std::cout << _("Hello World!") << std::endl;
Nie pierwszy, nie drugi i nie piąty raz widzę jak jakaś biblioteka/narzędzia używa makra w postaci _
i każde jedno takie narzędzie było albo nieintuicyjne w używaniu, albo miało bugi, albo jakieś dziwne zależności albo wszystko razem. Co ciekawe, w każdym takim systemie to makro oznaczało zupełnie co innego. W tej chwili już mam odruch, że jak ktoś/coś tego używa to od razu wiem, że g**no i trzymać się z daleka. Co to w ogóle za poroniony pomysł używać takiego makra, które absolutnie nic nie mówi i może oznaczać cokolwiek. To już nawet w winapi masz nieco bardziej ludzkie makro w postaci TEXT()
, w a to przecież winapi ludzie przytaczają jako przykład zagmatwanego i nieprecyzyjnego API.
A jeśli potrzebujesz wielojęzykowości to ICU ma biblioteki, które są niejako standardem i jeżeli planujesz spędzić nad tym czas to zapoznanie się z nimi będzie mniejszą stratą czasu niż niż praca z czymkolwiek innym. ICU są dość niskopoziomowe więc będziesz musiał zmajstrować jakiś wprapper, albo znaleźć jakiś istniejący pasujący do Twojego użycia.