Может ли std :: начаться работать с параметрами массива, и если да, то как?C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Может ли std :: начаться работать с параметрами массива, и если да, то как?

Сообщение Anonymous »

У меня проблемы с использованием std :: std () и std :: end () (из библиотеки итератора ) с параметрами массива C-стиля.

void SetOrigin(const double i_point[3]) {
Vector v;
std::copy(
std::begin(i_point),
std::end(i_point),
v.begin());
this->setOrigin(v);
}
< /code>

Это приводит к следующей ошибке с Visual Studio 2010 (и аналогично для конца): < /p>

error C2784: '_Ty *std::begin(_Ty (&)[_Size])' : could not deduce template argument for '_Ty (&)[_Size]' from 'const double []'
1> c:\program files (x86)\microsoft visual studio 10.0\vc\include\xutility(995) : see declaration of 'std::begin'
< /code>

Изменение параметра на неконфтацию дает тот же результат....
std::begin(i_point),
std::end(i_point),
...
< /code>

дает: < /p>

error C2664: '_Ty *std::begin(_Ty (&)[3])' : cannot convert parameter 1 from 'const double []' to 'const double (&)[3]'
< /code>

Просто невозможно использовать std :: begin < /code> на параметрах массива, потому что они распадаются до указателей? Есть ли хитрость, чтобы обойти это или лучше просто не использовать функции итератора на параметрах массива?

Подробнее здесь: https://stackoverflow.com/questions/200 ... -if-so-how
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»