因此,在阅读了一些SO问题和答案之后,我仍然不明白为什么要使用
friend bool operator==( BaseClass const &left, BaseClass const &right )
Run Code Online (Sandbox Code Playgroud)
代替
bool operator==( BaseClass const &right )
Run Code Online (Sandbox Code Playgroud)
现在我有这样的东西http://pastebin.com/pKsTabC0 (固定) - 它似乎工作正常.但也许我错过了什么?有什么建议?
更新1
好的,我更改了源代码以使其正常工作http://ideone.com/fIAmB.删除了不必要的虚拟和添加的const.我还是不明白为什么要用朋友...
1.从OpenSSL(openssl-1.0.0d)下载源代码.
2.使用以下方法构建静态:
> perl Configure VC-WIN32 no-asm --prefix=d:\Miatar\cpplibs\openssl
> ms\do_ms
> nmake -f ms\nt.mak
> nmake -f ms\nt.mak install
Run Code Online (Sandbox Code Playgroud)
3.下载qt-everywhere-opensource-src-4.7.1,
修补它(QTDIR\mkspecs\win32-msvc2010\qmake.conf - /MD到/ MT和/ MDd到/ MTd)
将bin/lib/include openssl文件夹复制到QTDIR bin/lib/include文件夹
并尝试使用next*.bat构建它
setlocal
set MAKEFLAGS=
call "D:\Program Files\Microsoft Visual Studio 10.0\VC\vcvarsall.bat" x86
set QMAKESPEC=win32-msvc2010
set PATH=%CD%\bin;%PATH%
configure -debug-and-release -platform win32-msvc2010 -static -no-crt -no-qt3support -nomake examples -nomake demos -openssl-linked -I "d:\Miatar\cpplibs\openssl\include" -L "d:\Miatar\cpplibs\openssl\lib"
nmake
pause
endlocal
Run Code Online (Sandbox Code Playgroud)
在nmake期间收到错误
Microsoft (R) Program Maintenance Utility Version 10.00.30319.01
Copyright (C) Microsoft Corporation. All rights reserved.
"D:\Program Files\Microsoft …Run Code Online (Sandbox Code Playgroud) 我想知道如何std::function从传入的函数类型中确定参数和参数.