constexpr 이랑 macro, class 를 써 보아요~
template< class T >s
constexpr bool size8() { return sizeof( T ) == 8; }
template< class T >
constexpr bool size4() { return sizeof( T ) == 4; }
template< class T >
constexpr bool size2() { return sizeof( T ) == 2; }
#define stab( cond, rt ) typename enable_if< cond(), rt >::type
using namespace std;
template< class T >
stab( size8< T >, void ) func( T v )
{
...
}
template< class T >
stab( size4< T >, void ) func( T v )
{
...
}
template< class T >
stab( size2< T >, void ) func( T v )
{
...
}
와 가독성을 이렇게 살리네
constexpr함수는 제가 아직 익숙하지가 않네요 얘가 항상 constexpr로 평가되는게 아니라 const로 강등되고 스까지던거 같은데..
변수를 던지지 않는한~
런타임에 계산되면 const처럼 작동하고 아니면 컴파일타임에 작동한대여
흠 괄호 떼서 매크로에 붙일껄 그랬나.
이게 인자로 넘어가는 값에 영향을 받는거죠?
쓸데없이 함수 두개 만들 필요없어 개꿀인 부분
2016이가 작성한 코드의 syntactic sugar 입니당~ 똑같음
괄호 옮김요~
달달한 코드네요
별에별기법들이다있구마이