template< typename T >

inline  char*   parse_number( const char* string, T& param )

{

    char* s = (char*)string;

    while( *s == ' ' || *s == '\t' || *s == '\n' || *s == '/' || *s == ':' ) s++;


    if( std::is_integral< T >::value )

    {

        if( std::is_signed< T >::value )

        { // 여기

            param = atoi< T >( s );

        } // 여기

        else

        { // 여기

            param = atou< T >( s );

        } // 여기

    }

    else if( std::is_floating_point< T >::value )

    {

        param = atof< T >( s );

    }


    return  s;

}


중괄호 안넣으면 is_signed< T >::value 조건에서 else 인데도 atoi 랑 atou 둘 다 실행된다. 캭캭.