- That's never stopped you before; why start now? (Was: online switch case generator for strings) - 11 Updates
- Eliminating Undecidability and Incompleteness in Formal Systems (Prolog already does this) - 5 Updates
- Converting formal proofs to conform to sound deductive inference (Simple Essence) - 1 Update
- Converting formal proofs to conform to sound deduction - 1 Update
- std::shared_ptr thread-safety - 5 Updates
- "Modern C++ Won't Save Us" by alex_gaynor - 1 Update
- Why do some people hate namespace prefixes? - 1 Update
gazelle@shell.xmission.com (Kenny McCormack): Apr 30 01:15PM In article <9f7d8f95-92e7-4af8-8fac-2a7ea7956341@googlegroups.com>, >> And Satan invented fossils, yes? >I'd answer, but you've given much evidence you won't listen to the >answer. That's never stopped you before; why start now? Nobody listens to any of your crap - except to mock it. -- Mike Huckabee has yet to consciously uncouple from Josh Duggar. |
rick.c.hodgin@gmail.com: Apr 30 06:30AM -0700 On Tuesday, April 30, 2019 at 9:16:00 AM UTC-4, Kenny McCormack wrote: > Nobody listens to any of your crap - except to mock it. That's how you operate, Kenny, so it's natural for you to think that's how all other people are toward others. They aren't. People contact me privately and tell me that my posts have been moving, inspirational, they ask me questions about faith, etc. The posts I've made have reached people ... and it's reached the people who it was intended for. The rest of the people mocking my posts are already self-condemned and may never be saved. ----- Now, would you like to now reply with a signature that quotes me out of context? One applying effort toward harming my name and reputation as a true and devout Christian? You, Kenny, self-condemn your own soul as well. And the sad thing is ... it doesn't have to be that way. But you make it that way by your hatred of God, hatred of truth, and love of sin. -- Rick C. Hodgin |
gazelle@shell.xmission.com (Kenny McCormack): Apr 30 01:43PM In article <e9074159-9eaa-4d6b-a33f-9fde7e0fa9fe@googlegroups.com>, >> Nobody listens to any of your crap - except to mock it. >That's how you operate, Kenny, so it's natural for you to think >that's how all other people are toward others. They aren't. You're a liar. End of story. -- It's possible that leasing office space to a Starbucks is a greater liability in today's GOP than is hitting your mother on the head with a hammer. |
rick.c.hodgin@gmail.com: Apr 30 07:21AM -0700 On Tuesday, April 30, 2019 at 9:44:06 AM UTC-4, Kenny McCormack wrote: > >that's how all other people are toward others. They aren't. > You're a liar. > End of story. I am not a liar. You mock most everyone you reply to, Kenny. Even in the posts where you provide some help there is still a mocking signature. Jesus comes to the people of this world, all of them, with His arms outstretched (literally on the cross), saying "Come to me, all you who are heavy laden and I will give you rest for your souls." He offers to forgive people their sin, and to give them eternal life in Heaven. What He offers is the most desirable thing imaginable for all people everywhere ... yet because people love darkness more than light they flee from Him, flee from His offer. The Bible is available at multiple places, Kenny. You probably even have one on a shelf somewhere, and if not there's bible.com and 500 other Bible-related websites. Anyone entering into Hell will be by their own personal choice to go there, and not for any other reason. Each person entering Hell will have no but themselves to blame. -- Rick C. Hodgin PS -- Jesus told us that because the people of the world hated Him, they would hated by the world. Seems He was right once again. |
gazelle@shell.xmission.com (Kenny McCormack): Apr 30 03:06PM In article <5d3252ec-1599-4227-8918-21ae94fa891d@googlegroups.com>, >> You're a liar. >> End of story. >I am not a liar. You mock most everyone you reply to, Kenny. What part of "End of story" is tripping you up? -- I've been watching cat videos on YouTube. More content and closer to the truth than anything on Fox. |
rick.c.hodgin@gmail.com: Apr 30 08:17AM -0700 On Tuesday, April 30, 2019 at 11:06:45 AM UTC-4, Kenny McCormack wrote: > >> End of story. > >I am not a liar. You mock most everyone you reply to, Kenny. > What part of "End of story" is tripping you up? Satan likes to put periods on things, to divide those who shine the light from those who live in darkness. It's one of his most effective tools because once the voice shining the light is removed from input into one's life and ears ... then that darkness can once again extend its clutches around the indi- vidual and keep them on the wrong path, the one that leads to their soul's destruction in the judgment. Hopefully you'll learn: Things are true for the reasons they are true, Kenny, and not for other reasons. -- Rick C. Hodgin |
rick.c.hodgin@gmail.com: Apr 30 08:42AM -0700 On Tuesday, April 30, 2019 at 11:06:45 AM UTC-4, Kenny McCormack wrote: > >> End of story. > >I am not a liar. You mock most everyone you reply to, Kenny. > What part of "End of story" is tripping you up? Something you need to learn about truth, Kenny, is it's not like lies. The truth exists as it is always and only. It speaks with one voice. It doesn't have alternate takes or perspectives. It is solid, invincible, always victorious in every situation. It is that truth that will defeat everyone who has sin still charged to their soul when they leave this world. It will be the truth of God's laws resulting in judgment and condemnation for the souls which retain sin. Jesus came to take our sin away so we can endure that total scrutiny of truth in that final day. Without Him, we will all fail the test and will be found guilty. Only with Him taking our sin away from us are we able to be set free from that same judgment and condemnation that will fall upon those who do not have their sin taken away. Jesus is not a religion. Jesus is not a joke. Jesus is truth, which makes Him solid, invincible, and always victorious in every situation, including the day of your judg- ment if you are not saved before you leave this world. He will be glorified in every soul's destruction on that day, the same as He will be glorified in how He gave life to all who would receive it. Every knee shall bow, and every tongue shall confess that Jesus Christ is Lord over all, and all to the glory of God the Father. You can read that personally as: Kenny's knee will bow, and Kenny's tongue shall confess that Jesus Christ is Lord over all, and it will be to the glory of God the Father ... whether you do that in your repentance and salvation, or in your rebellion against Him and your soul's destruction in Hell. The truth is not like other things. You must come to understand what it is you're up against. You will all before it 100% every time, Kenny. The only winning move is to recognize that while truth will destroy your soul in Hell over sin, that same truth is always willing to forgive your sin and set you free JUST FOR THE ASKING. Only a rebellious fool from Hell would ignore that free offer of salvation and choose to die a coward's death in the unending burning flames. Only a total and complete rebellious, idiotic fool. -- Rick C. Hodgin |
rick.c.hodgin@gmail.com: Apr 30 09:19AM -0700 On Tuesday, April 30, 2019 at 11:06:45 AM UTC-4, Kenny McCormack wrote: > What part of "End of story" is tripping you up? From the 1700s: https://mobile.twitter.com/WhitefieldG/status/1123229014326300672 "Jesus died to save such as you; he is full of compassion; and if you go to him, as poor, lost, undone sinners, Jesus ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ will give you his spirit; you shall live and reign, and reign and live, you shall love and live, and live and love with this Jesus to all eternity." The proud will die in rebellion and enter into Hell. The humble will die in repentance and will be shown grace and mercy. That is truth. -- Rick C. Hodgin |
Mr Flibble <flibbleREMOVETHISBIT@i42.co.uk>: Apr 30 06:21PM +0100 > The proud will die in rebellion and enter into Hell. > The humble will die in repentance and will be shown grace and mercy. > That is truth. Nonsense. A) Your bible is false. B) Your god the existence of which is predicated on your bible being true is, given (A), also false. /Flibble -- "You won't burn in hell. But be nice anyway." – Ricky Gervais "I see Atheists are fighting and killing each other again, over who doesn't believe in any God the most. Oh, no..wait.. that never happens." – Ricky Gervais "Suppose it's all true, and you walk up to the pearly gates, and are confronted by God," Bryne asked on his show The Meaning of Life. "What will Stephen Fry say to him, her, or it?" "I'd say, bone cancer in children? What's that about?" Fry replied. "How dare you? How dare you create a world to which there is such misery that is not our fault. It's not right, it's utterly, utterly evil." "Why should I respect a capricious, mean-minded, stupid God who creates a world that is so full of injustice and pain. That's what I would say." |
Mr Flibble <flibbleREMOVETHISBIT@i42.co.uk>: Apr 30 06:22PM +0100 > free offer of salvation and choose to die a coward's death in > the unending burning flames. Only a total and complete rebellious, > idiotic fool. Nonsense. A) Your bible is false. B) Your god the existence of which is predicated on your bible being true is, given (A), also false. /Flibble -- "You won't burn in hell. But be nice anyway." – Ricky Gervais "I see Atheists are fighting and killing each other again, over who doesn't believe in any God the most. Oh, no..wait.. that never happens." – Ricky Gervais "Suppose it's all true, and you walk up to the pearly gates, and are confronted by God," Bryne asked on his show The Meaning of Life. "What will Stephen Fry say to him, her, or it?" "I'd say, bone cancer in children? What's that about?" Fry replied. "How dare you? How dare you create a world to which there is such misery that is not our fault. It's not right, it's utterly, utterly evil." "Why should I respect a capricious, mean-minded, stupid God who creates a world that is so full of injustice and pain. That's what I would say." |
Mr Flibble <flibbleREMOVETHISBIT@i42.co.uk>: Apr 30 06:22PM +0100 > their soul's destruction in the judgment. > Hopefully you'll learn: Things are true for the reasons they > are true, Kenny, and not for other reasons. And Satan invented fossils, yes? /Flibble -- "You won't burn in hell. But be nice anyway." – Ricky Gervais "I see Atheists are fighting and killing each other again, over who doesn't believe in any God the most. Oh, no..wait.. that never happens." – Ricky Gervais "Suppose it's all true, and you walk up to the pearly gates, and are confronted by God," Bryne asked on his show The Meaning of Life. "What will Stephen Fry say to him, her, or it?" "I'd say, bone cancer in children? What's that about?" Fry replied. "How dare you? How dare you create a world to which there is such misery that is not our fault. It's not right, it's utterly, utterly evil." "Why should I respect a capricious, mean-minded, stupid God who creates a world that is so full of injustice and pain. That's what I would say." |
peteolcott <Here@Home>: Apr 29 06:43PM -0500 On 4/29/2019 4:53 PM, paul wallich wrote: > would work just as well if the tag were "NPNR" or "frabjous" or "charmed" or "boogabooga". But use the tag "unsound", and magically all of the senses of "unsound" from colloguial language and other logical systems suddenly get dragged in and pasted over > the top of what might as well be "frabjous". > Do some brains need better macro systems? Sound deductive inference (a) All dogs are mammals (b) All mammals breath (c) Therefore all dogs breath Unsound deductive inference (false premise) (a) All dogs are office buildings (b) All office buildings have windows (c) Therefore all dogs have windows Unsound deductive inference (invalid inference) (a) All dogs are mammals (b) All fish swim (c) Therefore all dogs breath -- Copyright 2019 Pete Olcott All rights reserved "Great spirits have always encountered violent opposition from mediocre minds." Albert Einstein |
peteolcott <Here@Home>: Apr 29 09:53PM -0500 On 4/28/2019 6:36 AM, j4n bur53 wrote: > Pure Prolog is not able to enumerate a model M, > because it uses depth first. negation of failure > subsequently also does cannot enumerate a model M. I am not talking about every aspect of Prolog. I am only talking about the aspect of Prolog that "understands" that Provable(X) is True(X), Provable (¬X) is False(X). From this much we can build: (¬Provable(X) ∧ ¬Provable(¬X)) ↔ Unsound(X) Which means that a sentence must be true or false. From this we can determine that this sentence is false: ∃F ∈ Formal_System ∃G ∈ Closed_WFF(F) (G ↔ ((F ⊬ G) ∧ (F ⊬ ¬G))) There is no sentence G of Formal System F that is neither True nor False in F. Thus making this paragraph false: First incompleteness theorem Any consistent formal system F within which a certain amount of elementary arithmetic can be carried out is incomplete; i.e., there are statements of the language of F which can neither be proved nor disproved in F. https://plato.stanford.edu/entries/goedel-incompleteness/#Int Thus refuting the 1931 Incompleteness Theorem. -- Copyright 2019 Pete Olcott All rights reserved "Great spirits have always encountered violent opposition from mediocre minds." Albert Einstein |
peteolcott <Here@Home>: Apr 29 10:06PM -0500 On 4/29/2019 7:22 PM, luserdroog 0wrote: > "dog's have bad breath." > This looks almost like Aristotle's syllogisms. These > were treated in a very interesting book by Lukasiewicz. The only reason that incompleteness is provable is that the formal proofs of symbolic logic diverge from that simple pattern. Summing it up: True(X) is Provable(X) from True Premises. False(X) is Provable(¬X) from True Premises. Otherwise Unsound(X). Technically {Unsound} only applies to arguments and not to single expressions of language I had to extend the meaning of the term {Unsound} when I applied the concept of soundness to formal proofs. -- Copyright 2019 Pete Olcott All rights reserved "Great spirits have always encountered violent opposition from mediocre minds." Albert Einstein |
peteolcott <Here@Home>: Apr 30 11:55AM -0500 > power to be able to perform interesting inference in your system. > Certainly one of Gödel's results is that if you have a formal system that is > expressive enough to include arithmetic, you run into incompleteness. Only because the mathematical system that he used to form this proof was too weak to discern semantic ill formedness: In the same way that not all finite strings are well-formed formula (when semantic criteria is applied) not all closed WFF are logic sentences. Any expression of language that is neither true nor false is not a logic sentence of any formal system that has been adapted to conform to the sound deductive inference model. Logic sentences are always derived from sound deduction. In the sound deductive inference model this means that there is: [a connected sequence of valid deductions from true premises to a true conclusion]. When axioms are construed as expressions of language having the semantic property of Boolean true then the theorem consequences of formal proofs form: [a connected sequence of inference from axioms to a true consequence]. In neither case is undecidability, incompleteness or inconsistency possible. -- Copyright 2019 Pete Olcott All rights reserved "Great spirits have always encountered violent opposition from mediocre minds." Albert Einstein |
peteolcott <Here@Home>: Apr 30 12:02PM -0500 On 4/30/2019 11:47 AM, Pascal J. Bourguignon wrote: > inconsistent or incomplete, choose of of two. > (Ie. correct programs will produce wrong results, or there will be > programs that you won't be able to prove if it is correct or incorrect). My system can express anything including arithmetic, it simply does not do so erroneously: In the same way that not all finite strings are well-formed formula (when semantic criteria is applied) not all closed WFF are logic sentences. Any expression of language that is neither true nor false is not a logic sentence of any formal system that has been adapted to conform to the sound deductive inference model. Logic sentences are always derived from sound deduction. In the sound deductive inference model this means that there is: [a connected sequence of valid deductions from true premises to a true conclusion]. When axioms are construed as expressions of language having the semantic property of Boolean true (thus anchoring formal proofs in the semantics of Boolean values) then the theorem consequences of formal proofs form: [a connected sequence of inference from axioms to a true consequence]. In neither case is undecidability, incompleteness or inconsistency possible. -- Copyright 2019 Pete Olcott All rights reserved "Great spirits have always encountered violent opposition from mediocre minds." Albert Einstein |
peteolcott <Here@Home>: Apr 30 11:22AM -0500 In sound deductive inference there is: [a connected sequence of valid deductions from true premises to a true conclusion]. It would seem that to convert formal proofs to conform to this model: Axioms could be construed as expressions of language having the semantic property of Boolean true. This would seem to anchor the syntax of formal proofs within the semantics of Boolean values. This would seem to cause the theorem consequences of formal proofs derive: [a connected sequence of inference from axioms to a true consequence]. The key value of this transformation is that it seems to eliminate undecidability, incompleteness and inconsistency from formal systems. This defines the Prolog equivalent to sound deductive inference: (1) Construing the Prolog database as the formal system. (2) Construing queries that return "Yes" as True. (3) Construing negated queries that return "Yes" as False. (4) Construing ONLY queries that return Yes or return Yes to their negation are sound deductive inference. -- Copyright 2019 Pete Olcott All rights reserved "Great spirits have always encountered violent opposition from mediocre minds." Albert Einstein |
peteolcott <Here@Home>: Apr 30 09:34AM -0500 In the same way that not all finite strings are well-formed formula (when semantic criteria is applied) not all closed WFF are logic sentences. Any expression of language that is neither true nor false is not a logic sentence of any formal system that has been adapted to conform to the sound deductive inference model. Logic sentences are always derived from sound deduction. In the sound deductive inference model this means that there is: [a connected sequence of valid deductions from true premises to a true conclusion]. When axioms are construed as expressions of language having the semantic property of Boolean true then the theorem consequences of formal proofs form: [a connected sequence of inference from axioms to a true consequence]. In neither case is undecidability, incompleteness or inconsistency possible. Eliminating Undecidability and Incompleteness in Formal Systems https://www.researchgate.net/publication/332427635_Eliminating_Undecidability_and_Incompleteness_in_Formal_Systems -- Copyright 2019 Pete Olcott All rights reserved "Great spirits have always encountered violent opposition from mediocre minds." Albert Einstein |
Paavo Helde <myfirstname@osa.pri.ee>: Apr 30 10:28AM +0300 On 30.04.2019 2:19, Chris M. Thomasson wrote: > object if it does not already own one. It can if external sync is used. > Not sure about the special case where shared_ptr will never change and > always points to the exact same address, forever. Here is a simple demo about what I had in mind. Note the lines (1) and (2). One might argue that Wrap refcounting provides the needed external sync here, but at least it is implicit and automatic. #include <memory> #include <iostream> #include <thread> #include <mutex> // for serializing std::cout output only std::mutex cout_mx; struct A { int x_; A(int x) : x_(x) {} ~A() { std::lock_guard<std::mutex> lock(cout_mx); std::cout << "A destroyed\n"; } void foo() { std::lock_guard<std::mutex> lock(cout_mx); std::cout << "I am A (x=" << x_ << ") in thread " << std::this_thread::get_id() << "\n"; } }; struct Wrap { const std::shared_ptr<A> a_; // (0) a_ is non-mutable Wrap(int x) : a_(std::make_shared<A>(x)) {} ~Wrap() { std::lock_guard<std::mutex> lock(cout_mx); std::cout << "Wrap destroyed\n"; } }; void OtherThread(std::shared_ptr<Wrap> wrap) { auto a = wrap->a_; // (1) no locking wrap.reset(); a->foo(); } int main() { auto wrap = std::make_shared<Wrap>(42); std::thread t1(OtherThread, wrap); auto a = wrap->a_; // (2) no locking wrap.reset(); a->foo(); a.reset(); t1.join(); } A possible output: I am A (x=42) in thread 2216 Wrap destroyed I am A (x=42) in thread 12512 A destroyed |
Juha Nieminen <nospam@thanks.invalid>: Apr 30 10:58AM > The problem is that the loading of the pointer and refcount increment > need to be a single atomic op in the internals of the ref count impl. It is my understanding that the control block used by std::shared_ptr which it creates when it starts managing a new object (ie. the piece of memory it allocates for bookkeeping) is fully thread-safe as per the standard. Which ought to mean that two separate std::shared_ptr instances that are pointing to the same object (ie. sharing it) can freely modify eg. the reference count for that object at the same time without problems (which happens if they are eg. assigned to another std::shared_ptr instance, or go out of scope, or whatever), without the programmer having to take care of it. However, the std::shared_ptr class *itself* is not thread-safe as-is (and to make it thread-safe you need to use eg. std::atomic<std::shared_ptr<T>>). It's just a bit confusing exactly which operations, and in which situations, are thread-safe as-is, and which are not. Some things can be done safely, others need explicit locking (eg. by using std::atomic in C++20). |
"Öö Tiib" <ootiib@hot.ee>: Apr 30 04:00AM -0700 On Monday, 29 April 2019 09:41:40 UTC+3, Juha Nieminen wrote: > > any other thread then you have race condition. So you have > > to put locks around it. > "Write it"? Write what, exactly? Write to the shared_ptr itself. It is internally designed as a pointer. That pointer potentially points at control block (accesses of what are synchronized). That block is either allocated together with or potentially points at actual data (accesses of what are again not synchronized). With "write it" I meant that pointer. |
Bonita Montero <Bonita.Montero@gmail.com>: Apr 30 02:09PM +0200 > of what are synchronized). That block is either allocated together > with or potentially points at actual data (accesses of what are > again not synchronized). With "write it" I meant that pointer. The control-block shouldn't have the pointer to the data. All shared_ptr's themselfes should have two pointers, one to the control-block and one to the data. Having a concatenated pointer to the control-block and then to the data itself would disable out-of-order-execution, i.e. operations on the data would be preceded by two in-order loads. |
Paavo Helde <myfirstname@osa.pri.ee>: Apr 30 03:54PM +0300 On 30.04.2019 13:58, Juha Nieminen wrote: > (which happens if they are eg. assigned to another std::shared_ptr > instance, or go out of scope, or whatever), without the programmer > having to take care of it. Exactly. The programmer does not need to know or care about internal implementation details like the control block or reference counting. > However, the std::shared_ptr class *itself* is not thread-safe as-is > (and to make it thread-safe you need to use eg. > std::atomic<std::shared_ptr<T>>). Right, shared_ptr does not contain synchronization for accessing itself because it would be both counter-productive (for pointers visible in a single thread only), and impossible to achieve (for shared pointers). E.g. consider a global shared shared_ptr: std::shared_ptr<A> common_ptr = ...; thread 1: common_ptr->foo(); thread 2: common_ptr = std::make_shared<A>(); Even if shared_ptr had internal locking and ensured that the pointer gets replaced atomically and with proper memory barriers in thread 2, this would still not guarantee that the pointed object is not released and destroyed in the middle of foo() in thread 1. To guarantee the proper lifetime, the operator->() should return some kind of proxy object, which would hold the object alive until foo() is completed. However, the standard says it returns a plain pointer, so this cannot be done. In short, shared_ptr with the current interface cannot protect against its own modifications (not to speak about its own destruction which could not be protected against anyway) and so external synchronization is needed for modifications. Note that refcounter sync is much easier and incurs less penalties, for example thread 1 above does not access the refcounter at all. > It's just a bit confusing exactly which operations, and in which situations, > are thread-safe as-is, and which are not. Some things can be done safely, > others need explicit locking (eg. by using std::atomic in C++20). In my mind this is clear, it is safe to call any number of const member functions in parallel, but as soon as there appears a non-const member function call in some thread, all threads must use external sync. Chris seems to agree, he just does not see much point in having a smartpointer which cannot be reassigned or reset. He is probably right. Anyway, all this discussion is a bit academic because shared_ptr mechanism is meant for sharing the pointed object, not sharing the shared_ptr itself. For passing shared_ptr pointers to other threads there are usually better ways than to set up a global shared_ptr somewhere. |
Manfred <noname@add.invalid>: Apr 30 02:19PM +0200 On 4/26/2019 3:49 PM, Öö Tiib wrote: > So it is that combo you think?: > https://en.wikipedia.org/wiki/Dunning%E2%80%93Kruger_effect It would look like that, indeed. It is always curious to see these things formally studied like the world were some lab setup. >> any of it. > Oh fine. Actually it is always sort of satisfying to beat them with > product of orders of magnitude different league instead of arguing. :D Which is also anthropologically amusing - the many faces of happiness. |
Juha Nieminen <nospam@thanks.invalid>: Apr 30 10:46AM > When in 100 lines of code I see 20 times std::string, I get tired of the > unneeded distracting details. For most people one time is enough to > understand what is meant. If you are using, for example, libpng, where every name declared by that library has the prefix of "png_", do you "get tired" of seeing "png_" all the time and go to lengths to get rid of it? Or is it, perhaps, the case that the "png_" prefix in the names actually makes the code easier to read and understand because you are directly seeing where functions and types from that library are being used, in contrast with functions and types that are not from that library? I have never, ever, heard of anybody, not even the most rabid haters of namespace prefixes, complain about seeing or having to write prefixes used in typical C libraries like libpng and other similar ones. They are completely fine with that (and, in fact, often use a similar naming scheme in their own self-written libraries). It's only the C++ namespace prefixes that they detest, and the psychological phenomenon behind this difference is what puzzles me. What is the difference? Why is one ok, but not the other? (I don't think it's a question of "_" vs "::". That alone cannot explain the difference.) > So, at the beginning I use 'using std::string' and it is clear what is meant > with a simpe 'string' in the remainder of the scope. That would be confusing. First it's "std::string", and then it's "string"? It would look like something different. Why do you oppose the idea of seeing at a quick glance where names from the standard library are being used? What exactly is the problem? Why do you deliberately want to make it harder to visually distinguish where such names are being used? > if I see a function "equal()" being called how do I know that it was the > function that was defined 500 lines earlier in the same namespace? If the program uses namespace prefixes consistently, then the lack of "std::" indicates that it's not the standard library function, but something else. It won't confuse you into thinking it's the standard library function that's being called. > Do you advocate to use the namespace prefix even within the same namespace > in the same file? When I use namespace in my own code, I usually use namespace prefixes even when it wouldn't be needed (ie. inside functions within that same namespace). I like to see that the name is from that namespace, even if the code itself is also within the same namespace. It lessens the possibility of confusion, when reading the code. |
You received this digest because you're subscribed to updates for this group. You can change your settings on the group membership page. To unsubscribe from this group and stop receiving emails from it send an email to comp.lang.c+++unsubscribe@googlegroups.com. |