Есть ли где-нибудь свободно используемый / доступный скрипт, исходный файл или что-то еще, что может измерить соответствие заданному компилятору C ++?
Например, тест Acid3 для браузеров: http://acid3.acidtests.org/
Результатами, о которых я мечтаю, будет глобальная процентная заметка (или несколько заметок, по одной для каждого стандарта, например, c ++ 98, c ++ 11, c ++ 14 и т. Д.), А затем подробные тесты с «успехом» или «провал» для каждого из них.
Фон: у меня была дискуссия о бусте и некоторых проблемных компиляторах. Мой собеседник говорил, что boost - это академический проект, потому что он не будет работать в основных компиляторах C ++, и я ответил, что компиляторы с умственными отклонениями не должны учитываться. Способность измерять с помощью кода фактическое соответствие компилятора поможет как в оценке компилятора, так и в обнаружении «угловых случаев», которых следует избегать в кросс-платформенном коде, скомпилированном с ними.
Изменить: 2013-06-22
Не ответ, но, видимо, комитет C ++ работает над этой темой:
SG10, Функциональный тест: Кларк Нельсон (Intel). Изучение того, можно ли и как стандартизировать способ переносимого кода для проверки того, реализует ли конкретный продукт C ++ функцию, пока мы продолжаем расширять стандарт.
Источник: http://isocpp.org/std/the-committee
Ответы:
Один из способов проверить соответствие данного компилятора C ++ - запустить (большой) набор тестов, то есть набор файлов C ++, которые тестируют все аспекты языка.
Хорошо известные наборы тестов - это тесты gcc и llvm. Они проверяют всевозможные аспекты компилятора, очевидно, включая соответствие. Тем не менее, особенно сложно оценить соответствие, поскольку (насколько мне известно) нет специальных отчетов о соответствии.
В этом царстве у вас есть:
Существует несколько обширных тестовых наборов для проверки соответствия C / C ++. Увы, это все коммерческие лицензии порядка 10k-40k.
источник
Самая близкая вещь, о которой я знаю, находится в контексте определенной стандартной версии . Точно так же есть сообщения в блоге, которые содержат подобное содержание. Тем не менее, я не знаю ни о теле, ни о тесте, ни о де-юре теле-тестах, которые бы руководили такими вопросами. Даже isocpp.org не имеет ресурсов соответствия. Самое близкое, что вы можете получить, это, вероятно, конкретные диаграммы соответствия каждого поставщика, которые в лучшем случае противоречивы.
например, Clang , GCC , MSVC , Intel
В действительности существует всего несколько конкурентоспособных компиляторов (по крайней мере, в пространстве x86 / x64 - я предполагаю, что это также относится и к менее популярным платформам), но я согласен, что было бы очень неплохо иметь ссылку, особенно сейчас, когда стандарт набирает скорость
источник
Мне неизвестно о каких-либо испытаниях стандартов, хотя следующий URL-адрес - официальный веб-сайт стандартов http://www.open-std.org/jtc1/sc22/wg21/ .
Кроме того, многие вещи, которые можно найти в Boost, попадают в стандарт C ++. По словам доктора Кеннета Сандберга из Университета штата Юта.
Я также не могу подтвердить его достоверность, я все еще пытаюсь выяснить, заслуживает ли он доверия, но группа Google по адресу https://groups.google.com/forum/?fromgroups#!forum/comp.std .c ++ утверждает, что никакого официального теста не существует.
источник