'RAII'에 해당되는 글. 1건

  1. 2010/05/27 [C++] 임의의 이름의 변수 만들기

C++로 프로그래밍을 하다보면 딱히 변수 이름이 중요하지 않을 때가 많이 있습니다.
주로 생성자 혹은 파괴자를 이용한 RAII 패턴을 사용하는 상황이 그렇습니다.


임의의 변수명은 Macro를 이용하여 구현합니다.

 

#include <boost/preprocessor/cat.hpp>

#define RANDOM_NAME BOOST_PP_CAT(_random_, __COUNTER__)

 


선언은 위와 같이 하고
대략적인 사용은 아래와 같이 합니다.

 

namespace NS

{

    bool Func(Arg* arg)

    {

        SomeGuard<Arg> RANDOM_NAME(arg);

 

        (...)

    }

 

    static Initialization RANDOM_NAME;

}

 



이렇게 만들어진 변수 명은 '해당 변수를 생성자와 파괴자의 동작만 사용하겠다' 라고 명시적으로 지정하는 역할도 담당하게 됩니다. 변수 명을 알 수가 없으니까 강제로 다른 용도로 사용하려고 해도 할 수가 없겠지요.



Posted by U∙Seung