在编译我的项目时,这看起来非常原始
#include <iostream>
int main() {
std::cout << 1;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我收到很多类似的错误
E0020 标识符“FLT_RADIX”未定义 smo c:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.10.24930\include\limits 201
和
E0020 标识符“FLT_MIN”未定义 smo c:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.10.24930\include\limits 1084
所有错误均参考限制文件。正如此处提到的,这可能是对 C 库的引用存在问题, Visual studio 2015 在创建简单的测试控制台程序时给了我错误, 但明确定义从 Windows 套件到库的路径并没有解决问题。
我使用googletest框架尝试创建一个继承的Fixture类,以进行参数化和共享资源测试。
class FixtDBadminConnShared : public ::testing::Test {
public:
static void SetUpTestCase() {
shared_conn_ = new ::DB::DB_connection();
}
static void TearDownTestCase() {
delete shared_conn_;
}
static ::DB::DB_connection * shared_conn_;
};
::DB::DB_connection * FixtDBadminConnShared::shared_conn_ = nullptr;
class FixtDBadminConnExec :public FixtDBadminConnShared, public ::testing::TestWithParam<string>
{
protected:
using FixtDBadminConnShared::SetUpTestCase;
using FixtDBadminConnShared::TearDownTestCase;
void SetUp() override {
query_ = GetParam();
}
string query_;
};
Run Code Online (Sandbox Code Playgroud)
尝试调用测试:
TEST_P(FixtDBadminConnExec, SelectWithoutParam) {
//do smth
}
INSTANTIATE_TEST_CASE_P(QueriesOrbital0param, FixtDBadminConnExec,
::testing::Values( string{ "SELECT * from my_table;" }));
Run Code Online (Sandbox Code Playgroud)
我收到下一个错误
Error C2594 'return': ambiguous conversions from …Run Code Online (Sandbox Code Playgroud) 我有下一个错误:
C2064术语不评估为采用LINE 33的1个参数的函数
它无法调用函数"param.c1(x)".但为什么?似乎它不能推断函数"c1_1_order_()"取1参数或我在函数"config_1_order()"中做错误的赋值.
文件"Header.h"
#include <vector>
using std::vector;
class TMA {
private:
double(*p)(double);
template<class U>
struct SLAU_params {
private:
TMA * obj;
U c1_1_order_(double x) {
return obj->p(x);
}
void config_1_order() {
c1 = &TMA::SLAU_params<U>::c1_1_order_;
}
public:
SLAU_params(TMA * obj) :obj(obj) {
config_1_order();
}
U(TMA::SLAU_params<U>::* c1)(double);
};
public:
TMA(double(*p)(double)) :p(p) {}
template<class U>
vector<U> TMA_solve(U h) {
double x = h;
SLAU_params<U> param(this);
param.c1(x);
vector <U> rez;
return rez;
}
};
Run Code Online (Sandbox Code Playgroud)
"Source.cpp"
#include "Header.h"
double p(double x) { return …Run Code Online (Sandbox Code Playgroud)