title: No operator '==' matches in operator overloading
body: <p>I'm working on "Roman to int" algorithm, my code is below. I get an error:</p>
  
  <pre><code>no operator "==" matches these operands -- operand types are: char == const Solution::symbol.
  </code></pre>
  
  <p>Can somebody help me fix the code?</p>
  
  <pre><code>// solution.h
  #include &lt;string&gt;
  using namespace std;
  
  class Solution {
    private:
      struct symbol {
        char upperCase;
        char lowerCase;
        bool operator ==(char ch) {
          return ch == upperCase || ch == lowerCase;
        };
      };
      static constexpr symbol one {'I', 'i'};
      static constexpr symbol five {'V', 'v'};
      static constexpr symbol ten {'X', 'x'};
      static constexpr symbol fifty {'L', 'l'};
      static constexpr symbol hundred {'C', 'c'};
      static constexpr symbol fiveHundred {'D', 'd'};
      static constexpr symbol thousand {'M', 'm'};
    public:
      bool romanToInt() {
        char ch = 'I';
        ch == one; // ERROR: no operator "==" matches these operands -- operand types a re: char == const Solution::symbol
        one == ch; // ERROR: no operator "==" matches these operands -- operand types a re: const Solution::symbol == char
      };
  };
  
  // main.cpp
  #include &lt;iostream&gt;
  #include "../Header Files/solution.h"
  using namespace std;
  
  int main() {
    Solution solution;
    solution.romanToInt();
  
    return 0;
  }
  </code></pre>