2009-09-12 6 views
9

Czy ktoś używa wsparcia GCC 4.4.0 C++0x w produkcji? Zastanawiam się nad użyciem go z najnowszym MinGW, ale nie jestem pewien, czy jest wystarczająco dojrzały.Używanie GCC w trybie C++ 0x w produkcji?

Jestem zainteresowany:

  • TR1 wsparcia
  • auto
  • list initializer
+6

Obsługa TR1 powinna być bezpieczna, ponieważ poprzedza C++ 0x. Auto wydaje się również nieszkodliwe. Nawet jeśli występują błędy w jego implementacji, najprawdopodobniej pojawią się one jako łatwe do naprawienia błędy typu, a nie błędy w środowisku wykonawczym. – jalf

Odpowiedz

4

Obsługa IMHO, TR1 i auto są bezpieczne. W przypadku auto była to jedna z pierwszych cech, które należy włączyć do standardu i jest to stosunkowo niewielka zmiana w stosunku do języka. W związku z tym nie miałbym problemu z jego użyciem.

Byłbym nieco bardziej niezdecydowany o użyciu initializer lists. Na niektórych innych forach (np. Comp.lang.C++. Moderowany) pojawiają się pytania o ich zachowanie i możliwe, że mogą się one zmienić bliżej wydania standardu.

4

nie używam GCC 4.4.0 C++ 0 x wsparcia w produkcji, ale Używam funkcji TR1 przy pomocy Boost Library http://www.boost.org/.

Biblioteka Boost jest dobrze przetestowana i często używana w środowiskach produkcyjnych. Jeśli później konwertujesz do standardu C++ 0x, jedyną rzeczą, którą musisz zrobić, to zmienić swoje dyrektywy włączające http://www.boost.org/doc/libs/1_40_0/doc/html/boost_tr1.html.

Moim zdaniem obecnie lepiej jest korzystać z biblioteki Boost, dopóki standard nie zostanie ukończony. Jest to bardziej niezależny od kompilatora sposób.

2

MinGW po prostu nie skompiluje się z "-std = C++ 0x". Dziwne, działa "-std = gnu ++ 0x". W każdym razie wydaje się to błędne i nie będę na nie liczył.

+1

Zgaduję - błąd wynika z braku funkcji o szerokim zakresie, takich jak vwsprintf, prawda? Tak samo jest z -std = C++ 98 lub -ansi, jest to dobrze znany błąd MinGW. Nic specyficzne dla C++ 0x. –