Daß C++ theoretisch portabel ist bedeutet nicht, daß auch beliebiger Code überall läuft. Besonders von Windows-Usern geschriebene Tutorials und Bücher verweisen gerne auf Windows-spezifische Header wie <conio.h> und selbst harmlos erscheinende Ausdrücke erweisen sich als fast(!) überall gebräuchliche aber letztendlich nicht ISO-konforme Erweiterungen.
Dazu kommen noch unterschiedliche Compiler... Was dir der Visual C++-Compiler durchgehen läßt kann GCC 3.3 unter Cygwin dazu bringen, dich mit Warnungen zu überfluten - und GCC 4 für Linux bricht gleich mit einer Fehlermeldung ab, von Apples GCC-Version für OS X ganz zu schweigen. Oder von --pedantic.
Wenn du willst, daß dein Code überall läuft, mußt du schon aufpassen, was du schreibst und möglichst portable Bibliotheken verwenden (und im Idealfall auf mehreren Plattformen testen). C++ ist in dieser Hinsicht nicht gerade die einfachste Sprache, dafür hat man extrem viele Möglichkeiten.
BTW, deine BR()-Funktion ist ziemlich häßlich. Du wirst weit besser damit fahren, wenn du stattdessen einfach an das letzte cout ein << endl anhängst. Das ist nicht nur lesbarer sondern auch schneller, da der Compiler solche Funktionen nicht immer wegoptimiert und jeder einzelne Funktionsaufruf Zeit kostet.