次の定義があるとします。
namespace test
{
class Test1
{
void someMethod(double a);
void someOtherMethod(double a);
//...
};
class Test2
{
void someMethod(double a);
void someOtherMethod(double a);
//...
};
}
実装例(方法1)は次のとおりです。
namespace test
{
// Test1
// ----------------
void Test1::someMethod(double a){
// do something
}
void Test1::someOtherMethod(double a){
// do something else
}
// Test2
// ----------------
void Test2::someMethod(double a){
// do something
}
void Test2::someOtherMethod(double a){
// do something else
}
}
代替の実装(方法2)は次のとおりです。
// Test1
namespace test
{
void Test1::someMethod(double a){
// do something
}
void Test1::someOtherMethod(double a){
// do something else
}
}
// Test2
namespace test
{
void Test2::someMethod(double a){
// do something
}
void Test2::someOtherMethod(double a){
// do something else
}
}
物事を実装する通常の方法は、メソッド1を使用することです。メソッド2の結果は、各クラスのすべての実装コードを多くのエディターで折りたたむことができるということです。これは、私が非常に気に入っている機能です。
たとえば、新しいクラスごとに名前空間を再度開かなくても、これを行うためのより洗練された方法があるかどうか疑問に思いました。私はこれを試しました:
{
void Test1::someMethod(double a){}
}
{
void Test2::someMethod(double a){}
}
しかし、それはうまくいきません(私には完全に明白ではない理由のために、私は認めなければなりません...)。コードを折りたたみ可能にする以外の効果がない、有効で類似したものはありますか?
明らかに、それは可能な限り移植可能であり、特定のエディターに依存しないようにする必要があります。