#pragma once #include "utility.h" namespace crow { namespace detail { template struct partial_context : public black_magic::pop_back::template rebind , public black_magic::last_element_type::type::context { }; template <> struct partial_context<> { }; template struct context : private partial_context //struct context : private Middlewares::context... // simple but less type-safe { template typename T::context& get() { return static_cast(*this); } }; } }