제목 허접해서 ㅈㅅ


C++ 하고있고 템플릿 가지고 노는데

만약 내가 만든 클래스 custom_string_type이 있다고 하면 (진짜로 커스텀 문자열을 만든게 아니라 예시로 들은것)

str 정의가 auto str = custom_string_type("asdf"); 일 때

(std::string) str 이런식으로 명시적이든 아니면 암시적이든 아무튼 변환 하려면

std::string에 컨스트럭터 string(custom_string_type str)이 있어야 하잖아

그런데 이걸 못하니 대신 custom_string_type에 메소드 to_string()을 선언해서 써야하는데..

여기까진 괜찮아 그런데


만약 내가 만든 template <class _Type> class CLASS라는 컨테이너에서 메소드 dump()가 있고 안에 필드로 _Type data가 있을 때

dump()의 리턴값이 "dump data:" + data.to_string()이라면 custom_string_type은 담을 수 있겠지만

CLASS <int>조차 제대로 처리 못하게 되어버리니까 뭔가 잘못된 코드가 되어버림

그러면 to_string 함수를 만들어서 타입별로 오버로드를 해야하냐?하면 또 어디선가 실수를 하게 될 것 같음

이럴 땐 어떤 방법을 써서 데이터를 다뤄야함?

아니면 이런 종류의 함수를 만들겠다는 발상 자체가 금기시되어야 하는거임?