Используя версию Visual C ++ 2017, следующий пример кода (как указано в https://msdn.microsoft.com/en-us/library/bb384811.aspx) выполняется с необработанным исключением.
// Compile this sample with: /EHsc
#include <iostream>
#include <intrin.h>
using namespace std;
union {
__m128i m;
unsigned __int64 ui64[2];
} source, descriptor, result1, result2, result3;
int
main()
{
source.ui64[0] = 0xfedcba9876543210ll;
descriptor.ui64[0] = 0x0000000000000b1bll;
result1.m = _mm_extract_si64 (source.m, descriptor.m); // here unhandled-exception occurs
result2.m = _mm_extracti_si64(source.m, 27, 11);
result3.ui64[0] = (source.ui64[0] >> 11) & 0x7ffffff;
cout << hex << "result1 = 0x" << result1.ui64[0] << endl;
cout << "result2 = 0x" << result2.ui64[0] << endl;
cout << "result3 = 0x" << result3.ui64[0] << endl;
}
Я запускаю его с использованием VS 2017 в Windows 7 Ultimateи процессор Intel Core i3 4030U.Что здесь не так?Как решить?Пожалуйста, предложите.