แก้ปัญหา C++ บน x86-64

ปัญหา C++ เบา x86-64 ก็คงจะมีได้หลายๆ อย่างแต่ที่ผมเจอคือ

(unsigned int)string.find(“…”) == string::npos()

พอเอา (unsigned int) ออกก็ใช้ได้เลย😛. กว่าจะเจอแทบแย่ เจอ method ยาว แบบ 300 บรรทัด มี if มี while ซ้อนๆ กันงงๆ หน่อย.

4 thoughts on “แก้ปัญหา C++ บน x86-64

  1. ผมก็ไม่ค่อยสันทัด C++ เพราะเขียน C ก็งู ๆ ปลา ๆ เหมือนกัน
    แต่ที่เคยผ่าน ๆ ตา คือ C++ มี Casting Operator เพิ่มเข้ามาด้วยครับ

    – static_cast (x)
    – const_cast (x)
    – dynamic_cast (x)
    – reinterpret_cast (x)

    แต่ Case นี้ string.find(“…”) return size_t มาแล้ว ก็น่าจะ compare กับ string::npos() ซึ่งเป็น static const size_t ก็น่าจะ OK อย่างที่เขียนมาครับ เป็นเหตุผลให้เอา (unsigned int) ออกแล้วใช้ได้ (แฮ่ ๆ ผมเดาเอา :P)

  2. อ้าว… ลืมไป HTML Tag

    static_cast <T> (x)
    const_cast <T> (x)
    dynamic_cast <T> (x)
    reinterpret_cast <T> (x)

    จะได้หรือเปล่าหนอ ? ไม่มีให้ Preview ก่อนซะด้วย😛

  3. ปกติ cast ข้อมูล bit ต่างกันอย่างนี้ หลายๆ ครั้ง จะไม่ เจ๊ง

    แต่อืม, ปกติ npos() จะเป็น -1 –> 0xFF FF FF FF FF FF FF FF, มัน เลยเจ๊ง.

ใส่ความเห็น

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / เปลี่ยนแปลง )

Twitter picture

You are commenting using your Twitter account. Log Out / เปลี่ยนแปลง )

Facebook photo

You are commenting using your Facebook account. Log Out / เปลี่ยนแปลง )

Google+ photo

You are commenting using your Google+ account. Log Out / เปลี่ยนแปลง )

Connecting to %s