상세 컨텐츠

본문 제목

std::string 으로 format 구현

컴퓨터 언어/C++

by cepiloth 2021. 4. 29. 16:31

본문

728x90
반응형

구현부

template<typename ... Args> 
std::string string_format(const std::string& format, Args ... args)
{
	size_t size = snprintf(nullptr, 0, format.c_str(), args ...) + 1; // Extra space for '\0' 
	if (size <= 0) {
		throw std::runtime_error("Error during formatting.");
	}
	std::unique_ptr<char[]> buf(new char[size]);
	snprintf(buf.get(), size, format.c_str(), args ...);
	return std::string(buf.get(), buf.get() + size - 1); // We don't want the '\0' inside }
}

 

사용법

std::string save_path = string_format("d:\\test%d.tif", count++);

 

https://gist.github.com/kuonzZ/14c0ee6a21950f8b46f50ae7053c0873

 

728x90
반응형

'컴퓨터 언어 > C++' 카테고리의 다른 글

C++ 메모리 관리  (0) 2021.04.29
template method 기본 인자에 대한 형식 연역  (0) 2021.04.29
template method  (0) 2021.04.29
전방 선언 Forward Declaration  (0) 2020.09.25
타입추론  (0) 2020.06.22

관련글 더보기

댓글 영역