那麼,這是不是一個真正的編程問題,但更多的好/壞的做法命名空間包含在報頭和模板類
我的工作我的CSP當然最後的項目是與幾個求解器庫。大多數課程都是模板化的。 AFAIK沒有優雅的方式來分離源代碼和頭文件,以獲得乾淨的二進制和開發人員。其實在這裏沒有真正的二進制。代碼生成階段將在最終代碼中由編譯器完成。
另一方面,我使用boost asio庫以便攜式的方式進行網絡連接。從基礎編程課程中,我知道在標題中使用using namespace
是一種不好的做法。因爲這樣做會限制最終用戶在他/她的私有代碼中使用更有限的命名選項,並且更容易出現衝突。
最後,爲了使代碼清晰,我想在我的代碼中使用unisg namespcae
或using
。我的問題是最好的方法是什麼?我做錯了嗎?目前我使用using
S的內部函數頭(未在全局範圍內)是這樣的:
// File : abt-solver.h
template<typename valueType>
inline void AIT::ABT_Solver<valueType>::connect() {
using boost::asio::ip::tcp; // <===== Here
using namespace std; // <===== And here
tcp::resolver::query query(this->address, this->portNumber);
tcp::resolver::iterator endpoint_iterator = resolver.resolve(query);
tcp::resolver::iterator end;
boost::system::error_code error = boost::asio::error::host_not_found;
while (error && endpoint_iterator != end) {
// blah blah blah ...