小编che*_*ldi的帖子

显式关键字应用于运算符而不是构造函数

在下面的课程中,

你为什么要做运营商explicit?我认为这explicit是为了防止对构造函数的隐式调用?

 class Content
            {
public:

 virtual ~Content() = 0;
 virtual explicit operator float&();
 virtual explicit operator long long&();
 virtual explicit operator std::string&()
}
Run Code Online (Sandbox Code Playgroud)

c++ explicit operator-keyword c++11

6
推荐指数
1
解决办法
373
查看次数

std :: find_if和lambda - error void值不应该被忽略

我正在尝试编写一个使用std::find_if和lamda函数来检查元组中的条目的函数.

如果元组中的第三个条目不是a nullptr,则将元组(字符串)中的第一个条目添加到列表中并返回列表.

然而,编译失败了

/usr/include/c++/5/bits/predefined_ops.h:234:30:错误:void值不被忽略,因为它应该是{return bool(_M_pred(*__ it)); }

任何人都可以确定我做错了什么?

std::vector<std::string> class::list() const
{
    std::vector<std::string> arglist;
    arglist.reserve((arguments_.size()));

    std::find_if(arguments_.begin(), arguments_.end(),[&arglist](std::tuple<std::string, std::type_index, Value> argument)
        {
            if (&std::get<2>(argument) != nullptr)
                arglist.push_back(std::get<0>(argument));
        }
    );
    return arglist;
}
Run Code Online (Sandbox Code Playgroud)

c++

-3
推荐指数
1
解决办法
130
查看次数

标签 统计

c++ ×2

c++11 ×1

explicit ×1

operator-keyword ×1