// test.hpp
class TEST {
public:
void func();
private:
void funcA();
void funcB();
void funcC();
};
// test.cpp
void TEST::funcA(){}
void TEST::funcB(){}
void TEST::funcC(){}
void TEST::func(){
funcA();
funcB();
funcC();
}
意味的には下記のラムダ式のような感じですが、関数内で定義するためインデントが深くなりあまり好きではありません。
void TEST::func(){
auto funcA = [&]{};
auto funcB = [&]{};
auto funcC = [&]{};
funcA();
funcB();
funcC();
}
①先に定義したfuncAからは後に定義したfuncBやfuncCを呼べない
②publicのfunc2()やfunc3()をtest.cppに新設した場合に共有で使えない
言語仕様上無理かなとも思ってますが何か方法があれば。
なおマクロ(define)は避けたいです。