all 34 comments

sorted by: hot top controversial new old
[–] 61 points 2 years ago (12 children)

Very disappointing not to see an #if 0 (my personal go-to for decades) in this meme. 😞

  • source
  • hideshow 12 child comments
  • [–] 25 points 2 years ago (8 children)

    Damn, you beat me to it.

    It's common enough that it's supported like a comment by numerous syntax highlighting schemes, and has the added benefits of guaranteeing that the code won't be compiled as well as encapsulating any pre-existing block comments. Conversely, if (false) is total garbage.

  • source
  • parent
  • hideshow 8 child comments
  • [–] 14 points 2 years ago (7 children)

    If (false) is good because it is compiled so it doesn't get stale.

  • source
  • parent
  • hideshow 7 child comments
  • [–] 6 points 2 years ago* (3 children)

    A simple if (false) will get optimized out by any modern C or C++ compiler with optimizations on, but the problem is that the compiler will still parse and spend time on what's inside the if-block and it has to be legal code, whereas with the #if 0 trick the whole thing gets yeeted away by the preprocessor before even the compiler gets to look at it regardless of whether that block contains errors or not, it's literally just a string manipulation.

  • source
  • parent
  • hideshow 3 child comments
  • [–] 10 points 2 years ago (2 children)

    I think you missed the whole point of my comment 😂. Regardless, the time spent compiling a small snippet of code is completely negligible. In the end, both #if 0 and if (false) have their complimentary uses.

  • source
  • parent
  • hideshow 2 child comments
  • [–] -1 points 2 years ago (1 child)

    Yeah, but I still think if (false) is silly because it adds an artificial constraint which is to make sure the disabled parts always compile even when you're not using them. The equivalent of that would be having to check that all the revisions of a single source file compile against your current codebase.

  • source
  • parent
  • hideshow 1 child comment
  • [–] 3 points 2 years ago

    If(false) works in interpreted languages, the other one doesn't. It's stupid either way, that's what version control is for, but if we are doing the stupidness anyway, you can't use preprocessor flags in many languages because shit doesn't get compiled.

  • source
  • parent
  • [–] 48 points 2 years ago

    I was going through some js code a few months ago and every function in a module had return; as its first line. And that module was imported into 4 or 5 scripts.

  • source
  • [–] 23 points 2 years ago

    You folks have clearly not met first year CS students. Screenshots code

  • source
  • [–] 20 points 2 years ago

    laughing in #if 0:

    #include 
    
    int main()
    {
    #if 0
            std::cout << "Look at this" << std::endl;
    #else
            std::cout << "ugly abomination." << std::endl;
    #endif
    }
    
  • source
  • [–] 9 points 2 years ago (6 children)

    If you're in a language that supports it, please don't use if (false) use if ($disallowAllUsers = false && $whateverTheRealConditionIs)

  • source
  • hideshow 6 child comments
  • [–] 6 points 2 years ago (2 children)

    Never seen this, what language or buildsystem is this?

  • source
  • parent
  • hideshow 2 child comments
  • [–] 1 point 2 years ago

    The assignment syntax is too close to comparison, which is what is more typical in that position. I would recommend

    const bool _isFeatureEnabled = false;
    if (_isFeatureEnabled && ...)
    

    if not a proper feature flag (or just remove the code).

  • source
  • parent
  • [–] 8 points 2 years ago

    bonus points if you use a different variable every file so they have to go through and change every instance if they want to make changes

  • source
  • [–] 5 points 2 years ago (1 child)
  • [–] 4 points 2 years ago* (3 children)

    I don't see the need for an if block or renaming the function and leaving it there. It is extra unnecessary work for the compiler. Comments are probably the best way. Might also copy the current file, put the original in some folder like "old", and delete the old code inside the new copy.

  • source
  • hideshow 3 child comments
  • [–] 2 points 2 years ago

    what about relying on the persistent undo history in vim?

  • source
  • [–] 1 point 2 years ago

    In Python you put it in a multiline string, since it has those but not multiline comments.

  • source
  • [+] 1 point 2 years ago
    [+] 0 points 2 years ago