Czy jest gdzieś swobodny w użyciu / dostępny skrypt, plik źródłowy lub cokolwiek innego, który jest w stanie zmierzyć zgodność danego kompilatora C ++?
Na przykład test Acid3 dla przeglądarek: http://acid3.acidtests.org/
Wyniki, o których marzę, to globalna notatka procentowa (lub wiele nut, po jednej dla każdego standardu, np. C ++ 98, c ++ 11, c ++ 14 itd.), A następnie szczegółowe testy z „sukcesem” lub „awaria” dla każdego z nich.
Tło: Dyskutowałem w pracy na temat boosta i niektórych trudnych kompilatorów. Mój rozmówca mówił o tym, że Boost jest projektem akademickim, ponieważ nie będzie działał w głównych kompilatorach C ++, a ja odpowiadając, że kompilatory psychicznie trudne nie powinny się liczyć. Możliwość pomiaru za pomocą kodu rzeczywistej zgodności kompilatora pomógłaby zarówno w ocenie kompilatora, jak i w wykrywaniu „przypadków narożnych”, których należy unikać w kompilowanym z nimi kodzie międzyplatformowym.
Edycja: 22.06.2013
Nie odpowiedź, ale najwyraźniej komisja C ++ pracuje nad tym tematem:
SG10, Test funkcji: Clark Nelson (Intel). Badanie, czy i jak ustandaryzować sposób przenośnego kodu, aby sprawdzić, czy dany produkt C ++ implementuje jeszcze jakąś funkcję, w miarę rozszerzania standardu.
Odpowiedzi:
Jednym ze sposobów testowania zgodności danego kompilatora C ++ jest uruchomienie (dużego) testsuite, czyli zestawu plików C ++, które testują wszystkie aspekty języka.
Dobrze znanymi testuitami są testy gcc i lvvm. Testują one wszystkie aspekty kompilatora, w tym oczywiście zgodność. Jednak trudno jest szczególnie ocenić zgodność w szczególności, ponieważ (zgodnie z moją najlepszą wiedzą) nie są generowane żadne specjalne raporty dotyczące zgodności.
W tej dziedzinie masz:
Dostępnych jest kilka obszernych testów, które pozwalają przetestować zgodność z C / C ++. Niestety są to wszystkie licencje komercyjne rzędu 10–40 tys.
źródło
Najbliższa rzecz, o której wiem, to kontekst konkretnej wersji standardowej . Podobnie są posty na blogu, które zawierają podobne treści. Nie jestem jednak świadomy istnienia de facto lub de jure organu, testu lub zestawu testów, który rządziłby takimi sprawami. Wydaje się, że nawet isocpp.org nie ma obecnie zasobów zgodności. Najbliżej można uzyskać wykresy zgodności poszczególnych dostawców, co w najlepszym razie jest niespójne.
np. Clang , GCC , MSVC , Intel
Tak naprawdę jest tylko kilka konkurencyjnych kompilatorów (przynajmniej w przestrzeni x86 / x64 - zakładam, że dotyczy to także mniej popularnych platform), ale zgadzam się, że byłoby miło mieć referencje, zwłaszcza teraz, gdy standard jest prędkość podnoszenia.
źródło
Nie jestem świadomy żadnych testów standardów, chociaż następujący adres URL to oficjalna strona internetowa standardów http://www.open-std.org/jtc1/sc22/wg21/ .
Ponadto wiele rzeczy znalezionych w Boost trafia do standardu C ++. Według dr Kennetha Sundberga z Utah State University.
Nie mogę jeszcze zweryfikować jego wiarygodności, wciąż próbuję dowiedzieć się, czy jest to wiarygodne, ale Grupa Google na https://groups.google.com/forum/?fromgroups#!forum/comp.std .c ++ twierdzi, że nie ma oficjalnego testu.
źródło