반응형
std::string을 사용하면서 printf처럼 formatting 기능을 사용하고 싶었다.
혹시 새로운 기능이 없을까 하고 검색해보니 c++20에 std::format이라는 기능이 추가되었다고 한다.
std::format은 아래와 같이 std::string_view를 인자로 받는다.
template<class... Args>
string format(string_view fmt, const Args&... args);
string_view이기 때문에 그냥 const char*를 넘겨도 된다.
기본 사용방법은 아래와 같다.
std::format("{} {}!", "Hello", "world"); // Hello world!
{} 위치에 배치된다고 보면 된다.
{} 이곳에 들어갈 여러가지 기능들은 너무 많아서 링크로 대신한다.
필요할때 마다 검색해서 사용해봐야 될 것 같다.
https://en.cppreference.com/w/cpp/utility/format/formatter#Standard_format_specification
format을 사용하기 위해서는 Visual Studio 2019를 16.10 버전 이상으로 올려야 하고
C++ 버전은 latest로 변경해야 한다.
Vector3를 String으로 변경하는 간단한 코드를 예제로 남기고 마무리하면 될 것 같다.
class Vector3
{
public:
float x_, y_, z_;
public:
std::string toString()
{
return std::format("( {:.2f}, {:.2f}, {:.2f} )", x_, y_, z_);
}
};
반응형
'프로그래밍 > C, C++' 카테고리의 다른 글
[C++14/17/20] 자주 사용할 것 같은 attribute만 간단 정리 (0) | 2021.10.05 |
---|---|
[C++] 스마트 포인터 unique_ptr 간단 정리 (0) | 2021.08.05 |
[C++11/C++17] 유니폼 초기화 (Uniform Initialization) (0) | 2021.07.30 |
[C++17] string_view 간단 정리 (0) | 2021.05.07 |
More Effective C++ - 항목5 ~ 항목8 (0) | 2018.04.01 |