gpt4 book ai didi

c++ - 初始化并将 map 作为参数传递

转载 作者:行者123 更新时间:2023-11-28 06:45:16 25 4
gpt4 key购买 nike

我正在尝试调用 GoogleTest ASSERT_EQ 宏,如下所示:

ASSERT_EQ(map<string, string> {
{"a", "x"}, {"b", "y"}
}, some_other_map);

但我似乎无法找出正确的语法(如果可能的话)。

想法?

最佳答案

现在你已经澄清它是一个宏,而不是一个函数,问题是预处理器是语言方面的一个丑陋的疣,它自己的语法并不总是与它正在处理的语言兼容。

具体来说,它不识别 <>作为括号,所以它认为有三个逗号分隔的参数,而不是两个:

map<string
string> {...}
some_other_map

您可以通过在第一个表达式两边加上括号来解决这个问题:

ASSERT_EQ((map<string, string> {
{"a", "x"}, {"b", "y"}
}), some_other_map);

一般来说,尽量避免做任何复杂的宏。这通常是通往痛苦的途径。

关于c++ - 初始化并将 map 作为参数传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25121179/

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