template <typename T>
struct Vector<T>
{
friend Vector operator*(Vector const&, int); // note: nonmember fn!
friend Vector operator*(int, Vector const&); // note: nonmember fn!
Vector operator*(int) const;
template <typename U>
Vector operator*(Vector<U> const &) const;
};
dGVtcGxhdGUgPHR5cGVuYW1lIFQ+CnN0cnVjdCBWZWN0b3I8VD4KewogICAgZnJpZW5kIFZlY3RvciBvcGVyYXRvciooVmVjdG9yIGNvbnN0JiwgaW50KTsgLy8gbm90ZTogbm9ubWVtYmVyIGZuIQogICAgZnJpZW5kIFZlY3RvciBvcGVyYXRvciooaW50LCBWZWN0b3IgY29uc3QmKTsgLy8gbm90ZTogbm9ubWVtYmVyIGZuIQoKICAgIFZlY3RvciBvcGVyYXRvciooaW50KSBjb25zdDsKICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBVPgogICAgICAgIFZlY3RvciBvcGVyYXRvciooVmVjdG9yPFU+IGNvbnN0ICYpIGNvbnN0Owp9Owo=