我有以下結構: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
這是不存在的 - 它是爲了顯示我的目標。 –