Il est tout a fait possible de faire du cross-platform en C/C++, mais c'est particulierement contraignant, surtout quand on compare aux langages qui au mieux produisent un bytecode "generique" qui tourne dans une couche d'abstraction (Java > VM, C# > CLR, javascript > browser, etc.)
Pour faire du code C/C++ portable, il faut avoir a l'esprit qu'il faudra recompiler le code source pour produire un executable natif sur chaque plateforme, DONC il faut :
- bien connaitre les pipelines sur tous les environnements
- etre familier avec tous les differents compilateurs, pour savoir les limitations et extensions
- utiliser des librairies disponibles sur toutes les plateformes
- etc.
Le choix de la bonne techno doit venir de l'analyse des contraintes du projet, notamment en termes de performances.