2013-06-25 34 views
0

我得到一個錯誤「無法打開包含文件‘initializer_list’,但我還沒有包括initializer_list在代碼的任何地方。凡_CPPLIB_VER定義,是修改在Visual Studio

#if !defined(BOOST_NO_0X_HDR_INITIALIZER_LIST) 
#include <initializer_list> // error C1083: Cannot open include file: 'initializer_list': No such file or directory d:\boost\unordered\unordered_set.hpp 
#endif 

然後我用'show includes'選項並找到BOOST_NO_0X_HDR_INITIALIZER_LISTdinkumware.hpp

// C++0x headers implemented in 520 (as shipped by Microsoft) 
// 
#if !defined(_CPPLIB_VER) || _CPPLIB_VER < 520 
# define BOOST_NO_0X_HDR_INITIALIZER_LIST 
#endif 

現在我知道_CPPLIB_VER必須某處定義和值大於520它在哪裏,我可以更改值

+0

http://msdn.microsoft.com/en-us/library/b0084kay%28v=vs.80%29.aspx和http://stackoverflow.com/questions/12286286/which-version-of-the -dinkumware-stl-lib-ships-with-visual-studio-2012 – ForEveR

+2

你應該嘗試更新你的boost版本[這裏提到](http://stackoverflow.com/questions/14471340/cannot-open-include-file -initializer列表#comment20181157_14471340)。 –

+0

@JesseGood你是對的。它使用最新的提升。但我仍然沒有理由。這是一個提升的bug嗎? – stackunderflow

回答

2

這只是版本檢查是錯誤的。當前的VS2012 C++庫版本爲540,下一版本將支持初始化器列表。即將推出。

Boost團隊只是沒有時間機器來猜測正確的版本。他們選擇了當時可用的版本號,即VS2010的版本號。儘管他們的測試錯誤,520也沒有,所以它應該是< =。從更新Boost短暫,編輯文件將是一個快速修復。

相關問題