簡體   English   中英

2015年Visual Studio博客

[英]glog on visual studio 2015

我正在嘗試使用Visual Studio 2015在Windows上構建Google glog庫。添加#include解決Windows上的std :: min問題后,出現以下2個主要錯誤(重復1次)。

1>c:\glog\glog-0.3.3\src\windows\port.h(117): warning C4005: 'va_copy': macro redefinition
1>  c:\program files (x86)\microsoft visual studio 14.0\vc\include\stdarg.h(20): note: see previous definition of 'va_copy'
1>c:\glog\glog-0.3.3\src\windows\port.cc(58): error C2084: function 'int snprintf(char *const ,const size_t,const char *const ,...)' already has a body
1>  c:\program files (x86)\windows kits\10\include\10.0.10150.0\ucrt\stdio.h(1932): note: see previous definition of 'snprintf'
1>  vlog_is_on.cc
1>c:\glog\glog-0.3.3\src\windows\port.h(117): warning C4005: 'va_copy': macro redefinition
1>  c:\program files (x86)\microsoft visual studio 14.0\vc\include\stdarg.h(20): note: see previous definition of 'va_copy'
1>c:\glog\glog-0.3.3\src\windows\glog\logging.h(1266): error C2280: 'std::basic_ios<char,std::char_traits<char>>::basic_ios(const std::basic_ios<char,std::char_traits<char>> &)': attempting to reference a deleted function
1>  c:\program files (x86)\microsoft visual studio 14.0\vc\include\ios(189): note: see declaration of 'std::basic_ios<char,std::char_traits<char>>::basic_ios'
1>  c:\glog\glog-0.3.3\src\windows\glog\logging.h(1266): note: This diagnostic occurred in the compiler generated function 'google::LogMessage::LogStream::LogStream(google::LogMessage::LogStream &&)'
1>  utilities.cc

似乎與編譯器生成的move函數有關,但是顯式刪除它也不起作用。

LogMessage(const LogMessage &&)=刪除;

有任何想法嗎?

干杯,邁克

生成的函數不是LogMessage(const LogMessage &&)= delete;
但它是:
LogStream :: LogStream(google :: LogMessage :: LogStream &&)。

在內部,它將嘗試調用LogStream的副本構造函數,並因此調用標記為已刪除的ostream。
解:
在LogStream類中聲明:
LogStream(const LogStream&)=刪除;
LogStream&operator =(const LogStream&)= delete ;;

干杯

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM