Use std::addressof in Variant constructor

Use of operator& is not safe because it may be overloaded.