ERROR_THREAD_EXISTS


  • Discourse touched me in a no-no place

    @Gąska said in ERROR_THREAD_EXISTS:

    I guess nobody in the C++ committee knows shit.

    I think that must be wrong, as the C++ committee certainly seems to produce enough 💩...


  • Considered Harmful

    @Vixen said in ERROR_THREAD_EXISTS:

    yeah. /dev/null as the input file to dd is a NOP

    The NOP thread is :arrows:.


  • BINNED

    @dkf said in ERROR_THREAD_EXISTS:

    @Gąska said in ERROR_THREAD_EXISTS:

    I guess nobody in the C++ committee knows shit.

    I think that must be wrong, as the C++ committee certainly seems to produce enough 💩...

    At least they don’t produce the kind of shit where a procedure is different from a function. (As seen in Pascal, Basic, Fortran)

    Makes me wonder what happened to the regular void proposal.


  • Considered Harmful

    SQL has procedures and functions, but there the distinction is actually important. UDFs and sprocs are completely different beasts.


  • Discourse touched me in a no-no place

    @error That's probably because sprocs are always a language extension. So too are UDFs, but those at least have comprehensible semantics in the standard language (so are only a small extension).


  • BINNED

    @topspin I wonder whose toe I stepped on with that?! 🤨


  • Banned

    @topspin my bet is on people with very strong opinion that functions and procedures are completely different, like file and directory :trollface:


  • Discourse touched me in a no-no place

    @Gąska They've probably been taught wrongly by some dogmatic jerkwad. Not that we know any such folks around here...



  • @Gąska said in ERROR_THREAD_EXISTS:

    Constant variable. Void function. Negative zero. When did programmers start caring about common meanings of words?

    Those are the common meanings for those words. What they're not is "mathematically correct" meanings.


  • Banned

    @anonymous234 show me a single non-programmer who has ever used the words "negative zero".


  • BINNED

    @Gąska a non-programmer would rather say left-sided limit, but it’s the same idea.

    Oh, that’s not what you meant by non-programmer? Well, people who don’t talk about such things in the first place won’t use such phrasing, obviously. Over here we do have stupid politicians talking about keeping the budget in "black zero", i.e. positive, compared to "red"/negative.


  • Banned

    @topspin said in ERROR_THREAD_EXISTS:

    @Gąska a non-programmer would rather say left-sided limit, but it’s the same idea.

    And while it is the same idea, people saying left-sided limit would get very angry at you if you were calling it "negative zero", and would make lengthy lectures why what you say is totally wrong.

    Oh, that’s not what you meant by non-programmer? Well, people who don’t talk about such things in the first place won’t use such phrasing, obviously. Over here we do have stupid politicians talking about keeping the budget in "black zero", i.e. positive, compared to "red"/negative.

    Note that they don't mean literally zero - just within some small margin from zero. As opposed to programmers, for whom positive/negative zero means literally zero, no margin whatsoever.


  • BINNED

    @Gąska said in ERROR_THREAD_EXISTS:

    Note that they don't mean literally zero - just within some small margin from zero. As opposed to programmers, for whom positive/negative zero means literally zero, no margin whatsoever.

    Yes, I thought about mentioning that, because it makes it even more stupid. As long as it’s in an interval of, say, [-10m€, 10m€] you can call it either positive or negative, but still make a point of calling -5 “positive zero”, or vice versa.

    @Gąska said in ERROR_THREAD_EXISTS:

    And while it is the same idea, people saying left-sided limit would get very angry at you if you were calling it "negative zero", and would make lengthy lectures why what you say is totally wrong.

    I've seen either of the following conventions used (while the -sign is usually on the right)

    Bildschirmfoto 2019-12-28 um 20.52.56.png
    Bildschirmfoto 2019-12-28 um 20.52.38.png



  • @Gąska said in ERROR_THREAD_EXISTS:

    As opposed to programmers, for whom positive/negative zero means literally zero, no margin whatsoever.

    Well, within a margin of ±2-16494 or ±2-4951 or ±2-1074 or ±2-149, depending on the floating point format you're using.


  • Banned

    @HardwareGeek said in ERROR_THREAD_EXISTS:

    @Gąska said in ERROR_THREAD_EXISTS:

    As opposed to programmers, for whom positive/negative zero means literally zero, no margin whatsoever.

    Well, within a margin of ±2-16494 or ±2-4951 or ±2-1074 or ±2-149, depending on the floating point format you're using.

    Not quite. It's not that zero represents any number within the margin. It's that any number within the margin is equal to zero. Consequently, all these different numbers within the margin are all literally equal to each other. Not approximately - literally equal. That's a very different kind of margin than one used by politicians.

    Or to put it another way - floats are discrete, not continuous. If you drew a number line of float numbers, it wouldn't be a line - it would be a series of dots, and there would be a grand total of zero dots between positive zero and FLT_MIN. There is no margin because there are no numbers the margin could contain.

    Floats might look like real numbers and even quack like real numbers, but they actually aren't real numbers.

    @topspin said in ERROR_THREAD_EXISTS:

    @Gąska said in ERROR_THREAD_EXISTS:

    And while it is the same idea, people saying left-sided limit would get very angry at you if you were calling it "negative zero", and would make lengthy lectures why what you say is totally wrong.

    I've seen either of the following conventions used (while the -sign is usually on the right)

    I was taught the latter in college. And the teacher made it very clear that lim x→0- doesn't make x equal to 0.


  • Notification Spam Recipient

    @Gąska said in ERROR_THREAD_EXISTS:

    I was taught the latter in college. And the teacher made it very clear that lim x→0- doesn't make x equal to 0.

    But, is 0- equal to 0+? Because we far as I can tell that's the comparison that's being done here.


  • Banned

    @Tsaukpaetra said in ERROR_THREAD_EXISTS:

    @Gąska said in ERROR_THREAD_EXISTS:

    I was taught the latter in college. And the teacher made it very clear that lim x→0- doesn't make x equal to 0.

    But, is 0- equal to 0+? Because we far as I can tell that's the comparison that's being done here.

    Nope. 0+ is greater than 0-

    Edit: or to be extra pedantic, limx→0+ x is greater than limx→0- x.

    Edit 2: I fucked up. limx→0+ IS equal to limx→0-, and they're both equal to 0 and so are neither positive nor negative. What I should've said is that within limx→0-, y→0+, x is always less than y.

    With apologies to everyone who reads posts instantly after they're made.


  • Notification Spam Recipient

    @Gąska said in ERROR_THREAD_EXISTS:

    With apologies to everyone who reads posts instantly after they're made.

    I was reinitializing, so no sweat.


  • BINNED

    @Tsaukpaetra said in ERROR_THREAD_EXISTS:

    @Gąska said in ERROR_THREAD_EXISTS:

    With apologies to everyone who reads posts instantly after they're made.

    I was reinitializing, so no sweat.

    Did you get rebooted along with the ⛔👶 update?



  • @Gąska said in ERROR_THREAD_EXISTS:

    @Tsaukpaetra said in ERROR_THREAD_EXISTS:

    @Gąska said in ERROR_THREAD_EXISTS:

    I was taught the latter in college. And the teacher made it very clear that lim x→0- doesn't make x equal to 0.

    But, is 0- equal to 0+? Because we far as I can tell that's the comparison that's being done here.

    Nope. 0+ is greater than 0-

    Edit: or to be extra pedantic, limx→0+ x is greater than limx→0- x.

    Edit 2: I fucked up. limx→0+ IS equal to limx→0-, and they're both equal to 0 and so are neither positive nor negative. What I should've said is that within limx→0-, y→0+, x is always less than y.

    With apologies to everyone who reads posts instantly after they're made.

    Depends on what you're taking the limit of. A continuous function that crosses at zero, yes, both limits are equal to zero. A continuous function that doesn't cross at zero, then they're equal but not to zero. And a discontinuous function (at zero)? No guarantees whatsoever.

    Take f(x) = -1/x. Then the left-handed limit diverges upward, while the other diverges downward. Or if f(x) is the heavyside function, then 0- is 0 while 0+ is 1. IIRC.


  • Banned

    @Benjamin-Hall said in ERROR_THREAD_EXISTS:

    Depends on what you're taking the limit of.

    Yeah, I fucked up the edit too. In the first edit it said limit of x. That's pretty linear.


  • Banned

    @topspin said in ERROR_THREAD_EXISTS:

    @Tsaukpaetra said in ERROR_THREAD_EXISTS:

    @Gąska said in ERROR_THREAD_EXISTS:

    With apologies to everyone who reads posts instantly after they're made.

    I was reinitializing, so no sweat.

    Did you get rebooted along with the ⛔👶 update?

    Confirmed: @Tsaukpaetra is a forum bot!


  • Notification Spam Recipient

    @Gąska said in ERROR_THREAD_EXISTS:

    @topspin said in ERROR_THREAD_EXISTS:

    @Tsaukpaetra said in ERROR_THREAD_EXISTS:

    @Gąska said in ERROR_THREAD_EXISTS:

    With apologies to everyone who reads posts instantly after they're made.

    I was reinitializing, so no sweat.

    Did you get rebooted along with the ⛔👶 update?

    Confirmed: @Tsaukpaetra is a forum bot!

    Rats, I've been found out!


  • BINNED

    @Benjamin-Hall said in ERROR_THREAD_EXISTS:

    Take f(x) = -1/x. Then the left-handed limit diverges upward, while the other diverges downward.

    That's also exactly the use case for signed zero. Unlike integers, division by zero doesn't trap (unless you turn on FP signals), neither does it result in NaN, instead it returns +INF or -INF depending on the sign of zero, which most of the time is just what you'd expect.

    INB4 someone complaining "yeah, we all know that already". Everyone here does, yet here we are talking about it.



  • @Gąska said in ERROR_THREAD_EXISTS:

    @Benjamin-Hall said in ERROR_THREAD_EXISTS:

    Depends on what you're taking the limit of.

    Yeah, I fucked up the edit too. In the first edit it said limit of x. That's pretty linear.

    I kinda saw that...but not until I had posted. It's one of those funny math quirks.


  • Discourse touched me in a no-no place

    @Gąska said in ERROR_THREAD_EXISTS:

    Or to put it another way - floats are discrete, not continuous. If you drew a number line of float numbers, it wouldn't be a line - it would be a series of dots, and there would be a grand total of zero dots between positive zero and FLT_MIN. There is no margin because there are no numbers the margin could contain.

    That is wrong. Floats don't have points on the number line, but rather ranges. Any mathematical value in that range can represent it, and stands for all the values in the range. If you have a convergent algorithm, this isn't a problem. Divergent algorithms though will take this fundamental nature and turn it into a major source of error; this stuff is very subtle and is why consulting with a numerical analyst is important in stuff like simulation (or at least it is if you want the results to be meaningful).

    Floats might look like real numbers and even quack like real numbers, but they actually aren't real numbers.

    Very true!

    (Also, IEEE floats have negative zero so that the reciprocal of the reciprocal of a number will have the same sign as the original number. If not NaN, which is an error state.)



  • @Gąska said in ERROR_THREAD_EXISTS:

    @topspin my bet is on people with very strong opinion that functions and procedures are completely different, like file and directory :trollface:

    Now you're making me think of that Twix commercial...



  • @Gąska said in ERROR_THREAD_EXISTS:

    @anonymous234 show me a single non-programmer who has ever used the words "negative zero".

    I sometimes use it in non-programming contexts, to say that something is less than worthless



  • @hungrier said in ERROR_THREAD_EXISTS:

    to say that something is less than worthless

    Reading this made me imagine a 50 page forum argument with someone who insists -0 < 0 and keeps posting "proofs" for it.


  • BINNED

    @anonymous234 said in ERROR_THREAD_EXISTS:

    @hungrier said in ERROR_THREAD_EXISTS:

    to say that something is less than worthless

    Reading this made me imagine a 50 page forum argument with someone who insists -0 < 0 and keeps posting "proofs" for it.

    You've come to the right place! 🐠

    Filed under: Wait for next week when we do 0.9̅ ?= 1


  • Discourse touched me in a no-no place

    @anonymous234 said in ERROR_THREAD_EXISTS:

    Reading this made me imagine a 50 page forum argument with someone who insists -0 < 0 and keeps posting "proofs" for it.

    Don't give anyone ideas.


  • ♿ (Parody)

    @topspin said in ERROR_THREAD_EXISTS:

    @anonymous234 said in ERROR_THREAD_EXISTS:

    @hungrier said in ERROR_THREAD_EXISTS:

    to say that something is less than worthless

    Reading this made me imagine a 50 page forum argument with someone who insists -0 < 0 and keeps posting "proofs" for it.

    You've come to the right place! 🐠

    Filed under: Wait for next week when we do 0.9̅ ?= 1

    What if I switch doors though?



  • @boomzilla said in ERROR_THREAD_EXISTS:

    @topspin said in ERROR_THREAD_EXISTS:

    @anonymous234 said in ERROR_THREAD_EXISTS:

    @hungrier said in ERROR_THREAD_EXISTS:

    to say that something is less than worthless

    Reading this made me imagine a 50 page forum argument with someone who insists -0 < 0 and keeps posting "proofs" for it.

    You've come to the right place! 🐠

    Filed under: Wait for next week when we do 0.9̅ ?= 1

    What if I switch doors though?

    Or what about switching Windows? Using vim?



  • @topspin said in ERROR_THREAD_EXISTS:

    unless you turn on FP signals

    Which, btw, is a great way of keeping people who use your code on their toes. Have some methods that "forget" to restore the original FP settings after being called.

    (Bonus points if you actually have a valid use case for FP signals in said method.)


  • Banned

    @levicki said in ERROR_THREAD_EXISTS:

    @Gąska said in ERROR_THREAD_EXISTS:

    Even primitive pattern matching would notice I'm intentionally painting myself as anything but nice here.

    Painting? Why would that be needed? Not nice is literally what you are -- you don't need to pretend you were nice because you never were nice to begin with.

    LOL, you really think my online persona on a forum dedicated to shitting on everything around you is my actual personality? :rofl:

    @Gąska said in ERROR_THREAD_EXISTS:

    If you use non-standard grammar that can very easily be confused for something entirely different, don't act surprised when people misunderstand.

    So, when others misunderstand you it's their fault, and when you misunderstand others it's again their fault?

    No. When people (including me) misunderstand unambiguous statement using common grammar, it's their fault, regardless of who are the people involved. But you wrote a highly ambiguous statement using very uncommon grammar, so it's 100% your fault alone.

    @Gąska said in ERROR_THREAD_EXISTS:

    They... do? I'm sorry, which code are you talking about again, and when they don't share it?

    Why don't you get ERROR_FILE_EXISTS instead of ERROR_ALREADY_EXISTS when you use CreateDirectory if directory is just "a kind of file"?

    To differentiate between a situation where the exact same thing you're trying to create already exists so there's no point to it, and a situation where something else that's of no use to you already exists and prevents you from using that name. I hope I don't have to explain to you how that's a useful distinction.

    @Gąska said in ERROR_THREAD_EXISTS:

    As if you ever read, fact checked, or created anything.

    As if you would know whether I did?

    And yet you're very confident in your own ability to tell when others do it or not.

    @Gąska said in ERROR_THREAD_EXISTS:

    None because programmers hate using full words.

    So your examples were worthless then.

    ...Are you seriously trying to argue that constexpr int isn't a constant variable because the declaration doesn't literally use the sequence of letters constant variable? That it's completely meaningless that C++ variable declarations never use the word variable anyway, and constexpr literally means it's constant?

    @Gąska said in ERROR_THREAD_EXISTS:

    I guess nobody in the C++ committee knows shit. The words "void function" appear numerous times in the spec.

    A person can know technical stuff, but not have a good grasp on normal human language and/or social skills. Take yourself as an example.

    Thank you for making my case for me. Is it now clear that programmers don't care about common meanings of words?

    @Gąska said in ERROR_THREAD_EXISTS:

    People who made IEEE-754 didn't care about common meanings of words. And it's not exactly equivalent in behavior...

    Negative zero is used in complex number calculations and to represent small negative numbers rounded to 0 with the sign perserved when said sign is important. Both uses are rare enough to make your example irrelevant.

    It's so nice of you to write two whole sentences about the off-topic side remark, and not a single word about what we were actually discussing. And just for you, cyborg, I'll preemptively explain that by nice, I mean pathetic.

    @Gąska said in ERROR_THREAD_EXISTS:

    my bet is on people with very strong opinion that functions and procedures are completely different

    Semantically they are definitely not the same thing.

    In most languages, semantically they're 99% the same - you just can't use the return value for anything, but otherwise they're identical.


  • BINNED

    @Gąska said in ERROR_THREAD_EXISTS:

    Semantically they are definitely not the same thing.

    In most languages, semantically they're 99% the same - you just can't use the return value for anything, but otherwise they're identical.

    Ironically, the distinction between pure functions and functions with side effects is a much more semantically meaningful one, and (FP languages aside) far fewer languages make that distinction. "Procedures" are just a useless special name for returning the empty type.


  • Banned

    @levicki said in ERROR_THREAD_EXISTS:

    @Gąska said in ERROR_THREAD_EXISTS:

    LOL, you really think my online persona on a forum dedicated to shitting on everything around you is my actual personality?

    "The true measure of a man is what he would do if he knew he would never be caught."

    I'd be happy to dissect all the blatantly obvious problems with this quote in another thread. But this time, you make it.

    By extension, what people do when they (think they) are anonymous on the Internet is therefore their real face.

    Ever heard of roleplay forums?

    @Gąska said in ERROR_THREAD_EXISTS:

    But you wrote a highly ambiguous statement using very uncommon grammar...

    If you didn't skim it, then it probably wouldn't be ambiguous

    I gave you an alternative grammatical interpretation in that sentence that makes perfect sense with the exact words you wrote, and you still say it's unambiguous grammar? Do you even know what the word "ambiguous" means?

    and even if it were, instead of asking for clarification you jumped to conclusions and put words in my mouth to enable making an argument that otherwise couldn't exist.

    Because you used a grammar construct that is virtually never used and looks 100% identical to another grammar construct that's used all the time, so there was no reason to even suspect that it might be anything else than the one used all the time. Is that really so hard to understand?

    @Gąska said in ERROR_THREAD_EXISTS:

    and constexpr literally means it's constant?

    I don't thnik that word means what you think it means.

    The value can never change. That's what constant is all about, isn't it? Also, constexpr implies const.

    @Gąska said in ERROR_THREAD_EXISTS:

    In most languages, semantically they're 99% the same - you just can't use the return value for anything, but otherwise they're identical.

    Procedure doesn't have a return value at all.

    Yes, and that's why you can't use it. But other than that, it's completely identical to a function.

    @topspin said in ERROR_THREAD_EXISTS:

    "Procedures" are just a useless special name for returning the empty type.

    But in assembly to which everything boils down there is no such concept as "empty type" or the pointer to it.

    But there is in the original language. Compilation means translating program to another language. Whatever happens in this other language has zero relevance to the semantics of the original language.


  • Banned

    @levicki also, I'm a bit disappointed you've dropped the error code part of the discussion. Have you run out of arguments?


  • Banned

    @levicki said in ERROR_THREAD_EXISTS:

    If I cannot create directory because filesystem object with the same name exists, why would I want to know whether said object is directory or a file if both are "a kind of file" as you say?

    Because you'd likely want to do a different thing in response in each case?



  • @Gąska Are you saying I might want to write a file to the directory I was trying to create if it exists and not if it exists as a normal file? I'm SHOCKED!!!!111

    Filed under: If it wasn't clear, this is the exact reason why there are two status codes


  • BINNED

    @levicki said in ERROR_THREAD_EXISTS:

    @topspin said in ERROR_THREAD_EXISTS:

    "Procedures" are just a useless special name for returning the empty type.

    But in assembly to which everything boils down there is no such concept as "empty type" or the pointer to it.

    Considering that in assembly there is no concept of type to begin with... I guess?

    If ABI and calling convention define how the return value is passed (for example on x86/x64 it is any one of AL, AX, DX:AX, EAX, EDX:EAX, RAX, RDX:RAX) before returning from a procedure you don't bother putting any value there or even preserving what was there originally, and after returning you don't bother inspecting those registers because you know there was no assignment to begin with and you must restore their state if you had something in there.

    So yeah, (high-level) programmers do not respect the words at all.

    And if you return the empty type, you return that in no register at all. Works just as well as with any other type that, at the assembly level, is no longer treated uniformly but depending on size etc. At the language level, you don't introduce new names/concepts for functions returning word-sized results vs. double word-sized results etc., either, why should zero-sized be different.

    Sure, the MS x64 ABI for C might be stupid enough to return struct Void {}; in EAX, but since we're talking about languages in general there's absolutely no reason why you would have to design your ABI mapping that way.


  • Notification Spam Recipient

    @levicki said in ERROR_THREAD_EXISTS:

    By extension, what people do when they (think they) are anonymous on the Internet is therefore their real face.

    I am truly sorry for your beliefs.


  • Banned

    @Gąska said in ERROR_THREAD_EXISTS:

    @levicki said in ERROR_THREAD_EXISTS:

    If I cannot create directory because filesystem object with the same name exists, why would I want to know whether said object is directory or a file if both are "a kind of file" as you say?

    Because you'd likely want to do a different thing in response in each case?

    LOL, 2 people think it doesn't matter if it's a file or a directory that's blocking the path.


  • BINNED

    @Gąska There's a lot of funny downvotes in here. I'd blame people being sick of the discussion (rightfully), but the thread has been Jeffed already, so maybe they're just... wrong?


  • Banned

    @levicki said in ERROR_THREAD_EXISTS:

    @Gąska said in ERROR_THREAD_EXISTS:

    Because you'd likely want to do a different thing in response in each case?

    File and directory are either same and don't need two error codes, or different and do need two error codes -- make up your mind already.

    Ever heard of type hierarchies? File system contains files. Directories are files. Regular files are also files. Directories are not regular files even though they are files. Same with symbolic links and other special files.

    @topspin said in ERROR_THREAD_EXISTS:

    At the language level, you don't introduce new names/concepts for functions returning word-sized results vs. double word-sized results etc., either, why should zero-sized be different.

    At the language level you can have:

    unsigned long SetValue1(unsigned long NewValue); // returns old value
    

    And:

    void SetValue2(unsigned long NewValue); // doesn't return shit
    

    And you can then go on and blatantly ignore the return value from SetValue1 by not assigning it to anything.

    Since you can already ignore it, why was there a need to have a void type to begin with?

    Why was there need for any type at all? Just pass around raw bytes and make the programmer work their brain cells to figure out what they are! Easy peasy!

    You really don't understand why type systems have been invented, do you.


  • kills Dumbledore

    @PleegWat said in ERROR_THREAD_EXISTS:

    @Gąska said in WTF Bites:

    They're actually subtly different somehow?

    That seems likely, if those are all the errors for creating a directory. Linux has significantly more:

    What do the numbers signify in these man pages?


  • Fake News

    @Jaloopa said in ERROR_THREAD_EXISTS:

    @PleegWat said in ERROR_THREAD_EXISTS:

    @Gąska said in WTF Bites:

    They're actually subtly different somehow?

    That seems likely, if those are all the errors for creating a directory. Linux has significantly more:

    What do the numbers signify in these man pages?

    Either look up the meaning of those numbers using man man or better yet, read a summary on StackExchange


  • Notification Spam Recipient

    @JBert said in ERROR_THREAD_EXISTS:

    maoon maoon

    Fucking Moon Moon, always doing weird shit...


  • Banned

    @levicki said in ERROR_THREAD_EXISTS:

    @Gąska said in ERROR_THREAD_EXISTS:

    File system contains filesfilesystem objects.

    Filesystem objects a.k.a. files. It's a matter of terminology. And the widely accepted terminology among people working on/with filesystem drivers is such that a regular file is just one of many kinds of file, and other kinds of file - the so-called special files - don't have content streams, and directory is one of those special files. And the designers of WinAPI use it too - there's a reason why a whole bunch of functions with "file" in their name also operate on directories, and it's not utter incompetence.

    You really don't understand why type systems have been invented, do you.

    So just because I asked why was there a need for a void type, you automatically assume I don't understand a need for any and all types?

    Yes. Because if you understand the need for any types at all, you should automatically understand the need to denote a function that doesn't have a usable return value.

    And you do so in a condescending way?

    Hi pot! It's me, kettle!

    And you claim you are a nice person and your internet persona doesn't have anything to do with the real you?

    I'm just trying to keep OOC moments to the minimum.


  • Banned

    @levicki said in ERROR_THREAD_EXISTS:

    @Gąska That's like saying "because you understand English you should also understand Bosnian".

    Except English has nothing in common with Bosnian, and types have everything in common with types.

    IOW, retarded as usual coming from you.

    "I don't understand it therefore it's dumb and useless."

    And you still did not answer why we needed an empty type?

    To denote there's no value to be had. Duh.

    When you don't want to return anything just don't specify a (return) type and don't make the compiler assume int as default?

    Or do what C++ did - make not-returning-anything a type to simplify the language (instead of two separate sets of rules for procedures and functions, there's only one), making it easier to learn, implement, and program for (especially making generic programming easier - say, how would you implement std::function<void, Args...> if there was no void?)

    So much for programming language consistency and me not understanding things.

    That you invoked language consistency is the ultimate proof you don't understand this thing. A single syntax for two almost identical things IS more consistent than having a special snowflake language construct just for this one case. Consistency means that similar things behave similarly. There's no better way to make procedures behave like functions than making them functions.


Log in to reply