[c++] 실행 시점 매개변수화(namespace)

C++에서는 템플릿을 사용하여 실행 시점 매개변수화(runtime parameterization)를 구현할 수 있습니다. 이를 통해 실행 시점에 데이터 형식이나 동작을 결정할 수 있습니다.

#include <iostream>

template <typename T>
void process(T value) {
    // 템플릿 매개변수로 전달된 데이터 형식에 따라 동작을 처리
    std::cout << "Value: " << value << std::endl;
}

int main() {
    process<int>(100);  // int 형식으로 호출
    process<double>(3.14);  // double 형식으로 호출
    return 0;
}

위 예제에서 process 함수는 템플릿으로 선언되어 있으며, 실행 시점에 전달된 데이터 형식에 따라 다른 동작을 수행합니다.

또한, 네임스페이스(namespace)를 활용하여 데이터 형식을 분리하고 구조화할 수 있습니다. 네임스페이스는 독립적인 영역을 제공하여 이름 충돌을 방지하고 코드를 구조화할 수 있게 합니다.

namespace math {
    const double PI = 3.14;
}

int main() {
    std::cout << "PI Value: " << math::PI << std::endl;
    return 0;
}

위 예제에서 math라는 네임스페이스를 사용하여 상수 PI를 정의하고, 해당 네임스페이스를 통해 접근합니다.

템플릿과 네임스페이스를 이용하여 C++에서 실행 시점 매개변수화와 코드 구조화를 유연하게 구현할 수 있습니다.

참고 자료