> - non static and non namespaced global variable EMOJIS (should be inside the emojize method or at least in the namespace)
The implementation honestly should be put in .cpp file, not a header. Currently it will define both the gigantic statically-initialized map and a function in each module where it's used. Compared to consequences of this lack of unit tests looks like nit-picking.
And yeah, the logic of the function is easy to follow, so it's definitely not modern C++.