make_pair in BCB



  • Wir haben ein Problem mit dem BCB 6.0 (Servicepack 4). Bei der Benutzung von std::make_pair treten ab und zu Fehler auf - aber nicht immer. Die Werte in dem erzeugten pair sind nicht richtig initialisiert. Das bemerkenswerte ist, das der gleiche Code in verschiedenen Projekten einmal funktioniert und einmal nicht (gerade in größeren Projekten)! Auf anderen Compilern gibts auch keinen Fehler - der Code ist Standardkonform.

    Ist das ein generelles Problem von BCB 6.0 ?
    Kann man das Problem umgehen ohne umfangreiche Codeanpassungen ?

    Bisher haben wir nirgends infos gefunden.



  • Was macht denn std::make_pair? Wenn das nicht gut funzt, dann schreibt euch doch ne eigene Routine, wenn's machbar ist. 😉



  • Das Problem ist, das die Funktion schon in vorhandenem Source benutzt wird, und wir sonst alle diese Stellen ändern müßten. Damit wären dann Projekte betroffen, die mit ganz anderen Compilern arbeiten und das dann alles neu getestet werden müsste. Den Code doppelt vorhalten ist auch nicht die Lösung.

    Das schlimmste ist, das der Code ja 100% standardkonform ist - nur nicht auf dem BCB 6.0 😞



  • Beim BCB6 werden doch zwei STL-Implementationen mitgeliefert, einmal STLport (ist IMO default) und dann die ältere RogueWave-Variante. Vielleicht bringt ein Wechsel hier ja etwas.

    Davon abgesehen ist es natürlich auch möglich, dass der Code nicht 100% Standard-konform ist und andere Compiler das nur nicht so streng sehen. 😉


Log in to reply