C++ Windows上带有Catch和Clang/LLVM的链接器错误
我有一个链接器问题与下面的代码。它适用于Visual Studio 2015编译器,但不适用于Visual Studio中的Clang/LLVM。我已经尝试了不同的变化(以下一些),所有的工作都很好。这似乎是C++ Windows上带有Catch和Clang/LLVM的链接器错误,c++,visual-studio,linker,llvm-clang,catch-unit-test,C++,Visual Studio,Linker,Llvm Clang,Catch Unit Test,我有一个链接器问题与下面的代码。它适用于Visual Studio 2015编译器,但不适用于Visual Studio中的Clang/LLVM。我已经尝试了不同的变化(以下一些),所有的工作都很好。这似乎是静态constexpr数值限制和要求的具体组合 // quicktest.cpp #include <limits> #include <iostream> #define CATCH_CONFIG_MAIN // This tells Catch to prov
静态constexpr数值限制
和要求
的具体组合
// quicktest.cpp
#include <limits>
#include <iostream>
#define CATCH_CONFIG_MAIN // This tells Catch to provide a main() - only do this in one cpp file
#include <catch.hpp>
struct X {
static constexpr double min = std::numeric_limits<double>::min();
static constexpr int min_int = std::numeric_limits<int>::min();
};
SCENARIO("blah")
{
static const double my_min = X::min; // works
std::cout << (5 > X::min) << std::endl; // works
REQUIRE(5 > my_min); // works
REQUIRE(5 > X::min_int); // works (int)
REQUIRE(5 > std::numeric_limits<double>::min()); // works
//REQUIRE(5 > X::min); // lnk2019
}
//int main()
//{
// std::cout << (X::min < 5) << std::endl; // works
// return 0;
//}
//quicktest.cpp
#包括
#包括
#定义CATCH\u CONFIG\u MAIN//这告诉CATCH提供MAIN()-仅在一个cpp文件中执行此操作
#包括
结构X{
静态constexpr double min=std::numeric_limits::min();
静态constexpr int min_int=std::numeric_limits::min();
};
场景(“废话”)
{
静态常量double my_min=X::min;//有效
std::cout X::min)my_min);//有效
REQUIRE(5>X::min_int);//works(int)
REQUIRE(5>std::numeric_limits::min());//有效
//需要(5>X::min);//lnk2019
}
//int main()
//{
//标准::cout