使用语法在派生类中公开基类别名模板和变量模板?

在繁重的模板元编程上下文中考虑基础模板类和派生模板类(此处为便于阅读并着重于此问题而对其进行了简化)。

template <class T>
struct base {
    using type = T;
    static constexpr int value = 0;
    template <class... Args>
    constexpr void function(Args&&...) {}
    template <class U>
    using alias_template = base<U>;
    template <class U>
    static constexpr int variable_template = 0; 
};

template <class T>
struct derived: base<T> {
    using typename base<T>::type;           // Using base typedef
    using base<T>::value;                   // Using base static data member
    using base<T>::function;                // Using base function members (regardless of template or not)
    //using typename base<T>::alias_template; // DOES NOT SEEM TO WORK
    //using base<T>::variable_template;       // DOES NOT SEEM TO WORK

    using typedef_test = type;                                          // Working
    static constexpr int value_test = value;                            // Working
    using alias_template_test = alias_template<T>;                      // ERROR
    static constexpr int variable_template_test = variable_template<T>; // ERROR
};

QUESTION: Is there a using syntax to expose alias templates and variables templates inherited from a base class in order to make the currently erroneous lines compile? Is there any workaround to avoid to specify base<T>:: every single time in the derived class (here it remains simple, but in my actual code, specifying everytime rapidly becomes annoying)?