static void call(T_ const& val, Attribute& attr, Pred, mpl::true_) { typedef typename container_value<Attribute>::type value_type; typedef typename is_convertible<T, value_type>::type is_value_type; append_to_container(val, attr, is_value_type()); }
void append_to_container(Container &&container, T value, Args &&... args) { container.emplace_back(value); append_to_container(std::forward<Container>(container), std::forward<Args>(args)...); }