What does term `one viable function` refer to in [expr.static.cast]/4?
<p><a href="http://eel.is/c++draft/expr.static.cast#4" rel="nofollow">[expr.static.cast]/4</a> (emphasis is mine):</p>

<blockquote>
  <p>An expression e can be explicitly converted to a type T if there is an implicit conversion sequence ([over.best.ics]) from e to T, or if
  overload resolution for a direct-initialization ([dcl.init]) of an
  object or reference of type T from e would find at least <strong>one viable
  function</strong> ([over.match.viable]). If T is a reference type, the effect
  is the same as performing the declaration and initialization</p>
  
  <p>T t(e);</p>
  
  <p>for some invented temporary variable t ([dcl.init]) and then using the
  temporary variable as the result of the conversion. Otherwise, the
  result object is direct-initialized from e. [ Note: The conversion is
  ill-formed when attempting to convert an expression of class type to
  an inaccessible or ambiguous base class.  — end note ]</p>
</blockquote>

<p>In the case of overload resolution of an object of type <code>T</code>, does the term <strong>one viable funtion</strong> refer to a constructor of the class <code>T</code> or to a conversion function in the class, of which <code>e</code> is an object.  </p>