• Speiser0@feddit.de
    link
    fedilink
    arrow-up
    1
    ·
    1 年前

    If people want me to write into my code what it does, I guess I’ll label everything:

    #include <iostream>
    #include <cstdint>
    
    #pragma GCC diagnostic ignored "-Wunused-label"
    
    int main()
    {
    A:int a = 4;
    B:if ((uintptr_t)&a & 0x100)
    BA:std::cout << "hi" << std::endl; else
    BB:std::cout << "hello" << std::endl;
    C:return 0;
    }
    

    Note that this is much better for code style because - as opposed to the semicolon indentation- the single statement if and else branches still work. The trailing else is on the same line on purpose, it’s so small it doesn’t need its own line. Here’s another style with similar properties:

    [[,]]int a = 4;
    [[,]]if ((uintptr_t)&a & 0x100)
    [[,,]]std::cout << "hi" << std::endl; else
    [[,]]std::cout << "hello" << std::endl;
    [[,]]return 0;