在下面的课程中,
你为什么要做运营商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) 我正在尝试编写一个使用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)