C++26で追加される静的リフレクション(cpprefjp)を使うと、フォーマット文字列の波カッコの中に変数名を埋め込むような書き方ができないこともないです。
void f(int x, double y, const std::string& z) {
println("{x}, {y:.2f}, {z:?}"); // 42, 3.14, "Hello"
}
int main() {
f(42, 3.14159, "Hello");
}
↓実装はこちら
変数名から変数への変換は、変数のリフレクション値のリストから変数名が一致するものを探索することによりできます。
しかし、ローカル変数を含めたすべての変数のリストを取得する方法は現状ありません。上の実装では、 parameters_of() により関数の引数のリストを取得し、その中からのみ探索しています。