본문 바로가기

기타

[C++] ToString() 사용하기

C++에는 없지만 다른 언어에는 존재하는 ToString 기능이 부러워서 만들어 보았습니다.


소스 코드와 사용법 : https://github.com/pjc0247/to.cpp



대략적인 사용법은 아래와 같습니다.



* 다른 곳에서 std::to_string과 뭐가 다르냐는 소리를 하도 들어서 추가로 적는 부분


std::to_string은 C++의 기본타입들에대해서만 문자열 변환 기능을 제공합니다. 심지어 STL 컨테이너조차도 문자열화가 불가능합니다.


to.cpp는 STL 컨테이너 뿐만 아니라 유저 클래스에 대해서도 문자열화가 가능합니다. 유저 클래스는 사용자가 to_string 메소드를 생성하여 이 클래스가 어떻게 문자열화되어야하는지 구성할 수 있습니다. (다른 언어와 동일)

to_string 메소드를 구현하지 않은 경우에도, 최소한 클래스 이름과 메모리 주소값은 찍어주기 때문에 두개의 오브젝트가 같은지 다른 인스턴스인지는 구분할 수 있습니다.


또한 유틸리티 기능인 CREATE_TO_STRING 매크로를 제공합니다. 이는 자동으로 클래스에 대해서 to_string 메소드를 만들어줍니다. 자세한 사항은 github 를 참조하세요.