[英]Was including <random> necessary in GCC 4.8?
我繼承了2014年編寫的C ++項目,並且確實可以使用GCC 4.8進行編譯。 在特定文件中,實例化了當前在C ++標准庫的<random>
標頭中找到的幾個類。 這些措施包括mt19937
, random_device
, uniform_real_distribution
和normal_distribution
。
當我使用GCC 7.3編譯此文件時,出現一條錯誤消息,指出這些類未在std
名稱空間中定義。 當我包含<random>
時,此錯誤(顯然)消失了。
我的問題是,為什么在GCC 4.8中不會發生此錯誤? 這些類以前是否在其他標頭下找到?
標准標題可能包括其他標題 。 當他們共享一個實現時,這可能會很有用。 但是,這些事情可能會隨着時間而改變,例如,當公共部分重構為第三個(內部)頭文件時。
由於我們不確切知道<random>
是如何間接包含在GCC4.8中的,因此我們對所發生的事情不是絕對肯定的,但這並不奇怪。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.