boost::phoenix with VS2008
boost::phoenix with VS2008
使用boost::phoenix:
的简单示例#include <vector>
#include <algorithm>
#include <boost/phoenix.hpp>
namespace ph = boost::phoenix;
namespace place = boost::phoenix::placeholders;
struct A
{
int val_;
explicit A(int i) : val_(i) {}
int foo() { return val_;}
};
int main()
{
std::vector<A> coll;
coll.push_back(A(2));
coll.push_back(A(4));
coll.push_back(A(5));
coll.push_back(A(7));
std::vector<A>::const_iterator cit;
cit = std::find_if(coll.begin(), coll.end(), ph::bind(&A::foo, place::_1) % 2 == 1);
int val = (*cit).val_;
return 0;
}
它可以编译,但是在VS2008的输出中有一些警告:
c:boost_1_47_0boostphoenixbinddetailmember_variable.hpp(54):警告C4180:限定符应用于函数类型没有意义;忽略了
来源:1)代码不正确2)又是MS问题。3) boost::凤凰图书馆做得不好吗?
看起来Boost开发人员决定他们不打算解决这个问题,也许是因为它被确定为编译器部分的错误。这里有一个链接:
https://svn.boost.org/trac/boost/ticket/1097我认为这是一般的boost::bind(),但我打赌这可能不会被修复。那张罚单里有个变通办法。您可以尝试一下(它只是禁用警告)。
相关文章:
- Problems with std::cin.fail()
- 应用程序崩溃并显示"symbol _ZdlPvm, version Qt_5 not defined in file libQt5Core.so.5 with link time reference"
- 这对"With a stackless coroutine, only the top-level routine may be suspended."意味着什么
- Boost.TEST with CLion: "Test framework quit unexpectedly"
- 避免碎片化的ClientHellos with OpenSSL (DTLS)
- Issues with Win32 ReadProcessMemory API
- Qt with WinAPI MouseProc
- [[maybe_unused]] with structured_binding?
- Issue with WriteProcessMemory
- OpenCV RTP-Stream with FFMPEG
- "Unable to start debugging. No process is associated with this object." - 在Visual Studio Code中使用GDB
- std::adjacent_difference with std::chrono time_point
- DLL Made with CMake 使程序崩溃
- QtCreator with C 库中的链接器问题
- SHBrowseForFolder with BIF_BROWSEFORCOMPUTER and SHGetPathFr
- specialized std::default_delete with QQmlComponent
- VS2019 - Sudo Remote Debugging on Linux with Cmake project
- Inference pytorch C++ with alexnet and cv::imread image
- boost::phoenix with VS2008
- TLS 1.1 with VS2008 SP1