2017-02-16 4 views
4

のディレクティブの代わりに、私は次のように、唯一私が使用するつもりだものを含めるのが好き:複数使用して機能

void doStuff() { 
    using std::sin; 
    using std::cos; 
    ... 
    // do stuff 
} 

時々このリストは長く成長します。私はそれをスリムダウンし、次の(それが変数の宣言で可能だのと同じように)にしたかった:

void doStuff() { 
    using std::sin, std::cos; 
    // do stuff 
} 

が、私はこれが (error: expected ';' after using declaration)ことができなかったことを見つけるために驚きました。 usingがこのように定義されている理由はありますか?指定された名前空間から多くの関数を正確に含める別の方法がありますか(using namespace ...;を除く)私が欲しいもの

+3

、あなたの 'using'sは長い'のstdよりなる:: 'sのあなた自身は省略することができます。 – Barry

+0

@Barryそれはすべての後に私が含まれている関数を何回使用するかによって異なります;)しかし、はい、確かに!私はたいてい、すべてが時間の経過とともに視覚的に混じり合う傾向のある数学関数でのみこれを行います。ニースのすべてを得るために良い:: :: '。 – pingul

+1

あなたがやっていることほど良くはありませんが、関数スコープでは 'using namespace std;'を使うことができます。個人的にはどこでも 'std ::'を使うだけですが。 – NathanOliver

答えて

4

は現在可能ではないようです。しかし、en.cppreference.comから:

using宣言つ以上使用して、宣言とは、宣言子を用いたもので、宣言を使用しての対応する配列に相当します。 (C++ 17以降)

次の例では:

namespace X { 
    using A::g, A::g; // (C++17) OK: double declaration allowed at namespace scope 
} 

これは、それが将来的には可能かもしれないことを示唆しているようです。いくつかの時点で

関連する問題