Return Styles: Pseud0ch, Terminal, Valhalla, NES, Geocities, Blue Moon. Entire thread

Anyone trying to learn C++

Name: !TK/UA49EzE 2008-06-01 21:45

I've been trying to learn it also, but studying alone makes me get bored of it easily. Anyone interested in learning C++ in a group? it'll be so CACHE (lol, get it?)!

:(

Name: Anonymous 2008-06-04 0:27

>>60
It can only be implemented that way.
That's not correct. I would bet good money that it's possible to fix this up either in the compiler or at run-time.

Name: Anonymous 2008-06-04 7:48

>>54
We're all EXPERT programmers here who have read SICP. We can learn any language on our own in a couple of days.

If you really want to just start learning C++ on your own. If you have any questions you can always ask on /prog/ and the helpful /prog/community will surely answer all your questions.

Name: Anonymous 2008-06-04 10:40

>>62
Not really. Objective-C's dynamic dispatch allows any method to be called on any object at runtime, just like in any dynamic language. C++'s dynamic dispatch restricts wich methods can be called on a object based on the type of the variable that holds the object. If you were to give Objective-C C++'s brew of dynamic dispatch, you would end up turning Objective-C into C++. And that would suck royally.

Name: Anonymous 2008-06-04 10:50

>>63
I will, along with my job.

Name: Anonymous 2008-06-04 16:00

>>64
Yes, really. It's possible to leave this feature in the language from the programmer's point of view but optimize around it most of the time. For example, in a loop a variable's type may be likely not to change. In that instance you can inline the method, reducing the performance hit to a safety check to confirm that object's type (which may be as simple as inspecting your reference to the actual data -- no need to dereference a pointer and load it into memory). This can be applied in other situations as well, and I'm sure there are other techniques I'm forgetting/which haven't been invented yet.

Name: Anonymous 2008-06-04 16:16

C++ is a bunch of confusing bullshit that nobody needs.

Name: Anonymous 2008-06-04 16:40

>>61
um, can anybody say Amiga from 1985?  They did a ton of OO features in plain C all through the OS and public APIs, and I suspect they weren't the first.

>>67
EXPERT PROGRAMMERS are not confused by C++, even if it is not their first choice of languages. faggot

Name: Anonymous 2008-06-04 17:25

Make a Half-Life 2 mod. Also, get some good book on C++ that you can use as a reference. Hack a lot.

Name: Anonymous 2008-06-04 17:48

>>66
That particular optimization, along with method caching and maybe others I don't know about, is already part of the implementation. Resulting programs are still slower than C++ equivalents (though they are never really equivalent, due to not being as dynamic).

Name: Anonymous 2008-06-04 18:33

>>70
Source? And just how much slower?

Name: Anonymous 2008-06-04 18:42

C++ is fucking messy and outdated.  I think it is a fine language though for a lot of reasons.  At the same time there are some languages anyone would prefer to work in.  I think F# offers a lot of options to any programming project.  The language really takes a backseat to the programmer and allows you to dictate which tool for the job more so than in C++ or some other languages (java/c# etc).

F# is my true love at the moment, although I don't mind sleeping around.

Name: Anonymous 2008-06-04 19:00

>>63
Well, I would like to learn C++, but I'm open to suggestions for any other language. And does "SICP" really help with anything? Or is that just a /prog/ meme?

Name: Anonymous 2008-06-04 19:02

>>73
Both.

Name: Anonymous 2008-06-04 19:03

>>71
http://shootout.alioth.debian.org/debian/benchmark.php?test=all&lang=objc&lang2=java

It's not much but will give you an idea. Notice that in the benchmarks where the Objective-C programs make significant use of method calling (namely binary-trees and spectral-norm) those programs are at least 2 times slower than the corresponding Java programs.

Name: Anonymous 2008-06-04 20:37

I am about to learn C++, and I found the book "Beginning C++ Game Programming" from 2004 to be very helpfull. It teaches you C++ from the scratch, with a cool game-angle on it.
Very well-written and fun to read/learn.

Name: Anonymous 2008-06-04 20:48

>>57
For the things that C and C++ are really the Right Tool For The Jobtm, such as low resource environments (embedded systems, etc) or truly real time applications (of which there are very few, and your program that sorts your music collection is not one of them, but medical equipment requiring real time response is)...  then generally assembly is your only other resource to get that close to the machine and if you think Sepples is a lot of pointless work to get something done you haven't written an entire program in assembly lately.

tldr; well it is!

Name: Anonymous 2008-06-04 20:50

>>77
C++ is not the right tool for those jobs.
C++ is to C as PHP is to Perl.

Name: Anonymous 2008-06-04 21:10

>>78
That made no sense.  You're thinking of Pascal.

Name: Anonymous 2008-06-04 21:21

>>79
It makes sense to me, man.

>>77
Wrong, you should use C everywhere and forget about higher level languages. Assembly breaks portability, don't use it unless you are a huge faggot with a lot of time.

>>76
Just use fucking SDL instead of DirectX. Also, lol at abstraction layers selling themselves as direct hardware access

Name: Anonymous 2008-06-04 21:54

>>79
I meant that C++ is a collection of ugly hacks on top of a subset of C, just like PHP is a collection of ugly hacks on top of a subset of Perl.

Name: Anonymous 2008-06-04 22:31

>>81
But PHP ugly hacks are more oriented towards ``library''. Most perl syntax was removed, and they added that ugly <?php ?>. Damn, php as a template language could be so fucking powerful.

Name: Anonymous 2008-06-05 0:25

>>78
Sepples is never the right tool for the job. Stick with C, or risk having your anus haxed.

Name: Anonymous 2008-06-05 1:35

>>78
Both PHP and Perl suck, what the fuck are you getting at?

Name: Anonymous 2008-06-05 3:05

++++++++++[>+++++++>++++++++++>+++>+<<<<-]>
++.>---.+++++++++++++++++++++++.>++.<<+++++
.>+.>.<<------------.>-----------.+++++++.--.>>.

Name: Anonymous 2008-06-05 3:33

>>84
C++ is an octopus made by nailing four legs onto a dog, just as PHP is an octopus made by castrating 4 horses and attaching their penises onto random parts of a dead dog in an utter bloody mess.

Name: Anonymous 2008-06-05 3:44

>>75
Source on the implementation details? But regardless, my point was that there are a lot of clever things that can speed up dynamic languages enormously, and it's shortsighted to say that the current implementation of any particular language is the best possible.

Name: Anonymous 2008-06-05 4:51

>>86
Castration doesn't remove penises, dude.

Name: Anonymous 2008-06-05 4:53

>>88
It does if you're not careful

Name: Anonymous 2008-06-05 5:34

>>70
Actually it's not.  Apple suggests you do it manually ❝on the rare occasion❞ that you call something more than once.
The only way to circumvent dynamic binding is to get the address of a method and call it directly as if it were a function. This might be appropriate on the rare occasions when a particular method will be performed many times in succession and you want to avoid the overhead of messaging each time the method is performed.1
All that happens automatically is this:
To speed the messaging process, the runtime system caches the selectors and addresses of methods as they are used. There’s a separate cache for each class, and it can contain selectors for inherited methods as well as for methods defined in the class. Before searching the dispatch tables, the messaging routine first checks the cache of the receiving object’s class (on the theory that a method that was used once may likely be used again). If the method selector is in the cache, messaging is only slightly slower than a function call. Once a program has been running long enough to “warm up” its caches, almost all the messages it sends find a cached method. Caches grow dynamically to accommodate new messages as the program runs.2
which surely is nowhere near ❝slightly slower❞, since you now have two function calls along with a table scan.

References:
[1] The Objective-C 2.0 Programming Language: Getting a Method Address, http://developer.apple.com/documentation/Cocoa/Conceptual/ObjectiveC/Articles/chapter_9_section_3.html.  Retrieved on June 5, 2008.
[2] The Objective-C 2.0 Programming Language: The objc_msgSend Function, http://developer.apple.com/documentation/Cocoa/Conceptual/ObjectiveC/Articles/chapter_8_section_2.html.  Retrieved on June 5, 2008.

Name: Anonymous 2008-06-05 5:34

>>88
I think >>86 just castrated the horses for fun, and removed their penises later.

Name: Anonymous 2008-06-05 9:18

>>87
I wasn't saying that, I was saying that vtable-based dynamic dispatch will always be faster than multiple-hashtables-based dynamic dispatch, no matter how you optimize it. Both because the former is inherently faster and because much of the latter's optimizations also apply to the former.

Name: Anonymous 2008-06-05 16:23

>>92
You are assuming that dynamic dispatch must do the worst-case legwork in most situations, which is plainly not the case. While the worst case may be worse, when your run-time has dynamically inlined the most common methods, you're nowhere near worst case, and have reduced the cost of method dispatch in most instances to a type-check. So yes, doing more work is slower, but no, merely having the potential to do it does not slow you down if your run-time is good enough to avoid that work. I stress that there will be more clever tricks to come in the future. And it's folly to ignore both known optimizations and future ones, saying, "It can only be implemented this way".

Name: Anonymous 2008-06-05 17:17

real C++ programmers write their dispatch logic as templete metacode

Name: Anonymous 2008-06-05 18:00

>>93
You are assuming that I assumed what you think I assumed. I meant just what was said in >>92, no more, no less. Also, unknown future optmizations are only relevant to future arguments.

Name: Anonymous 2008-06-05 18:21

>>95
Well, somebody said,
It can only be implemented that way.

This is a statement about all possible optimizations, both current and future. I am refuting it. That is all.

Name: Anonymous 2008-06-05 20:03

>>96
Dude, in that post, "that way" == "not through vtables".

Name: Anonymous 2008-06-05 21:13

>>97
Dude, in that post "clarity: not found". If that's actually what was intended, it's the most backwards locution imaginable. In what world does "that way" refer to "every possible way except for some arbitrary other method that I expect you to psychically know I'm thinking of"? But I don't believe that's what was intended. Someone said "it's a problem with a specific implementation" and the response was "It can only be implemented that way".

Name: Anonymous 2008-06-06 3:13

>>98

>>58: looking up methods by global identifier is slowing than indexing a fixed array
>>59: ONLY CUZ UR COMPILER IS DUMB HURR
>>60: no, that's just how things work
>>62-999: HURRRRRRRRR

so where does the fucking psychic bullshit come in?  are you blind or just retarded?

Name: Anonymous 2008-06-06 5:36

ITT: Sepplers being trolled

Name: Anonymous 2008-06-06 11:01

>>98
No, clarity abandoned the discussion in >>59. It was as vague as it could be. >>60 made the mistake of replying to that shitty post and everything got fucked up since.

Name: Anonymous 2008-06-06 12:33

>>61-102
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABcAAAAKAQMAAABlrFemAAAABlBMVEX///8AAABVwtN+AAAALElEQVR4XjWJQQkAMAzETsKdi+11KuaqIuq0FjoKDYQ8guU5cE9CReh3NHc3ZSgExJemMZgAAAAASUVORK5CYII

Name: Anonymous 2008-06-06 14:08

>>99
I'll be blind, since you're clearly handling "retarded".

>>58 looking up methods by global identifier is slowing than indexing a fixed array
>>59 Then don't do it like that.
>>60 i has to
>>66 No, you don't (insert real-life example here).
>>70 Counterfactual claim about Objective-C implementation.
>>92-999 FUCK, HE CAUGHT ME: BACKPEDAL

Name: Anonymous 2008-06-06 14:30

>>103
HURRRR HURRRRRRRRRRRRRRRR HURRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR

Name: Anonymous 2008-06-06 15:14

>>103
Reading only works if you're not a moron, moron.

Name: Anonymous 2008-06-06 16:27

>>104,105
Same person, and we have been dragged down to his level constantly.

Name: Anonymous 2008-06-06 16:28

>>106
You wish.

Name: Anonymous 2008-06-06 16:31

>>103
Your “real-life example” didn't remove the need for method lookups.  It will always be slower than not having them at all.

A language with dynamic methods has to be implemented with dynamic method resolution, i.e. “that way”.

Name: Anonymous 2008-06-06 18:03

>>108
Are you stupid or do you just not understand type-feedback (I guess those would be the same thing)? Removing the need for method lookups is exactly what it does.

Is that really what you meant to say, or is this a case where you mean one thing yet say something that could not possibly be construed as you will later claim you intended?

Name: Anonymous 2008-06-06 18:23

>>108,109
Same person, and WHBTC.

Name: Anonymous 2008-06-06 19:02

>>109,110
Same person, and WHBCTC.

Name: Anonymous 2008-06-06 19:07

Same person and we have been tolled constantly.

Name: !TK/UA49EzE 2008-06-06 20:41

So, which would you all recommend? C or C++? Please list reasons, if possible.

Name: Anonymous 2008-06-06 20:47

>>113
I will, along with my job.

Name: Anonymous 2008-06-06 21:04

>>114
I lol'd

Name: Anonymous 2008-06-06 23:07

>I will sux cocks - my job.

Fixed >>114 .

Name: Anonymous 2008-06-07 0:41

I advise learning D++

Name: Anonymous 2008-06-07 0:47

Dylon, Dylon, Dylon

Name: Anonymous 2008-06-07 1:28

>>116
You must be new here. Please refrain from posting until you have lurked enough.

Name: Anonymous 2008-06-08 4:13

C++ is only complicated because many of you are too content with baby languages that do your memory management for you, at the cost of worse performance. PROTIP: Garbage Collection is for NIGGERS and the UNEDUCATED. OOP and templates are not hard, and C++ takes care of that quite well. Why don't you actually try learning the language so real programmers don't have to put up with your interpreted language bullshit.

Name: Anonymous 2008-06-08 4:37

>>120
5/10

Name: Anonymous 2008-06-08 11:07

>>120
8/10 but then I also use unmanaged C++ so I'm a bit biased.

Name: Anonymous 2008-06-08 14:37

>>122
so I'm a bit biased.
You must be new here.

Name: !TK/UA49EzE 2008-06-08 14:40

I just decided to start using C. but now I has a question.

I was reading through this tutorial and saw:

#include <stdio.h>

int main()
{
    int a;
    a = 0;
    while (a <= 100)
    {
        printf("%4d degrees F = %4d degrees C\n",
            a, (a - 32) * 5 / 9);
        a = a + 10;
    }
    return 0;
}

The code above is supposed to make a Fahrenheit -> Celsius table (0-100 F). My question is... what does that 4 before the "4" mean? I changed it and compiled it (to %5d) and all it did was make the table go from

   0 degrees F =  -17 degrees C
  10 degrees F =  -12 degrees C
  20 degrees F =   -6 degrees C
  30 degrees F =   -1 degrees C
  40 degrees F =    4 degrees C
  50 degrees F =   10 degrees C
  60 degrees F =   15 degrees C
  70 degrees F =   21 degrees C
  80 degrees F =   26 degrees C
  90 degrees F =   32 degrees C
 100 degrees F =   37 degrees C


to

 0 degrees F =  -17 degrees C
  10 degrees F =  -12 degrees C
  20 degrees F =   -6 degrees C
 30 degrees F =   -1 degrees C
  40 degrees F =    4 degrees C
 50 degrees F =   10 degrees C
  60 degrees F =   15 degrees C
  70 degrees F =   21 degrees C
 80 degrees F =   26 degrees C
  90 degrees F =   32 degrees C
100 degrees F =   37 degrees C

basically, it just made the table messy. Can anyone tell me the real meaning of that?

Name: Anonymous 2008-06-08 15:49

It's the number of characters that you reserve for the field (field width). Also, how could you manage not to find this on google? All you have to do is google "printf" and you have the whole damn command reference... lr2google, it's very important because whatever you code there's always going to be a function/api/library reference that you need to look up.

Name: Anonymous 2008-06-08 15:50

The %4d sets the "field width" to 4, meaning 0, 10, ..., 100 get printed using four characters, so they come out as ___0, __10, ..., _100.

See
http://www.space.unibe.ch/comp_doc/c_manual/C/FUNCTIONS/format.html

HIBT?

Name: Anonymous 2008-06-08 15:50

>>125
Oh... well. Never mind.

Name: !TK/UA49EzE 2008-06-08 15:54

>>125
>>126

Thanks, both of ya'. I'll try googling next time.

Name: Anonymous 2008-06-08 16:04

>>128
No problem, I may sound harsh but that's because we're on 4chin.

Name: Anonymous 2008-06-08 18:21

>>122
I also use unmanaged C++
Why.

Name: Anonymous 2008-06-08 19:27

>>130
Realtime app driving a fairly powerful laser. Garbage collection could interrupt the program at unpredictable times, which would be a nasty thing when the laser is scanning live tissue.

Name: Anonymous 2008-06-08 19:27

>>130
OMGOPTIMIZATION

Name: Anonymous 2008-06-08 21:11

>>131
Use REAL-TIME GARBAGE COLLECTION

Name: Anonymous 2008-06-08 22:01

>>133
Oh wow. Java Enterprise Solutions, once again the clear winner in the language wars!

Name: Anonymous 2008-06-09 0:44

>>131
>Realtime app
Are you using the TRON OS?

Name: Anonymous 2008-06-09 2:26

I can't think of anything C++ does well.

By default variables that store objects point to the value of the object when it should be referencing it.

Templates are just half ass macros.

And there is nothing wrong with Garbage Collection when done right. A Decent garbage collector works automatically be default, but allows full control if you need it. The .Net CG works this way.

Name: Anonymous 2008-06-09 2:38

Templates are just half ass macros.
2/10

Name: Anonymous 2008-06-09 2:42

For retards like you (by "you" I mean the overwhelming majority of this thread) the language is only as powerful as GUI toolkits and database intefaces that allow you (see above the definition of "you") to make trivial programs that no one cares about.

So take your C++ with Qt, and shut the fuck up.

For OP: lean C first. Then C++.

Name: Anonymous 2008-06-09 18:09

C++ is a rudimentary form of C.

Name: Anonymous 2008-06-09 18:11

C++ is a rudimentary form of Asm

Name: Anonymous 2008-06-09 18:13

Asm is a rudimentary form of ASM

Name: Anonymous 2008-06-09 18:22

ASM is a rudimentary form of physical manipulation of logic gates

Name: Anonymous 2008-06-09 18:37

>>138
Yeah, get yo' seppler lean on, nigga.

Name: !TK/UA49EzE 2008-06-09 18:38

Name: Anonymous 2008-06-09 18:42

gtfo tripfag

Name: Anonymous 2008-06-11 22:01

>>145
gtfo sagefag

Name: Paul Brahman 2008-06-11 23:57

>>146
gtfo anonyfag

Name: Anonymous 2009-01-08 8:24

>>148

Exactly. You should use x86 assembly instead. FrozenVoid! will help you to achieve your goal.

Name: FrozenSperm !FrOzENLOAU 2009-01-08 11:44

>>149
Actually, the CPU rewrites C++ code as x86 assembly, so it isn't that bad. However it is a waste of processor power to write in a higher level langauge if it's only going to be converted to x86.

This is why languages like Javascript are so nice - they don't go through that translation layer, so they can be more efficient.

Name: FrozenSperm !FrOzENLOAU 2009-01-08 11:49

>>151
No it isn't, the CPU has to do that. Unless you're compiling it by hand on paper - in which case, why would you write in C++?

Name: Anonymous 2009-01-08 12:03

Mr. Babbage is not pleased with all this tomfoolery.

Name: Anonymous 2009-01-08 12:13

>>155
"On two occasions I have been asked, – "Pray, Mr. Babbage, if you put into the machine wrong figures, will the right answers come out?" In one case a member of the Upper, and in the other a member of the Lower House put this question. I am not able rightly to apprehend the kind of confusion of ideas that could provoke such a question.[35]"
http://en.wikipedia.org/wiki/Charles_Babbage

Name: Anonymous 2009-01-08 12:20

>>157
It's not automated, you have to write the checks yourself.

Name: Anonymous 2009-01-08 12:43

>>159
"Automation plays an increasingly important role in the global economy and in daily experience. Engineers strive to combine automated devices with mathematical and organizational tools to create complex systems for a rapidly expanding range of applications and human activities."
ttp://en.wikipedia.org/wiki/Automated

Name: FrozenVoid!FrOzEn2BUo 2009-01-08 14:30

Trollogated, Fripple frump brappapaa buckmap flumpblack. snipper sneepsnoker wikkabumffa fappakka frun quanttbaccker.

Newer Posts
Don't change these.
Name: Email:
Entire Thread Thread List