title: explicit operator bool not called inside lambda — MSVC bug?
body: <pre><code>#include &lt;functional&gt;
  
  struct T {
      explicit operator bool() { return true; }
  };
  
  int main() {
      T t;
  
      if(t) {} // OK
  
      auto l = [&amp;]() {
          if (t) {} // Error
      };
  }
  </code></pre>
  
  <p>MSVC's behaviour seems oddly inconsistent here; the only difference between the OK line and the Error line is that one is in a lambda. Is this a bug?</p>