Skip to content

Latest commit

 

History

History
63 lines (47 loc) · 1.46 KB

File metadata and controls

63 lines (47 loc) · 1.46 KB

define_static_string

  • meta[meta header]
  • std[meta namespace]
  • function template[meta id-type]
  • cpp26[meta cpp]
namespace std {
  template <ranges::input_range R>
  consteval const ranges::range_value_t<R>* define_static_string(R&& r);
}

概要

コンパイル時に計算した文字列を静的ストレージに配置し、ヌル終端された文字列へのポインタを返す。

戻り値

rの要素をコピーした静的ストレージ上のヌル終端文字列へのポインタを返す。

#include <meta>
#include <print>
#include <format>

// コンパイル時に構築した文字列を実行時に使用する
consteval const char* make_greeting(const char* name) {
  std::string s = std::format("Hello, {}!", name);
  return std::define_static_string(s);
}

int main() {
  constexpr const char* greeting = make_greeting("world");
  std::println("{}", greeting);
}
  • std::define_static_string[color ff0000]

出力

banana

バージョン

言語

  • C++26

処理系

関連項目

参照