어케씀?
[%] 러스트 std is_same_v 같은거 있나??
익명(223.38)
2020-03-07 12:53
추천 0
댓글 13
다른 게시글
-
C++ 블로그에서 강한 타입이 필요할 때가 있다며 본건데 [9][%] 익명(221.151) | 20.03.07추천 0
-
c 라이브로리 musl (libc) 뽐뿌 [1][%] 익명(218.147) | 20.03.07추천 0
-
Rustacean들이 다른 언어를 보는눈 [2][%] ㅇㄹ(rerereq) | 20.03.07추천 0
-
아치를 홈 서버용으로? [7][%] 익명(211.38) | 20.03.07추천 0
-
개방형 OS에서 '개방형'의 의미는 뭔가요? [6][%] Coma(bmh4080) | 20.03.07추천 0
-
러스트배우면 오히려 불만만 커지는거 아님? [7][%] 익명(175.223) | 20.03.07추천 0
-
멀티쓰레드하고 병렬처리하고 같은 개념임? [8][%] 익명(218.39) | 20.03.07추천 0
-
2시간동안 못잡던 버그 드디어 잡음 [3][%] ㅇㄹ(rerereq) | 20.03.07추천 0
-
안랩에서 리눅스용 백신 만들었음 [4][%] 익명(194.5) | 20.03.06추천 0
-
팀 프로젝트 스터디그룹 어디서 구하냐 [6][%] 익명(222.119) | 20.03.06추천 0
https://doc.rust-lang.org/std/any/trait.Any.html#method.is
근데 보통 이런거 필요한건 설계가 좀 잘못된 경우가 많음
이건 is_same_v랑 아무 상관없는 함수인데? is_same_v는 애초에 런타임 함수가 아님
https://en.cppreference.com/w/cpp/types/is_same
std에 있는것중에선 제일 비슷한 역할인데..
https://rust.godbolt.org/z/-socvZ
is는 런타임에 쓰는 용도긴한데 type_id 얻는건 컴파일타임에 타입 알고있으면 다 최적화됨
예를들어 제네릭함수 내부에서 조건문으로 T가 뭐일땐 어떻게 하고 뭐일땐 어떻게 하고 이런 분기를 하려면 어떻게해야됨?
그걸 함수안에서 하지말고 구현을 분리해
타입별로 다른 동작이 필요하면 그걸 trait로 만들어서 걔네보고 구현하라고 하고 너는 그걸 갖다쓰기만 하면됨
꼭 비슷하게 만들어 쓰고싶으면 이렇게 만들면됨 몇줄안필요함
https://play.rust-lang.org/?version=nightly&mode=debug&edition=2018&gist=8cee47a79bb78601515b7cbba4f6036b
이거 스테이블 아님?
specialization은 나이틀리임
이 함수 써보면 알겠지만 어차피 타입검사 때문에 C++처럼 짜맞추는 식으로는 못만듬
흠;