Superior improved stack implementation using a linked list
Code Review
I find your placement of &amp; inconsistent with *
    Node(const T &amp; t, Node* link) :item{t}, next{link} { }

And r-value reference declaration stranger still
    Stack(Stack &amp; &amp; );  // I am surprised that compiled. As each `&amp;` is a separate token
                        // While `&amp;&amp;` is a single token.

This is all part of the type information. Put it with the type.
    Node(const T&amp; t, Node* link) :item{t}, next{link} { }
    Stack(Stack&amp;&amp; rhs);

You provide a push by copy.
void push(const T &amp; );

and you are familiar with move semantics. Why not provide a push by move?
void push(T&amp;&amp; val);

Very Minor personal preference.
Personally I prefer const on the right of the type. The rule is that const binds left unless it is on the very left hand side then it binds right. There is one obsecure corner case were this makes a difference. But it is obscure so don't worry.
    Node(T const&amp; t, Node* link) :item{t}, next{link} { }

I just find it easier when reading types (as you read them right to left).
    char const * const  x;
    // x is &quot;const pointer&quot; to a &quot;const char&quot;

    char const *   x;
    // x is &quot;pointer&quot; to a &quot;const char&quot;

    char * const  x;
    // x is &quot;const pointer&quot; to a &quot;char&quot;