Interval 코드

음; 자꾸 삽질로 테스트하면 안 되는데-_-;
테스트는 자동화해야 되는데-_-;
하도 너저분하게 범위 확인하는 코드가 많아서 싹 걷어낼 요량으로 만들었;
배고파~~ 집에 가서 밥 먹어야지~

#include <iostream>

typedef unsigned long DWORD;

template <DWORD MIN, DWORD MAX>
class Interval
{
public:
    Interval(DWORD seconds)    { Assign(seconds); }
    Interval& operator = (DWORD seconds)    { Assign(seconds); return *this; }

    operator const DWORD& () const    { return interval_; }

private:
    DWORD interval_;
    void Assign(DWORD interval)
    {
        if(interval < MIN) interval_ = MIN;
        else if(interval > MAX) interval_ = MAX;
        else interval_ = interval;
    }
};

int main()
{
    Interval<5, 60> interval(100);
    Interval<100, 150> interval2(200);
    
    std::cout << interval << std::endl;
    interval = 3;
    std::cout << interval << std::endl;
    interval = 30;
    std::cout << interval << std::endl;
    std::cout << interval2 << std::endl;
    interval = interval2;
    std::cout << interval << std::endl;

    return 0;
}

트랙백

이 글과 관련된 글 쓰기 (트랙백 보내기)
TrackbackURL : http://www.xeraph.com/tb/553667 [도움말]

덧글

댓글 입력 영역