title: How do I explicitly call an exception-throwing method in C++?
body: <p>I have a simple class:</p>
  
  <pre><code>class A {
   public:
    bool f(int* status = nullptr) noexcept {
      if (status) *status = 1;
      return true;
    }
    void f() {
      throw std::make_pair&lt;int, bool&gt;(1, true);
    }
  };
  
  int main() {
    A a;
    a.f(); // &lt;- Ambiguity is here! I want to call 'void f()'
  }
  </code></pre>
  
  <p>I want to resolve ambiguity of a method call in favour of the exception-throwing method by any means.</p>
  
  <p>The rationale behind such interface:</p>
  
  <ul>
  <li>To have the <code>noexcept(true)</code> and <code>noexcept(false)</code> interface,</li>
  <li>To allow optionally get extra information via a pointer in the <code>noexcept(false)</code> variant - while the <code>noexcept(true)</code> variant will always pack this information inside an exception.</li>
  </ul>
  
  <p>Is it possible at all? Suggestions for a better interface are also welcome.</p>