2009-08-18 66 views
0

對不起,這可能是一個愚蠢的問題,因爲我根本找不到關於這個主題的任何東西。無論如何,我試圖編譯一些源代碼,使用boost ::數組與Visual Studio 2005,作爲Win32控制檯應用程序(而不是clr),但由於某些原因,逃脫我Visual Studio仍然認爲字數組關鍵字,所以它扼流圈上所有的boost ::陣列<>的代碼有錯誤是這樣的:boost :: array在VS 2005上沒有編譯

Error 1 error C2039: 'array' : is not a member of 'boost' 
d:\projects\libraries\boost_1_36_0-1\boost_1_36_0\boost\asio\buffer.hpp 809 

我敢肯定有一些非常愚蠢的,可能很明顯我失蹤沒有人在世界上似乎有這個問題(根據谷歌的結果,我發現)

+1

'數組'只能被語法高亮器識別,所以我不認爲編譯器在/ clr項目之外有一個先入爲主的數組概念。奇怪的是,asio的緩衝區應該無法找到數組類型,它包含boost/array.hpp。你在全局範圍內有另一種數組類型嗎? – 2009-08-18 07:26:34

+0

不是我能想到的,這是整個問題,如果我用/ Za編譯(無語言擴展名),它可以識別boost :: array <> ok,但在其他部分失敗。所以這真的很奇怪:/ – 2009-08-18 07:31:48

+0

如果你右鍵點擊'數組'並選擇「轉到定義」或「轉到聲明」它是否會帶你到某個地方,可能會提供線索? – 2009-08-18 08:10:38

回答

1

這個簡單的程序編譯和工作perfe在我的VC++ 2005中:

#include <iostream> 
#include <boost/array.hpp> 

int 
main() 
{ 
    const int size = 3; 
    boost::array<double,size> myArray; 
    myArray[0] = 23.43f; 
    myArray[1] = 24.00f; 
    myArray[2] = 23.50f; 
    double sum = 0.0; 
    for (size_t i = 0; i < myArray.size(); ++i) 
    { 
     sum += myArray[i]; 
    } 
    std::cout << "sum=" << sum << '\n'; 
    return 0; 
} 

你能發佈一個失敗的小代碼片段嗎?

+0

這實際上沒有編譯:/所以我再次下載Boost,現在它確實。不知何故,我的提振分佈被打破。 – 2009-08-18 10:30:55

+0

也爲我工作,奇怪它不適合你 – Maciek 2009-08-18 23:28:13