我有一個Visual Studio社區2015項目(x64解決方案平臺)使用Armadillo線性代數庫(版本6.500.5穩定),如果我嘗試接收構建錯誤使用C++ 11中的語法。該文檔指出「使用C++ 11標準時,Mat,Col,Row中的元素可通過初始化列表」設置。例如,如果我從犰狳文檔describing element initialization,取例如右windows visual studio 2015,c + + 11標準和犰狳庫
// C++11
mat A = { {1, 3, 5},
{2, 4, 6} };
VS2015生成錯誤,
Error C2440 'initializing': cannot convert from 'initializer list' to 'arma::Mat<double>'
與此相反,C++ 98例如編譯沒有錯誤:
// C++98
mat A;
A << 1 << 3 << 5 << endr
<< 2 << 4 << 6 << endr;
這當然會讓我懷疑C++ 11的兼容性是無效的,但無數的Visual Studio項目屬性中我找不到任何有關這樣的o以及其他網絡搜索的結果似乎表明C++ 11兼容性是,它們是2012年以後版本的Visual Studio中提供的。使用Armadillo沒有其他問題,並且在Linux下測試C++ 11代碼(gcc 4.9.3)確實工作正常。有沒有人對此有任何洞察,或者知道VS2015是否有一些隱藏的C++ 11開關?
解決了! ...感謝您的快速響應。歡呼聲// Rolf – Rolf