Question: I have searched and haven't found what I am looking for, what I am trying to do is:

```
<main class="content">
    Content
    <nav class="search">
    </nav>
</main>

```

and at a certain media query change it to

```
<main class="content">
    Content
</main>
<nav class="search">
</nav>

```

is this possible?
Thank you for any help!

Answer: 
The techique you describe (what I call Koenig operators) was not known, at least not widely, at the point `vector` was designed and originally specified.

Changing it now would require more care than using it originally, and more justification.

As a guess, today Koenig operators would be used in place of template operators.
EDIT: After I re-read my explanation and influenced by a few comments around, I'm convinced my original reasoning is not compelling indeed. My answer essentially attempted to argue that although a value `x` could be implicitly converted to a value `y` of a different type, an "automagically" equality comparison between the two might not necessarily be expected. For contextualization, I'm still leaving here the code I used as an example.

```
struct B {};

template <class T>
struct A {
  A() {}
  A(B) {}
  friend bool operator==(const A<T>&, const A<T>&) { return false; }
};

// The template version wouldn't allow this to happen.
// template <class T>
// bool operator==(const A<T>&, const A<T>&) { return false; }

int main() {
  A<B> x;
  B y;
  if (x == y) {} //compiles fine
  return 0;
}

```