1. 程式人生 > >使用vs2015編譯器編譯libpqxx時發生的錯誤以及解決辦法

使用vs2015編譯器編譯libpqxx時發生的錯誤以及解決辦法

一次 init valid define src str 類型 ron soft

d:\libpqxx-4.0\libpqxx-4.0\src\strconv.cxx(195): error C2440: “=”: 無法從“std
::basic_istream<char,std::char_traits<char>>”轉換為“bool”
d:\libpqxx-4.0\libpqxx-4.0\src\strconv.cxx(195): note: 沒有可用於執行該轉換的用
戶定義的轉換運算符,或者無法調用該運算符
d:\libpqxx-4.0\libpqxx-4.0\src\strconv.cxx(468): note: 參見對正在編譯的函數 模板
實例化“void `anonymous-namespace‘::from_string_float<float>(const char [],T &)
”的引用
with
[
T=float
]
NMAKE : fatal error U1077: “"D:\Program Files (x86)\Microsoft Visual Studio 14.
0\VC\BIN\cl.exe"”: 返回代碼“0x2”
Stop.

以上錯誤主要是在strconv.cxx中195行所在的函數,ok賦值時沒有從char類型轉為bool類型,因此增加一次強轉就可以了。

  default:
    if (Str[0] == - && valid_infinity_string(&Str[1]))
    {
      ok = true;
      set_to_Inf(result, -1);
    }
    else
    {
      stringstream S(Str);
#if defined(PQXX_HAVE_IMBUE)
      S.imbue(locale(
"C")); #endif ok =(bool) (S >> result); } break; }

使用vs2015編譯器編譯libpqxx時發生的錯誤以及解決辦法