Начиная с visual studio 2012 параметры компиляции SSE2 включаются по умолчанию.
также для меня пришло время идти вперед и использовать эту функцию - и больше не отключать этот флаг для моих проектов вручную.Состояние установки MSI для проверки функции SSE2 процессора?
Однако, я видел много случаев, когда такая программа просто выдает при получении на более старом процессоре, который не поддерживает SSE2.
например, см: Visual C++ 2012 cout crashes during run time
Так что я хотел бы сделать эту функцию CPU предпосылку и автор некоторых окон установки InstallCondition
в WIX.
Установка должна быть отменена и не позволит пользователю пройти всю процедуру установки, чтобы позже узнать, что программа выйдет из строя и несовместима с его системой.
Есть ли какие-либо указания относительно того, как реализовать такое InstallCondition?
Я могу порекомендовать вам лучшее решение: Intel Compiler поддерживает создание двух кодов кода. Таким образом, вы можете получить выгоду как от производительности, так и от совместимости (в плане размера кода [и цены лицензии компилятора]). – Rotem
64-разрядные двоичные файлы не нуждаются в проверке поддержки SSE2; это базовая линия для архитектуры.Вы правы, что еще есть компьютеры, достаточно старые для того, чтобы кто-то, по-видимому, все еще использовал их, но не поддерживал SSE2 (AMD Athlon XP - это самый последний процессор без SSE2. На Intel это Pentium III). –
Выполнение этой проверки во время установки может быть неоптимальным. Если кто-то установит на старом компьютере, то использует ту же самую установку на более новом процессоре, который вам не хватает. SSE2 обычно является базовой линией, ниже которой вы сдаетесь и возвращаетесь к скаляру C вместо векторизации, поэтому вы так сильно проигрываете. OTOH, это отстой, чтобы добавить накладные расходы для проверки во время выполнения. К счастью, ваши двоичные файлы x86-64 не имеют этой проблемы. –