我有一些代碼在使用boost之前做出的。我在「核心」命名空間中創建了自己的綁定函數(類似於bind1st)。它曾經工作得很好。C++ 11命名空間查找從C++ 98更改?
但是,當向gcc添加-std = C++ 11時,許多使用綁定被解析爲std :: bind而不是core :: bind,從而導致編譯錯誤。 我可以通過將「綁定」的所有用途更改爲顯式「core :: bind」來使其工作。
這發生在命名空間核心內的所有代碼中,核心下的嵌套命名空間以及我使用「使用命名空間核心」的地方。即使是「遞歸」調用來綁定我的綁定實現有問題。
我在預處理器輸出中查找了「using namespace std」,並且只能從boost中找到交換方法內的一個實例,並且仍然從std ::而不是core ::中找到綁定。
此外,gcc-5.3.1比gcc-4.8.4失敗的多。
請問您可以顯示[mcve]嗎? –