Здравствуйте Архипов Дмитрий Николаевич, Вы писали:
АДН>Есть:
АДН>double m[]={1, 2, ...};
АДН> и
АДН>valarray < double > m_Coeff;
АДН>Как правильно и _красиво_ можно заполнить m_Coeff значениями из m[]?
АДН>Использование конструктора m_Coeff(m, N) в объявлении не подходит.
Почему не подходит?
Например:
m_Coeff = valarray(m, sizeof(m)/sizeof(m[0]));
Или:
std::copy(&m_Coeff[0], &m_Coeff[m_Coeff.size() — 1], m);
Лучше, конечно, не стоит, так как то, что (&m_Coeff[i])++ == &m_Coeff[i+1]
вовсе не гаратнируется.
Здравствуйте Zero, Вы писали:
Z>Почему не подходит?
Z>Например:
Z> m_Coeff = valarray(m, sizeof(m)/sizeof(m[0]));

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ не работает:
error C2955: 'valarray' : use of class template requires template argument list
Здравствуйте Андрей Тарасевич, Вы писали:
АТ>А почему оно должна выводить аргумент? 'valarray' — имя шаблона класса. Для шаблонов классов в С++ аргументы никогда не выводятся. Только для шаблонов функций.
Да, кончено же. Я тормоз.