返回信息流看C++看的头大,Java里翻来覆去就几个primitive类型
为啥C++里面的false都要包装下? 一个函数声明写了有10行不知道要干啥
@nuanyangyang
这是一条镜像帖。来源:北邮人论坛 / cpp / #88136同步于 2015/7/22
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖
integral_constant std::false_type 这都是啥!?
icyfox
2015/7/22镜像同步10 回复
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
【 在 icyfox 的大作中提到: 】
: 看C++看的头大,Java里翻来覆去就几个primitive类型
: 为啥C++里面的false都要包装下? 一个函数声明写了有10行不知道要干啥
: @nuanyangyang
用来为C++的模版服务吧,不太懂。
用模板有啥好?
我在看的这个函数,声明展开后有20行
像这样:
代码里的:
template <typename Visitor, typename Visitable>
inline
BOOST_VARIANT_AUX_APPLY_VISITOR_NON_CONST_RESULT_TYPE(Visitor)
apply_visitor(Visitor& visitor, Visitable& visitable)
{
return visitable.apply_visitor(visitor);
}
展开后:
bondnew.exe!boost::apply_visitor<bond::detail::Parser<UnKnown,bond::Void::Schema,bond::Serializer<dedex::BondDumpWriter<bond::OutputMemoryStream<std::allocator<char> > > >,void>,boost::variant<boost::detail::variant::over_sequence<boost::mpl::l_item<boost::mpl::long_<6>,bond::ValueReader,boost::mpl::list5<bond::CompactBinaryReader<bond::InputBuffer>,bond::SimpleProtocolReader<bond::InputBuffer>,bond::MafiaBinaryReader<bond::InputBuffer>,bond::JSONReader<bond::InputBuffer>,bond::JsonPrettyReader<bond::InputBuffer> > > >,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_> >(bond::detail::Parser<UnKnown,bond::Void::Schema,bond::Serializer<dedex::BondDumpWriter<bond::OutputMemoryStream<std::allocator<char> > > >,void> & visitor, boost::variant<boost::detail::variant::over_sequence<boost::mpl::l_item<boost::mpl::long_<6>,bond::ValueReader,boost::mpl::list5<bond::CompactBinaryReader<bond::InputBuffer>,bond::SimpleProtocolReader<bond::InputBuffer>,bond::MafiaBinaryReader<bond::InputBuffer>,bond::JSONReader<bond::InputBuffer>,bond::JsonPrettyReader<bond::InputBuffer> > > >,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_> & visitable)
【 在 nuanyangyang 的大作中提到: 】
:
: 用来为C++的模版服务吧,不太懂。
【 在 icyfox 的大作中提到: 】
: 用模板有啥好?
: 我在看的这个函数,声明展开后有20行
: 像这样:
: ...................
杀了我吧,我觉得我的智商已经不足以理解C++了。
我看STL源码里false包装成了类,这样才能触发C++的模板参数推导机制。
【 在 icyfox (【意涵团】熊爸|狐狸|SSH) 的大作中提到: 】
: 用模板有啥好?
: 我在看的这个函数,声明展开后有20行
: 像这样:
: ...................
通过『我邮2.0』发布
搜一下SFINAE
https://www.google.com.hk/search?newwindow=1&safe=strict&biw=1920&bih=1063&q=sfinae&oq=sfinae&gs_l=serp.3..0i67l7j0l3.998.1341.0.2244.3.3.0.0.0.0.271.271.2-1.1.0....0...1c.1.64.serp..2.1.271.ZMTAYXbiB84
呜呜不懂,刚学C++就开始搞boost了,这能忍?
【 在 epico 的大作中提到: 】
: apply_visitor 的意思是用 Visitor 函数遍历 visitable?