title: Compiler error "character constant too long for its type". What's wrong?
body: <p>I have some code that I'm trying to work on...</p>
  
  <pre><code>#include &lt;iostream&gt;
  #include &lt;string&gt;
  
  int main()
  {
    std::cout &lt;&lt; "Hello. Welcome to Delicious Drive Up. What would you like to order?\n";
    std::cout &lt;&lt; "\nOur menu is-";
    std::cout &lt;&lt; "...";
    std::cout &lt;&lt; "\nOrder here &gt; ";
    std::string choice;
    std::getline(cin, choice);
    if (choice == 'hamburger' || choice == 'Hamburger')
    {
        std::cout &lt;&lt; "We don't have any ham. Is a Chickenburger all right? y/n. &gt; ";
        std::string opt;
        std::getline(cin, opt);
        if (opt == 'y' || opt == 'Y' || opt == 'yes' || opt = 'Yes')
        {
            std::cout &lt;&lt; "Here's your chickenburger.";
        }
    }
  }
  </code></pre>
  
  <p>This was adapted from a Bash script I wrote and is one of my first C++ programs. When I compile this, it comes up with these errors...</p>
  
  <pre><code>test.cpp:19:15: warning: character constant too long for its type
  test.cpp:19:40: warning: character constant too long for its type
  test.cpp:23:44: warning: multi-character character constant
  test.cpp:23:59: warning: multi-character character constant
  test.cpp: In function ‘int main()’:
  test.cpp:19: error: no match for ‘operator==’ in ‘choice == 1919378802’
  test.cpp:19: error: no match for ‘operator==’ in ‘choice == 1919378802’
  test.cpp:23: error: no match for ‘operator==’ in ‘opt == 'y'’
  test.cpp:23: error: no match for ‘operator==’ in ‘opt == 'Y'’
  test.cpp:23: error: no match for ‘operator==’ in ‘opt == 7955827’
  </code></pre>
  
  <p>Could you explain what these mean and how to fix them?</p>
  
  <p>EDIT: I get a new error message now...</p>
  
  <pre><code>.test.cpp: In function ‘int main()’:
  .test.cpp:23: error: no match for ‘operator||’ in ‘((std::operator== [with _CharT = char, _Traits = std::char_traits&lt;char&gt;, _Alloc = std::allocator&lt;char&gt;](((const std::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt;&amp;)((const std::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt;*)(&amp; opt))), ((const char*)"y")) || std::operator== [with _CharT = char, _Traits = std::char_traits&lt;char&gt;, _Alloc = std::allocator&lt;char&gt;](((const std::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt;&amp;)((const std::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt;*)(&amp; opt))), ((const char*)"Y"))) || std::operator== [with _CharT = char, _Traits = std::char_traits&lt;char&gt;, _Alloc = std::allocator&lt;char&gt;](((const std::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt;&amp;)((const std::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt;*)(&amp; opt))), ((const char*)"yes"))) || opt’
  .test.cpp:23: note: candidates are: operator||(bool, bool) &lt;built-in&gt;
  </code></pre>