Namespaces
Variants

std:: runtime_format

From cppreference.net
헤더 파일에 정의됨 <format>
/*runtime-format-string*/ < char > runtime_format ( std:: string_view fmt ) noexcept ;
(1) (C++26부터)
/*runtime-format-string*/ < wchar_t > runtime_format ( std:: wstring_view fmt ) noexcept ;
(2) (C++26부터)

사용자 지향 서식 함수에서 직접 사용 가능한 런타임 형식 문자열을 저장하는 객체를 반환하며, std::basic_format_string 으로 암시적으로 변환될 수 있습니다.

목차

매개변수

fmt - 문자열 뷰

반환값

노출 전용(exposition-only) 타입의 런타임 형식 문자열을 보유하는 객체:

클래스 템플릿 runtime-format-string <CharT>

template < class CharT >
struct /*runtime-format-string*/ ;
( 설명 전용* )

멤버 객체

반환된 객체는 설명 전용 비정적 데이터 멤버 str 을 포함하며, 이는 std::basic_string_view<CharT> 타입입니다.

생성자와 할당 연산자

/*runtime-format-string*/ ( std:: basic_string_view < CharT > s ) noexcept ;
(1)
/*runtime-format-string*/ ( const /*runtime-format-string*/ & ) = delete ;
(2)
/*runtime-format-string*/ & operator = ( const /*runtime-format-string*/ & ) = delete ;
(3)
1) str s 로 초기화합니다.
2) 복사 생성자가 명시적으로 삭제되었습니다. 이 타입은 복사 가능하지도 이동 가능하지도 않습니다.
3) 할당 연산자가 명시적으로 삭제되었습니다.

참고 사항

runtime_format 의 반환 타입은 복사 가능하지도 이동 가능하지도 않기 때문에, runtime_fmt 를 glvalue로 전달하려는 시도는 std::basic_format_string 의 생성을 억제하여 프로그램이 비정형이 됩니다. runtime_format 으로 std::basic_format_string 을 생성하려면, runtime_format 의 반환값이 복사 생략이 보장되는 prvalue로 std::basic_format_string 에 직접 전달되어야 합니다.

auto runtime_fmt = std::runtime_format("{}");
auto s0 = std::format(runtime_fmt, 1); // 오류
auto s1 = std::format(std::move(runtime_fmt), 1); // 여전히 오류
auto s2 = std::format(std::runtime_format("{}"), 1); // 정상
기능 테스트 매크로 표준 기능
__cpp_lib_format 202311L (C++26) 런타임 형식 문자열

예제

#include <format>
#include <print>
#include <string>
#include <string_view>
int main()
{
    std::print("Hello {}!\n", "world");
    std::string fmt;
    for (int i{}; i != 3; ++i)
    {
        fmt += "{} "; // 포맷팅 문자열 구성
        std::print("{} : ", fmt);
        std::println(std::runtime_format(fmt), "alpha", 'Z', 3.14, "unused");
    }
}

출력:

Hello world!
{}  : alpha
{} {}  : alpha Z
{} {} {}  : alpha Z 3.14

참고 항목

(C++20)
인수의 서식이 지정된 표현을 새 문자열에 저장합니다
(함수 템플릿)
(C++20)
타입 삭제된 인수 표현을 사용하는 std::format 의 비템플릿 변형
(함수)
생성 시점에 컴파일 타임 형식 문자열 검사를 수행하는 클래스 템플릿
(클래스 템플릿)