gpt4 book ai didi

c++ - 如何修复 trompeloeil 中的 "RETURN missing for non-void function"错误?

转载 作者:行者123 更新时间:2023-12-05 07:12:15 34 4
gpt4 key购买 nike

我正在尝试弄清楚如何在 C++11 中使用 Trompeloeil 库。在这个例子中,我遇到了大量的构建错误,我不明白为什么。

#define CATCH_CONFIG_MAIN
#include "catch.hpp"
#include <rapidcheck.h>
#include <rapidcheck/state.h>
#include <trompeloeil.hpp>
#include "../../../include/Orion.h"
#include "../../../include/optionCheckerFileHandler.h"

class mock{
public:
MAKE_MOCK1(getFileParams, int(int));
};

TEST_CASE( "Factorials are computed", "[factorial]" ) {
using trompeloeil::_; // wild card for matching any value
using trompeloeil::gt; // greater-than match
mock m;{
REQUIRE_CALL_V(m, getFileParams(1)).RETURN(0);
}
}

存在大量构建错误,但对我来说最突出的错误如下:

In file included from /home/adny/tortoiseSoftworks/software/gamedev/tortoiseGamedev/test/testing/src/main.cpp:5:0:
/home/adny/tortoiseSoftworks/software/gamedev/tortoiseGamedev/test/testing/src/main.cpp: In function ‘void ____C_A_T_C_H____T_E_S_T____0()’:
/home/adny/tortoiseSoftworks/software/gamedev/tortoiseGamedev/test/testing/lib/trompeloeil/include/trompeloeil.hpp:4727:3: error: ‘class std::unique_ptr<trompeloeil::expectation>’ has no member named ‘handle_return’
handle_return(

还有

/home/adny/tortoiseSoftworks/software/gamedev/tortoiseGamedev/test/testing/lib/trompeloeil/include/trompeloeil.hpp:3891:7: error: static assertion failed: RETURN missing for non-void function
static_assert(valid_return_type, "RETURN missing for non-void function");

如果有人能帮助我理解这些,我将不胜感激。我可以根据要求提供完整的构建错误

最佳答案

您使用 C++ 11 吗?为什么要使用 REQUIRE_CALL_V

事实上,您正在使用 C++14 语法和 C++11 宏。

参见 https://github.com/rollbear/trompeloeil/blob/main/docs/Backward.md/#cxx11_require_call了解详情。

因此,如果您使用 C++14,请更改为 REQUIRE_CALL。如果您被迫使用 C++11,看起来 RETURN(1) 需要成为 REQUIRE_CALL_V

的参数

关于c++ - 如何修复 trompeloeil 中的 "RETURN missing for non-void function"错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60498851/

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