namespace std {
template<class Context>
class basic_format_arg {
public:
class handle;
private:
using char_type = typename Context::char_type; // exposition only
variant<monostate, bool, char_type,
int, unsigned int, long long int, unsigned long long int,
float, double, long double,
const char_type*, basic_string_view<char_type>,
const void*, handle> value; // exposition only
template<class T> explicit basic_format_arg(T& v) noexcept; // exposition only
public:
basic_format_arg() noexcept;
explicit operator bool() const noexcept;
template<class Visitor>
decltype(auto) visit(this basic_format_arg arg, Visitor&& vis);
template<class R, class Visitor>
R visit(this basic_format_arg arg, Visitor&& vis);
};
}
概要
フォーマット引数1つを保持する型。
デフォルトコンストラクタのみ公開されていて、デフォルトコンストラクタで構築したオブジェクトは無効である。
この型の有効なオブジェクトを直接構築することはできず、make_format_args
を使う必要がある。
保持している値へのアクセスはvisit_format_arg
を使う。
このテンプレートを特殊化した場合、プログラムの動作は未定義である。
メンバ関数
構築・破棄
名前 | 説明 | 対応バージョン |
---|---|---|
(constructor) |
コンストラクタ | C++20 |
変換演算子
名前 | 説明 | 対応バージョン |
---|---|---|
operator bool |
bool への変換演算子(空の時false ) |
C++20 |
メンバ型
名前 | 説明 | 対応バージョン |
---|---|---|
handle |
ユーザー定義型のアドレスを保持する型 (class) | C++20 |
非メンバ関数
名前 | 説明 | 対応バージョン |
---|---|---|
make_format_args |
basic_format_arg の列を構築する (function template) |
C++20 |
visit_format_arg |
basic_format_arg オブジェクトが現在保持している型に対応する関数を呼び出す (function template) |
C++20 |
バージョン
言語
- C++20
処理系
- Clang: ??
- GCC: ??
- ICC: ??
- Visual C++: ??