在特定命名空間中創建庫時,爲該命名空間中的類提供重載運算符通常很方便。看來(至少使用g ++)的重載運算符可以在圖書館的命名空間來實現:C++中的命名空間和運算符重載
namespace Lib {
class A {
};
A operator+(const A&, const A&);
} // namespace Lib
或全局命名空間
namespace Lib {
class A {
};
} // namespace Lib
Lib::A operator+(const Lib::A&, const Lib::A&);
從我的測試中,他們似乎都做工精細。這兩個選項有什麼實際區別嗎?兩種方法都更好嗎?
使用庫名稱空間的另一個原因:[本文](http://stackoverflow.com/questions/5195512/namespaces-and-operator-resolution)包含一個使用全局名稱空間不起作用的示例。 – Tim 2015-06-15 11:20:28