Я работаю над проектом, который включает переменную-член в определении класса:
static std::vector < std::vector < std::vector < UINT16 > > > m_vectors;
Это похоже на трехмерный массив беззнаковых 16-битных целых чисел.
В настоящее времяИнициализация для этого выполняется путем создания нескольких массивов UINT16 и последующей передачи их в m_vectors с помощью memcpy.
Я ищу способ выполнить эту инициализацию в файле cpp, что-то вроде:
std::vector < std::vector < std::vector < UINT16 > > > cname::m_vectors =
{1,2,3},{4,5,6},{7,8,9},{10,11,12};
Данные только для иллюстрации, возможно ли это?
Редактировать: Используя Qt, я попробовал следующее:
std::vector < std::vector < std::vector < int > > > test{{{1,2,3,4,5},{6,7,8,9,10}}};
Построить и запустить в отладчике, это сработало отлично, яотправлю этот тест по электронной почте самому себе и завтра буду тестировать систему разработки. Я использую MSVC 2010 в системе разработки.
Edit.2 Я только что попробовал ту же логику в своей системе разработки, это работает под управлением Windows7 [6.1.7601] и Microsoft Visual Studio [10.0.40219.1 SP1Rel] с Microsoft Visual C ++ 2010 [01018-532-2002181-70881]
В моих классахУ меня есть заголовок s:
static std::vector < std::vector < std::vector < UINT16 > > > m_vectors;
В моем файле cpp:
std::vector < std::vector < std::vector < UINT16 > > > cname:m_vectors{{{
0x01,0x02,0x03}}};
Данные приведены только в качестве примера, но формат тот же.Когда я компилирую, я получаю:
error C2470: 'cname:m_vectors' : looks like a function definition, but there is no parameter list; skipping apparent body
Та же самая логика, которая почти такая же, как и у первого Edit, который был на моем MacBook Pro под управлением iOS, а Qt 5.11 компилируется и работает.
I 'Теперь я думаю, что это больше проблема MSVC 2010, а не синтаксис.