Is it possible to overload `operator||` for `std::variant`, use it if the alternative type has such operator and throw exception if alternative does not define such operator?

So far I got to something like:

```
template<typename ...Ts>
constexpr bool operator||(std::variant<Ts...> const& lhs, std::variant<Ts...> const& rhs)
{
    return /*no idea */;
}

```