私はcharに対してswitchステートメントを実行していますが、多くの場合、との間の唯一の違いは、特定の構造体'A'
に'a'
ある特定の静的定数とランダムな数値定数です。次に例を示します。
switch(someChar)
{
case 'A':
{
typedef structWithConstants<caseA, UPCASE> constantsT;
someStruct s;
s.bla = bla;
s.foo = getfoo7(rat+constantsT::rat);
s.other = getOther10(other + constantsT::other);
someFunctionBar(&s);
}
break;
case 'a':
{
typedef structWithConstants<caseA, LOWCASE> constantsT;
someStruct s;
s.bla = bla;
s.foo = getfoo3(rat+constantsT::rat);
s.other = getOther10(other + constantsT::other);
someFunctionBar(&s);
}
break;
}
したがって、上記では、文字通り、コードに関する唯一の違いは、使用される定数Tと7が3に切り替えられることです...少し上の反復コードを単純化する方法はありますか?たぶん、両方のケースに共通する動作のいくつかを崩壊させますか?