title: Error returning type int8 from a type int
body: <p>So I have these four constructors in my class (the copy is set as default)</p>
  <pre><code>int8();
  
  explicit int8(short Value);
  
  explicit int8(int Value);
  
  explicit int8(long Value);
  
  int8(const int8&amp; Copy);
  </code></pre>
  <p>And this function</p>
  <pre><code>    int8 int8::Min() {
          return -128; 
      }
  </code></pre>
  <p>That gives me this error: No viable conversion from returned value of type 'int' to function return type 'int8'</p>
  <p>My question is: how to let compiler to &quot;implicitly&quot; convert the int return value to an int8 type so it can return it?
  It works if I explicitly write like this:</p>
  <pre><code>    int8 int8::Min() {
          return int8(-128); 
      }
  </code></pre>
  <p>Or if I remove the explicit keyword in the three constructors. But how can I do if I want to &quot;remove&quot; the brackets and do it writing only the value &quot;-128&quot; maintaining the explicit keyword for the constructors? (I don't know if there is a method but I am curious)</p>