繁体   English   中英

获取指向boost :: any :: operator =的指针

[英]Getting pointer to boost::any::operator=

我想获得指向boost :: any :: operator =的指针,所以我这样做了:

bool(__thiscall boost::any::*func)(const bool&) = &(boost::any::operator=<bool>);

但是现在,编译器说

初始化”:无法从“重载函数”转换为“布尔型(__thiscall boost :: any :: *)(const bool&)”在范围内具有此名称的函数均不匹配目标类型

我也尝试过这样:

bool(__thiscall boost::any::*func)(const bool&) = static_cast<(boost::any::*)(const bool&)>(&(boost::any::operator=<bool>));

但是有编译器说:“语法错误:'('”在这一行

有人可以帮我吗?

附注:我在上面的代码中添加了boost :: any

您不能在成员函数指针的分配中指定参数。 可以做到这一点:

#include <iostream>
#include <boost/any.hpp>
int main() {
    boost::any any = false;
    std::cout << boost::any_cast<bool>(any) << std::endl;
    typedef boost::any& (boost::any::*assign_operator)(const bool&);
    assign_operator assign = &boost::any::operator =;
    (any.*assign)(true);
    std::cout << boost::any_cast<bool>(any) << std::endl;
    return 0;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM