it might be confusing why we don't use explicit specialization for
defining errorator::futurize::stored_to_future.
quote from item 16, ยง 17.7.3, n4659:
In an explicit specialization declaration for a member of a class
template or a member template that appears in namespace scope, the
member template and some of its enclosing class templates may remain
unspecialized, except that the declaration shall not explicitly
specialize a class member template if its enclosing class templates are
not explicitly specialized as well.
Signed-off-by: Kefu Chai <kchai@redhat.com>
class futurize {
using vanilla_futurize = seastar::futurize<T>;
+ // explicit specializations for nested type is not allowed unless both
+ // the member template and the enclosing template are specialized. see
+ // section temp.expl.spec, N4659
template <class Stored, int Dummy = 0>
struct stored_to_future {
using type = future<Stored>;