0

現在、私はVisual Studio 2008でC++プロジェクトに取り組んでいます.私はそのような長い名前空間を持っています

System::Drawing::Rectangle 

これらのようなエイリアスを使用したい

namespace SDR = System::Drawing::Rectangle;

しかし、IntelliSense はこれらのエイリアスを認識しません。私は個人的にusingディレクティブのファンではありません.私の個人的な好みは、完全な名前空間を修飾することですが、それらの名前空間がエディターを詰まらせるのも好きではありません.このインテリセンスの問題の回避策はありますか? または私は何かが欠けていますか?また、これらのエイリアスはブロック スコープであることに注意してください。

4

1 に答える 1

1

Rectangle は名前空間名ではなく型名です。したがって、次のいずれかの方法でこれを行う必要があります。

namespace SD = System::Drawing;
SD::Rectangle rc(0, 0, 10, 20);

またはこの方法:

typedef System::Drawing::Rectangle SDR;
SDR rc(0, 0, 10, 20);

いつかあなたのコードを保守する必要があり、あなたの住んでいる場所を知っているプログラマーには注意してください。

于 2013-04-12T11:41:49.397 に答える