gpt4 book ai didi

c++ - 一般打印一系列变量及其名称

转载 作者:太空狗 更新时间:2023-10-29 23:02:14 25 4
gpt4 key购买 nike

我愿意:

int a = 2;
int b = 3;
// ...

PRINT1(a, b, ...);
PRINT2(a, b, ...);

PRINT1 应扩展为:

std::cout << "a = " << a << ", b = " << b << ... << std::endl;
// note: in "a = ...", "a" is the name of the variable, i.e.:
// PRINT(bar, ...) should print "bar = ..."

PRINT2 应该扩展为(使用 cppformat):

fmt::print("a = {}, b = {}, ...", a, b, ...);

现在我正在使用 Boost.PP 并且必须编写 PRINT((a)(b)(c)...) 来实现类似于第一个场景的东西,但是它如果我可以改用逗号会更好。针对其中一个问题的解决方案可能很容易适用于同时解决这两个问题。

最佳答案

您可以使用 BOOST_PP_TUPLE_TO_SEQ 将其转换为序列,如下所示:

#define PRINT_ARGS(...) PRINT(BOOST_PP_TUPLE_TO_SEQ((__VA_ARGS__)))

关于c++ - 一般打印一系列变量及其名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29252895/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com