Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. General Programming
  3. C / C++ / MFC
  4. Is there a potential problem with this line of code?

Is there a potential problem with this line of code?

Scheduled Pinned Locked Moved C / C++ / MFC
c++helpquestion
3 Posts 3 Posters 0 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • C Offline
    C Offline
    chasetoys
    wrote on last edited by
    #1

    int begin, end; // search through using STL stringObject.find("searchForString") if( (begin != string::npos) && (end != string::npos)) // Warning: warning C4389: '!=' : signed/unsigned mismatch Thanks in advance!

    N R 2 Replies Last reply
    0
    • C chasetoys

      int begin, end; // search through using STL stringObject.find("searchForString") if( (begin != string::npos) && (end != string::npos)) // Warning: warning C4389: '!=' : signed/unsigned mismatch Thanks in advance!

      N Offline
      N Offline
      Nibu babu thomas
      wrote on last edited by
      #2

      I guess string::npos is unsigned integer type hence the warning. Do not do logical operations(particularly in loops) with signed and unsigned types. This could lead to infinite loops and other unprecedented results.


      Nibu thomas Software Developer

      1 Reply Last reply
      0
      • C chasetoys

        int begin, end; // search through using STL stringObject.find("searchForString") if( (begin != string::npos) && (end != string::npos)) // Warning: warning C4389: '!=' : signed/unsigned mismatch Thanks in advance!

        R Offline
        R Offline
        Ryan Binns
        wrote on last edited by
        #3

        Use string::size_type instead of int for the begin and end variables so they match the type returned by string::npos. You shouldn't mix signed and unsigned types in a conditional statement unless you really know what you're doing (and are willing to handle the consequences ;)).

        Ryan

        "Punctuality is only a virtue for those who aren't smart enough to think of good excuses for being late" John Nichol "Point Of Impact"

        1 Reply Last reply
        0
        Reply
        • Reply as topic
        Log in to reply
        • Oldest to Newest
        • Newest to Oldest
        • Most Votes


        • Login

        • Don't have an account? Register

        • Login or register to search.
        • First post
          Last post
        0
        • Categories
        • Recent
        • Tags
        • Popular
        • World
        • Users
        • Groups