最終更新日時(UTC):
が更新

履歴 編集

variable
<format>

std::enable_nonlocking_formatter_optimization(C++26)

namespace std {
  template <class T>
  constexpr bool enable_nonlocking_formatter_optimization = false; // (1) C++26
}

概要

std::print()std::println()の効率的な実装を有効にする。

この値がtrueで定義される場合、文字列フォーマットされた文字列のストリームへの書き込み時に、余分な動的メモリ確保を行わない。

とくに指定されない限り、標準ライブラリでstd::formatterの特殊化が定義される型に対して、各ヘッダは以下の特殊化を定義する:

template<>
inline constexpr bool enable_nonlocking_formatter_optimization<T> = true;

Rangeに対しては、以下が定義される:

template <ranges::input_range R>
  requires (format_kind<R> != range_format::disabled)
inline constexpr bool enable_nonlocking_formatter_optimization<R> = false;

std::pairおよびstd::tupleに対しては、以下が定義される:

template <class... Ts>
inline constexpr bool enable_nonlocking_formatter_optimization<pair-or-tuple<Ts...>> =
  (enable_nonlocking_formatter_optimization<Ts> && ...);

備考

  • ユーザーは、任意のCV修飾されないユーザー定義型でこの型の特殊化を定義できる

バージョン

言語

  • C++26

処理系

関連項目

参照