[英]unique_ptr autocomplete in eclipse
“memory”標題(可能在/usr/include/c++/4.9/memory中找到)只包含“unique_ptr.h”和“shared_ptr.h”(可能在/usr/include/c++/4.9/bits/unique_ptr中找到)。 h和/usr/include/c++/4.9/bits/shared_ptr.h)如果宏“__cplusplus”等於或大於“201103L”。 檢查memory.h,自己在第69行查看“#if”預處理器條件(或搜索字符串“#if __cplusplus> = 201103L”)。
正如其他人所提到的,使用“-std = c ++ 0x”或更高版本的c ++標准(-std = c ++ 11或-std = c ++ 14)進行編譯可以解決編譯錯誤,但不能解決eclipse索引和自動完成問題。
為了解決eclipse索引問題,我將“__cplusplus”預處理器宏添加到項目構建屬性中,值為“201103L”,之后我刷新了索引;
要添加預處理器宏:
“右鍵單擊項目資源管理器上的項目”>>屬性>> C / C ++一般>>預處理器包括>>條目>> GNU C ++ >> CDT用戶設置條目>>添加... >>預處理器宏;
然后輸入一個名為“__cplusplus”且值為“201103L”的宏;
之后,要刷新索引,請執行以下操作:
“在項目瀏覽器上右擊項目”>>索引>>重建;
Ps。:我在ubuntu 15.04 64bits上使用gcc 4.9.2和eclipse Luna(4.4.2)
我想你應該在Eclipse中的“Paths and Symbols”中添加__GXX_EXPERIMENTAL_CXX0X__
定義。 另請參閱這個問題GNU C ++如何檢查-std = c ++ 0x何時生效? 並且相同的問題Eclipse索引器無法解析shared_ptr的shared_ptr
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.