짧게 한줄요약부터 하자면 많이 쓰임.
STL이나 boost같은 라이브러리 가져다가 쓰면 TMP로 뭘 구현하긴 커녕 읽을일조차 거의없으니까 TMP가 하등 쓸모없는 기법이라고 오해하게되는것도 이해는 가는데 저런 라이브러리 내부 까봤으면 알겠지만 런타임연산보다 컴파일타임 연산에 더 적합한 부분은 다 TMP로 돌아감.
ub(99.199)2020-04-02 05:03
답글
아 그렇다고해서 커뮤니티에 올라오는 "모든" TMP 예제 코드들이 업계에서 쓰일만한 실용적인 코드들은 아님. 당연히 그중에 "이거봐봐 너네 이거 못하지? 나 쩔지? 빨리 나좀 우러러 봐줘." 같이 ego-stroke하려는 목적으로 올려놓은 예제도 섞여 있음.
이건 TMP뿐만이아니라 어느 기법, 기술이나 똑같긴 한데 뭔가 커뮤니티 분위기를 보면 TMP만 이런 bad reputation을 가지고있는거같아서 한마디 더 하고 감.
ub(99.199)2020-04-02 05:17
답글
많이 쓰인다고 하기에는 STL과 boost에서만 쓰이는 것 아닌가..?
프레스비디오(xpressvideoz)2020-04-02 06:36
답글
STL이랑 boost 둘을 "에서만" 이라고 치부하기엔 위 라이브러리들이 너무 기본적이면서 많은곳에서 쓰이는 라이브러리기도 하고, STL이랑 boost 둘을 쓸수있는 privilege가 모두에게 있는것도 아님. STL이랑 boost 사내에서 못쓰게하면? 똑같거나 비슷한거 TMP질 해가며 만들어야됨.
개인적인 경험이지만 사내에서 최대한 범용성을 띄는 기초적인 유틸리티/자료구조에는 TMP가 무조껀 들어가긴 했는데, business logic에선 업계마다 극단적으로 TMP가 많이 들어가는곳도 있고 아예 안쓰이는곳도 있어서 이건 뭐 업계마다 다르다고밖에 말을 못하겠네.
ub(99.199)2020-04-02 07:35
답글
ㄷㄷ 나도 C++제대로 써먹는 업계에서 일해보고싶노
익명(106.102)2020-04-02 13:17
답글
비즈니스로직에 TMP는 에바참치인거같음
익명(106.102)2020-04-02 13:18
답글
나도 대부분의 필드에서 business logic에 TMP가 많이들어가는건 너구리사냥가는데 탱크 몰고 가는거마냥 뻘짓이라고 생각하는 입장인건 너랑 같긴 한데,
가독성 해침, 어려워지는 디버깅, TMP 코드베이스 합리적인시간안에 개발/디버그/유지보수 가능한 인력으로 강제되는 팀, 늘어나는 컴파일시간 등의 단점을 다 안고 가더라도 무슨 이유던간에 컴파일타임에 resolve되야하는 로직이 많이 필요하거나 런타임성능이 중요시되는 필드 한정으론 TMP 남발해도 괜찮다고 생각함.
짧게 한줄요약부터 하자면 많이 쓰임. STL이나 boost같은 라이브러리 가져다가 쓰면 TMP로 뭘 구현하긴 커녕 읽을일조차 거의없으니까 TMP가 하등 쓸모없는 기법이라고 오해하게되는것도 이해는 가는데 저런 라이브러리 내부 까봤으면 알겠지만 런타임연산보다 컴파일타임 연산에 더 적합한 부분은 다 TMP로 돌아감.
아 그렇다고해서 커뮤니티에 올라오는 "모든" TMP 예제 코드들이 업계에서 쓰일만한 실용적인 코드들은 아님. 당연히 그중에 "이거봐봐 너네 이거 못하지? 나 쩔지? 빨리 나좀 우러러 봐줘." 같이 ego-stroke하려는 목적으로 올려놓은 예제도 섞여 있음. 이건 TMP뿐만이아니라 어느 기법, 기술이나 똑같긴 한데 뭔가 커뮤니티 분위기를 보면 TMP만 이런 bad reputation을 가지고있는거같아서 한마디 더 하고 감.
많이 쓰인다고 하기에는 STL과 boost에서만 쓰이는 것 아닌가..?
STL이랑 boost 둘을 "에서만" 이라고 치부하기엔 위 라이브러리들이 너무 기본적이면서 많은곳에서 쓰이는 라이브러리기도 하고, STL이랑 boost 둘을 쓸수있는 privilege가 모두에게 있는것도 아님. STL이랑 boost 사내에서 못쓰게하면? 똑같거나 비슷한거 TMP질 해가며 만들어야됨. 개인적인 경험이지만 사내에서 최대한 범용성을 띄는 기초적인 유틸리티/자료구조에는 TMP가 무조껀 들어가긴 했는데, business logic에선 업계마다 극단적으로 TMP가 많이 들어가는곳도 있고 아예 안쓰이는곳도 있어서 이건 뭐 업계마다 다르다고밖에 말을 못하겠네.
ㄷㄷ 나도 C++제대로 써먹는 업계에서 일해보고싶노
비즈니스로직에 TMP는 에바참치인거같음
나도 대부분의 필드에서 business logic에 TMP가 많이들어가는건 너구리사냥가는데 탱크 몰고 가는거마냥 뻘짓이라고 생각하는 입장인건 너랑 같긴 한데, 가독성 해침, 어려워지는 디버깅, TMP 코드베이스 합리적인시간안에 개발/디버그/유지보수 가능한 인력으로 강제되는 팀, 늘어나는 컴파일시간 등의 단점을 다 안고 가더라도 무슨 이유던간에 컴파일타임에 resolve되야하는 로직이 많이 필요하거나 런타임성능이 중요시되는 필드 한정으론 TMP 남발해도 괜찮다고 생각함.
https://github.com/hanickadot/compile-time-regular-expressions