簡體   English   中英

使用Boost和C ++ 14編譯器

[英]Using Boost with C++14 compiler

當我使用C ++ 11支持編譯我的代碼(使用-std=c++11標志)並使用非標頭的Boost庫時,我需要使用-std=c++11編譯Boost。 這是因為當啟用C ++ 11時,Boost在頭文件中有一些接口差異,並且某些功能簽名對於不同的C ++標准是不同的。

我的問題是C ++ 14是否也是如此(使用g ++ 4.9,使用`-std = c ++ 1y標志),或者使用C ++ 11編譯的Boost是否可以安全地使用C編譯的程序++ 14?

這是一個非常廣泛的問題,很難明確回答,因為

  • Boost是一個圖書館聯盟,其中許多已有十多年的歷史
  • 有很多向后兼容性原則上可以發生,有些是由編譯器檢測到的,有些只是通過單元測試
  • 許多Boost庫實際上是C ++ 11/14功能的C ++ 98實現(包括庫和編譯器功能),因此您不需要在C ++ 11/14項目中使用它。
  • Boost本身就是在討論庫應該更新到C ++ 11/14的非常多的爭論,是否應該編寫完全利用C ++ 11/14的V2版本的庫,甚至是新的C ++ 11 / 14庫應提供向后C ++ 98兼容性

您可能希望仔細閱讀編譯器錯誤(如果有),並將它們與下面列出的重大更改列表進行比較。 此外,我建議遵循Boost測試工具來查找適用於您系統的可疑編譯器/庫組合。

一些相關的問答在這里:

  1. C ++ 11中引入了哪些重大變化?
  2. C ++ 14中引入的哪些更改可能會破壞用C ++ 11編寫的程序?
  3. 與C ++ 11相關的增強功能
  4. 如何提升使用c ++ 11?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM