我有以下结构:tag分派/ enable_if - 我很困惑
struct A
{
}
struct B
{
tuple<string,string> children{{"test1","test2"}};
}
我想创建一个模板功能,将超载< <操作上有所谓的儿童成员变量的每个类。 如果可能的话 - 仅限于名为子元组的元素。
当满足像B这样的子元组的类时,它应该迭代元组成员,并在每个成员上调用< <。
喜欢的东西:
template<typename RECEIVERTYPE,typename SENDERTYPE>
typename std::enable_if<std::have_children_member<RECEIVER_TYPE>::value, void>::type
RECEIVERTYPE& operator<< (RECEIVERTYPE& streamReceiver, const SENDERTYPE& streamSender)
{
for_each(streamSender.children, [&](const auto& child)
{
streamReceiver << child;
});
return streamReceiver;
}
我已经尝试了很多的examples-但我真的不能得到任何东西在Visual Studio 2015年的工作
是什么'的std :: have_children_member'? – UmNyobe
这是不存在的 - 它是为了显示我的目标。 –