我有一个返回str
的函数,我想在单元测试中检查它是否返回正确的元素。看起来像下面的代码不起作用:
std::unique_ptr<int[]>
我也曾尝试在断言中将std::vector<int> foo = {1, 2, 3};
std::unique_ptr<int[]> bar = my_func();
EXPECT_THAT(bar, ElementsAreArray(foo))
替换为bar
,但仍然遇到奇怪的类型错误。
答案 0 :(得分:1)
2.7
将返回指向bar.get()
所指的同一内存的原始(无所有权)指针。您想要的是取消引用unique_ptr
以返回基础整数数组。
即使如此,您的unique_ptr
也不会成功,因为它将尝试将其参数与EXPECT_THAT
等同,operator==
和int[]
将无法使用它除非您定义它。另外,您可以将vector<int>
行放在一个循环中并遍历两个容器。