Рассмотрим этот простой код:неявное преобразование постоянного
struct vec {
__m128 m128;
inline operator __m128 &() {
return m128;
}
}
void someFunction(const vec &v) {
someOtherFunction(v); //takes __m128 as argument
}
Всякий раз, когда я называю SomeFunction я получаю ошибку о том, что я не могу конвертировать из постоянной V в __m128
Я попытался добавить это к структура
inline operator const __m128 &() {
return m128;
}
но я получаю ошибки везде говорят «не могу преобразовать аргумент VEC в __m128
Вы пытались сменить спецификатор const на сам оператор? (т. е. 'inline operator const __m128 &() const {...}'.) Со второй версией вы возвращаете 'const __m128', но сама функция не« безопасна »для вызова с const' vec' s. – Alejandro