« first day (917 days earlier)      last day (4020 days later) » 

user61389
5:00 PM
@abdullahkahraman bye!
 
1
Q: C++ Standard Library on Arduino

Michael DorstWhy can't I use std::string or any other objects from the C++ Standard Library in my sketches for Arduino? #include <string> doesn't throw an error, so it clearly has no trouble finding the libraries, but actually using anything from it does. If I write std::string str; I get 'string' is not ...

 
@angelatlarge I guess I'm just a C++ hater, but to me it's a really bad match for small projects, even more so if you are not taking advantage of the libraries to make a big project into a small project.
 
0
Q: Operator new for Arduino

Michael DorstI've been told (specifically in an answer to C++ Standard Library on Arduino, and in Stack Overflow question C++ string and Arduino String. How to combine them?)) that the Arduino compiler does not implement the new operator. However, I've written a program for the Arduino (in the Arduino IDE) wh...

 
user61389
@angelatlarge I had a vague presumption :)
 
@angelatlarge Closed as off topic
 
5:01 PM
@ThePhoton That doesn't mean it doesn't contain information :)
@ThePhoton I mean that's what I do, I compile most of my code as C++ (on AVR), but I never use the C++ Standard Library.
@ThePhoton And often times I do write objects/classes. So that's what C++ is for. Also for default argument values (=optional arguments). Those are nice.
@ThePhoton Actually, I have a better example: Arduino!
@ThePhoton Love it or hate it, it is useful. And it is C++ (i.e. object-oriented) but no standard libraries.
@ThePhoton They wrote their own string class to be more uC-friendly, instead of using the C++ standard <string>.
@ThePhoton I rest my case.
 
@angelatlarge But why not just do it in C? It only takes a small amount more discipline to write object oriented in C, and you avoid all the pain of C++.
 
@angelatlarge What do you think about the speed and size of the output assembly code written in C++ ?
 
@abdullahkahraman I would think it depends on the language features you are using.
@ThePhoton What is this "pain" you speak of?
 
@abdullahkahraman If you avoid exception handling and templates it should be no worse than C.
@angelatlarge 8 million bugs that don't exist in other languages.
 
@ThePhoton Wow, I didn't know that
 
5:05 PM
@ThePhoton When you say "object oriented code in C" do you mean passing struct arguments to global functions?
 
@ThePhoton Do you have an example or two? I am not sure which bugs you have in mind.
 
I am now more glad that I did not start C++ for GUI under linux and preferred Python over it..
 
An entire book that exists almost entirely to teach you how to avoid the pitfalls of C++
 
@ThePhoton Mmm... I bet I can find a book like that on every language sufficiently complex to be useful.
 
5:07 PM
And a sequel, because one bo0ok wasn't enough.
Have you read Meyers?
 
@ThePhoton No. I don't read :)
 
It really is about all the boilerplate you need to avoid possible C++ bugs. 55 examples in the first book and 35 in the second book.
@angelatlarge Maybe for Java.
 
Anyone want to adopt a kitten near Bangalore(RT Nagar or something) ? DM me if you do.
 
@ThePhoton I don't understand the type of argumentation you are pursuing: clearly existence of books on a subject does not (necessarily) argue in favor that the language is bug-prone, right?
@ThePhoton And you mean bug-prone, right, that's what we are talking about, right?
 
@angelatlarge My argument is that the book exists to show you how to work around the potential bugs. I've never seen that for another language.
That tells me that even people who are such advocates for the language that they write books about it recognize how bug-prone it is.
 
5:09 PM
@ThePhoton So this theory would be falsified if we can find another book on another language that shows people how to avoid potential bugs?
@AmithKK Hello, I think? What's the significance of the links?
 
@angelatlarge Depends. Did the other book sell? Meyers' was a huge seller.
 
@angelatlarge Hey :)
Just trying to spread the word :)
 
@ThePhoton I don't know, I haven't searched. Yet. Just seems like an odd argument to me. I think any language popular enough and complex enough will have a book like this.
 
There are a good amount of bangaloreans here I guess.
 
@angelatlarge Everyone doing C++ in the 1995-2005 timeframe had to own Meyers. If there is a similar book of similar importance in the community for another language, I'd accept that that language is similarly bug-prone to C++.
@angelatlarge Common Lisp? Doesn't need a book like that. Python? Doesn't need a book like that. Perl? Okay, maybe.
 
5:14 PM
@ThePhoton Maybe I need to read Meyers and then I'll similarly think that C++ is bug-prone :)
@AmithKK There are three people chatting, none of them are from Bangalore.
 
@angelatlarge If you are not using heap storage, you are avoiding a lot of the issues. But programming without heap storage is a very small fraction of the C++ programs out there.
 
@ThePhoton Well, that's probably why AVR Libc doesn't have new and delete.
 
user61389
Other question: I'm using strlen on a volatile unsigned char x[], and get a warning "illegal conversion between pointer types; pointer to volatile unsigned char -> pointer to const unsigned char". I can't set x[] to const, because the string has to be changed on-the-fly. Should I just ignore the warning, or is there an other way to do this?
 
@CamilStaps Can you paste the declaration and the code line where you get the warning please?
 
@CamilStaps volatile char[] sounds like a recipe for disaster.
 
user61389
5:16 PM
@angelatlarge y = strlen(x);
 
@ThePhoton Are you sure?
 
user61389
@ThePhoton why?
 
@angelatlarge point
 
First is it an array of volatile char, or an array that might be at a different location each time you access it?
@CamilStaps Because there aren't very many atomic operations you can do on an array.
 
@ThePhoton No. It's an array of volatile char, isn't it?
 
5:18 PM
And non-atomic operations on a volatile could end up accessing inconsistent data...
But obviously in embedded you may know more about why something is volatile than you're able to tell the compiler.
 
user61389
@ThePhoton wait - I thought volatile was to tell the compiler not to optimize too much because the variable could get changed from elsewhere in the program?
 
@CamilStaps Exactly, it usually means not to cache the data in a register because the value in memory might be changed by another process (like an interrupt routine or a hardware operation)...If you're doing strcmp and one of the arrays gets changed while you're in the middle of looping through it, what do you want the result to be?
 
@ThePhoton Ouch!
 
user61389
@ThePhoton the values don't really change while within a command, but they do change, so I thought better add volatile. I don't use interrupt handlers though, should I just remove it?
 
user61389
Or you probably can't see without my code. Would it be a problem to leave it there? What could go wrong, assuming it's an array of volatile chars and not a different location?
 
5:22 PM
@CamilStaps I think we need to see more of your code to give more advice.
 
@ThePhoton True 'dat
@CamilStaps Or you could post it on Stack Overflow and lose some more rep :)
 
@CamilStaps Mainly what I said --- if it's truly volatile it means that the values could change during the execution of your function. If that's not possible, you could remove the volatile.
 
@ThePhoton Yeah, but he doesn't want the compiler to cache some value in that data either.
 
user61389
You really don't want to see it - I'll just remove the volatile, but I think I'd still get a warning because it isn't a const yet, let's try
 
user61389
@angelatlarge hush
 
5:24 PM
@CamilStaps OK. Going back to work for a while.
 
@CamilStaps I'm a little unclear why strlen() expects a const argument...Something hokey is going on...
 
user61389
@angelatlarge no offence, was about your Stack Overflow message
 
user61389
@ThePhoton well it doesn't give me a warning :)
 
user61389
In the reference it says strlen(const char *s), and that's what the warning message says as well, but for some reason it accepts a non-const as well. Thanks!
 
I guess const here just means the function promises not to try to modify the string. So it's okay if you pass a non-const input...
Here's one place where C++ beats C. C++ distinguishes between const char * and char const *.
 
5:31 PM
Hi People.
 
Ahoy, @Dean
 
@ThePhoton How are things?
 
10 am. Should be working.
 
@ThePhoton HAHA its 6pm here and i should be doing my assignment :'(
 
user61389
@Dean morning!
 
5:35 PM
@CamilStaps Hows it going?
 
user61389
@Dean bad, you?
 
@CamilStaps Why bad?
Stressful and busy :/
 
user61389
@Dean ah, study? I'm trying to build my MPLAB project, but it keeps giving errors I don't understand :)
 
@CamilStaps Oh fun. I actively avoid MPLAB and just compile from the command line.
 
user61389
@Dean for me it's more a programming skill problem, but yes, MPLAB isn't really fun either
 
user61389
5:41 PM
I don't get what the static keyword precisely does. According to wiki it changes the lifetime of the variable. But variables that have been declared in a header (i.e. not in a local scope) will have an unlimited lifetime anyway, won't they?
 
why are you declaring variables in the header?
 
user61389
@Dean why not?
 
11
Q: Variable declaration in a header file

Leif EricsonIn case I have a variable that may be used in several sources - is it a good practice to declare it in a header? or is it better to declare it in a .c file and use extern in other files?

 
user61389
@Dean but why should it be done that way?
 
I don't acutally know.
 
5:49 PM
@CamilStaps None taken.
@CamilStaps What's the question?
 
user61389
@angelatlarge I don't get what the static keyword precisely does. According to wiki it changes the lifetime of the variable. But variables that have been declared in a header (i.e. not in a local scope) will have an unlimited lifetime anyway, won't they?
 
@CamilStaps It depends on how it is declared.
 
user61389
@angelatlarge could you elaborate?
 
@CamilStaps Let's start here: what do you want to do?
 
user61389
@angelatlarge That, I have forgotten days ago.
 
5:52 PM
@CamilStaps That might be part of the problem.
 
user61389
Basically, I want a constant string
 
1
Q: global variable in C are static or not?

MishthiGlobal variables in C are by default static or extern?? If global variables are by default static then it means that we would be able to access them in a single file... But we can use global variables in different files as well.. So does this means that they have extern storage class by default.....

@CamilStaps Ah, you want a string that never changes?
 
user61389
@angelatlarge never! And it should be there after a million years as well.
 
Like how to say "Herring" in Dutch?
 
user61389
@angelatlarge :)
 
5:55 PM
@CamilStaps Well, what I would do in that case, is declare it as extern in your header file, and then define it in your .c file as static const.
 
user61389
@angelatlarge okay, let's try
 
(or .cpp file)
 
user61389
Why wouldn't you just declare it as static const in your header?
 
@CamilStaps You want it extern in your header.
 
user61389
@angelatlarge why? :)
 
5:56 PM
@CamilStaps extern means "don't allocate storage for this variable, it will be allocated somewhere else".
 
@CamilStaps To tell every place that will #include your header something like this: "I have this variable foo, and it will be defined somewhere, the linker will tell you where it is, but now that you know about it you can use it."
 
If you don't have extern, each file that #include's your header will allocate storage for the variable, so it won't be global, it will be different for code running from each file (or else a linker error, I don't remember which).
 
user61389
Ahh okay :)
 
@CamilStaps This is a kind of encapsulation: Basically, the clients of your library (the .c + .h) need to know what it exposes, and enough about it to use it, but not absolutely everything.
@ThePhoton Of course with guards that will not actually happen, but the point is correct anyway :)
 
user61389
I got in my header extern unsigned char x[];, and in my source const unsigned char x[] = "the_value";, is that correct? I get an error in the source: "conflicting declarations"
 
5:59 PM
@CamilStaps I think you need const in the header too actually.
@CamilStaps Sorry
 
user61389
@angelatlarge no problem at all! The error is gone!
 
user61389
Now should I add static as well?
 
@angelatlarge You mean #ifdef? I don't think that helps. You still would have the variable declared anew and allocated in each file that #includes it. Guards (as I understand them) just protect you from #include'ing the same file multiple times.
 
@CamilStaps How is the error gone?
 
user61389
@angelatlarge by adding const in the header
 
6:01 PM
@CamilStaps Ah, right. Of course
@CamilStaps I don't think you technically need static, but I have to admit, I am somewhat ignorant on static global variables. I know what static means in context of data members.
@ThePhoton Yeah, maybe you are right.
@ThePhoton I sit corrected
 
user61389
What is the maximum reserved words you can add to a variable? I count 5 with extern static const unsigned char, would more be possible? :)
 
@angelatlarge I think the key is that extern is the default.
 
user61389
@angelatlarge I'll just omit it
 
So you don't normally need to explicitly say extern in the .h file
When you declared a const string in a .c file, and gave it a value, you allocated storage for it, so you're all good.
 
user61389
But hang on, #defines should go in the header, right?
 
user61389
6:04 PM
@ThePhoton okay, thanks a lot!
 
Anybody here use R?
 
@ThePhoton I just recently down loaded it to see if it might be useful. So no, but interested.
 
@ThePhoton Ha-ha. Not me.
@CamilStaps Yes, usually.
 
It's very helpful for certain things, but the syntax is nightmarish and all the different functions have very inconsistent usage.
 
user61389
@angelatlarge okay, then I don't have to change that
 
6:08 PM
Shows signs of "organic" development.
 
@ThePhoton I'm looking at various tools, revisiting how I do some things. Typically I use Matlab but if you're doing more esoteric stats functions (that I don't have the time to study extensively) it makes sense to use a canned solution.
 
@rawbrawb If you like boxplots, it's very handy --- not sure of what other math packages (not stats specialized) include boxplots as a built-in.
 
@AnindoGhosh Those are brilliant for even steps (on a log scale)
good morning @all
 
@ThePhoton I've also been looking at using python and scipy perhaps as a replacement for matlab. And as we discussed before, LaTeX but I've given up on that.
@jippie morning
@ThePhoton here's a question that is up your alley of high F interconnects.
1
Q: Making my own PCB connectors, but having trouble with high frequency signals

JulesI'm making my own PCB connectors using the "multicomp" range of crimp connectors available from farnell (ex. http://uk.farnell.com/multicomp/2226a-04/crimp-housing-1-row-4-way/dp/1593508 with terminals at http://uk.farnell.com/jsp/search/productdetail.jsp?SKU=1593529&MER=baynote-1593529-pr), but ...

 
user61389
We are about to do the final cutover of the #stackexchange database networks. We are hoping for no interruptions in service.
 
user61389
6:21 PM
What does that mean?
 
@jippie Can you help me really quick Arduino ISP question
 
@CamilStaps that they are coming for YOU! and you can't hide.
 
@CamilStaps It means that maybe the website stays up.
@coding_corgi depends on the question
 
user61389
@rawbrawb the dotted border ones are sent to Siberia today??
 
@jippie I not sure if it is fast or quick, here is the error:
avrdude: stk500_paged_write(): (a) protocol error, expect=0x14, resp=0x11
avrdude: stk500_cmd(): programmer is out of sync
 
6:25 PM
@coding_corgi post a picture of your setup
 
I think I have done everything right for wiring, here is the command that I ran:
sudo avrdude -p t85 -c arduino -P /dev/ttyACM0 -b 19200 -U flash:w:src.hex
@jippie Ok...
@jippie Gimme a sec...
Ok!
- Arduino
And here is the bread - board
- Just to confirm, I DO have resistors on the pins: SCK, MISO, MOSI, and RESET
Is that okay?
 
6:44 PM
@CamilStaps Hey! I have friends from Siberia. And they look very nice in their dotted borders!
 
@jipie so that's my setup, anything wrong?
 
@coding_corgi You setup seems to be lacking in patience :)
 
@angelatlarge Yes, because I have been trying to make that stupid LED blink!!!
for a long time now...
 
@coding_corgi find the line Serial.begin(19200); in the sketch, change it to read Serial.begin(9600);. Upload the sketch to Arduino. Change the baudrate on the avrdude commandline accordingly. See what happens.
 
@jippie ok...
 
user61389
6:58 PM
@angelatlarge haha!
 
@jippie No difference:(
@jippie Any other suggestions?
 
hi people
 
@pourjour Hi!
 
I need help in some basic things
 
@pourjour Sure, what?
 
7:02 PM
how can I inverse the sense of rotation of a three phase asynchronous motor?
 
@pourjour @AnindoGhosh would probably answer that and have some fun
@pourjour Maybe you should ask at electronics.stackexchange.com/questions/ask, not many people come by at chat
 
ok
 
@pourjour change two of its phases
 
but I don't like to put in main because it seems silly question
 
user61389
@pourjour there's nothing wrong with newbie questions if you provide enough information and show research effort
 
7:05 PM
@jippie btw a three phase motor has the three phase and one neutral
 
@coding_corgi I'm lost. Does it fail every time? or just every so often?
 
@CamilStaps hmm
 
@jippie it fails EVERY time...
 
@pourjour leave neutral where it is.
 
@jippie ok
 
7:07 PM
@pourjour make sure there is no power on the wires when you start working on them
 
@pourjour what is a three-phase-motor? a motor with a transmission? Three gears?
 
@jippie yeah, but I'm just doing theoretic stuff
 
@coding_corgi what is the latest error message you get and what avrdude command do you execute?
@pourjour as in homework ;o)
 
@jippie no revising the lesson
 
@jippie I'll give you the full messsage:
 
7:09 PM
@pourjour you'll make the field directionturn around by changing two phases. That's what you want
 
I need some exercises on how to command asynchronous three-phase motor
@jippie yep
 
sudo avrdude -p t85 -c arduino -P /dev/ttyACM0 -b 9600 -U flash:w:src.hex

avrdude: please define PAGEL and BS2 signals in the configuration file for part ATtiny85
avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.04s

avrdude: Device signature = 0x1e930b
avrdude: NOTE: FLASH memory has been specified, an erase cycle will be performed
To disable this feature, specify the -D option.
avrdude: erasing chip
avrdude: please define PAGEL and BS2 signals in the configuration file for part ATtiny85
-that's what happends
@pourjour what is a three-phase-motor? a motor with a transmission? Three gears?
 
@coding_corgi that's interesting. You are actually talking to the programmer; the programmer is talking to the device, the device succesfully sends its ID back. You should update your question with this full output.
 
@coding_corgi I don't know :(
 
@coding_corgi you are on linux, right ?
 
7:12 PM
@pourjour I tried google,
@jippie you
 
@coding_corgi this out of the lesson I need just some basic problems
I googled but in vain
 
@coding_corgi run this sudo apt-get install devscripts
 
asynchronous = Adjective
Of or requiring a form of computer control timing protocol in which a specific operation begins upon receipt of an indication (signal)...
Not going at the same rate or exactly together with something else.
@jippie let me try that
 
@coding_corgi then run annotate-output %T.%N sudo avrdude -p attiny85 -c arduino -P /dev/ttyACM0 -b 9600 -U flash:w:src.hex
 
@pourjour try googling three phase motor and look at the images
@jippie ok!
 
7:14 PM
@coding_corgi it should timestamp every line of output
 
@jippie ok
 
@coding_corgi yeah I already get the lesson and I need to test my knowledge
 
@pourjour what was your question again?
 
@coding_corgi not a question but a request: about exercises of commanding three-phase motor
 
@jippie Here is the output
15:18:35 I: Started %T.%N sudo avrdude -p attiny85 -c arduino -P /dev/ttyACM0 -b 9600 -U flash:w:src.hex
/usr/bin/annotate-output: line 79: fg: no job control
 
7:21 PM
ok bye
thanks for your time
 
nah
 
@pourjour anytime! seeya!
 
sorry
typo
 
@jippie to who?
 
@coding_corgi annotate-output +%T.%N sudo avrdude -p attiny85 -c arduino -P /dev/ttyACM0 -b 9600 -U flash:w:src.hex
 
7:23 PM
@ThePhoton This looks relevant: electronics.stackexchange.com/questions/3027/…
@jippie You guys are still on that thing? Wow.
 
Here is the output:
15:24:29.502445729 E:
15:24:29.623628385 E: avrdude: please define PAGEL and BS2 signals in the configuration file for part ATtiny85
15:24:29.761744829 E: avrdude: AVR device initialized and ready to accept instructions
15:24:29.766251405 E:
15:24:29.812810614 E: Reading | ################################################## | 100% 0.05s
15:24:29.821187588 E:
15:24:29.825324777 E: avrdude: Device signature = 0x1e930b
15:24:30.171341329 E: avrdude: NOTE: FLASH memory has been specified, an erase cycle will be performed
 
@jippie Maybe this will help: tightvnc.com
 
@angelatlarge Like I said, I am probably just a C++-hater.
 
@coding_corgi post that in your question and make a mark that you added timestamps with the annotate-output command
 
@jippie why do i need the time stamps?
 
7:28 PM
@angelatlarge The appropriate niche for C++ programs is large systems, with high performance required, programmed by other people than me.
 
... and just visiting again.
@angelatlarge Arduino uses Wiring as the language. That's only a bowdlerization of C cross-bred with C++, it is not exactly either language.
 
@AnindoGhosh Ooh hoo hoo! No wonder Arduino is open source, I was wondering why I don't here about development for Arduino!
 
@coding_corgi You don't? I hear about development for Arduino all the time :-)
 
@AnindoGhosh Really?! Could you give me a link for some news about it?
 
@coding_corgi About what precisely? On Arduino.cc you can go and find out about contributing to the Arduino codebase and libraries.
 
7:41 PM
@AnindoGhosh I'd like to add some recommendations to the Arduino libraries!
@AnindoGhosh Okay, thanks!
 
@coding_corgi it gives a sense of delay, how long an operation takes
 
@coding_corgi Go for it. Given M.Banzi's recent attitudes, I'm not sure much will happen. He's more interested in creating misery for anyone talking about Arduino compatibility, than about accepting and working with user inputs or feedback.
 
@jippie ok...
@AnindoGhosh Who is M.Banzi?
@AnindoGhosh Owner of Arduino?
 
@coding_corgi The owner of the Arduino company
 
@AnindoGhosh Shame on me for not knowing that!
 
7:43 PM
@coding_corgi And in recent times, a rather insecure, petty and petulant child.
 
@AnindoGhosh Why do you say that?
 
@coding_corgi Go out there and search, there's been a huge amount of criticism about Banzi's new attitudes. He's been messing with anyone who claims "Arduino compatible", regardless of the merit of the claim, more or less.
 
@rawbrawb Did you get Anindo Ghosh his new keyboard yet?
@AnindoGhosh How did you break it with your fist? ...
 
@coding_corgi I'm sure he will if he ever comes to India ;-)
@coding_corgi It isn't broken, just aged like some of us here.
 
@coding_corgi update your question, so other have a look too.
 
7:48 PM
@AnindoGhosh I think he will stay a little fara-ways from Mumbai, unless you track him down..
@jippie O, thanks for the head's up!
 
@coding_corgi someone obviously doesn't understand geography and shipment delays.
@AnindoGhosh not IF.
 
@rawbrawb There wouldn't be that 'delay' if you gave the delivery guy a REALLY big tip..
 
although it may sound highly unlikely, there actually are other people that know a bit more than I do
 
@jippie Yeah, I though you were the god of AVR for a second...
 
@AnindoGhosh I've seen that claim before, but I don't think it is actually accurate. I think of "language" as the keywords, statements, etc. that compiler accepts. Since Arduino uses avr-gcc, I think it is actually C++ language. Arduino libraries are indeed based on wiring libraries, and C++ Standard Library is not included. But to me Arduino language is C++.
 
7:51 PM
@coding_corgi well, logic seems to evade you as well. If I gave the DELIVERY guy a tip, why wouldn't I just deliver in person?
 
@rawbrawb Because you would rather stay home all day and not waste your time delivering a $5 keyboard... :)
 
@coding_corgi He comes close.
 
@AnindoGhosh He seems too...
 
@rawbrawb Some of us are filled with the enthusiasm of youth :-)
 
@AnindoGhosh I'm not going to touch that ONE.
 
7:54 PM
@rawbrawb @CamilStaps You guys accept spelling-only edits?
 
@angelatlarge That's your twist on semantics, but not one I subscribe to. To each their own.
 
user61389
@angelatlarge for a title, yes
 
@AnindoGhosh So to you language includes libraries?
 
@coding_corgi Trust me, with my usage patterns, a $5 keyboard would last less time than it takes to deliver it.
 
@AnindoGhosh True dat.
 
7:55 PM
@rawbrawb Go wash your mind out with soap this instant!
 
How 'bout a $10 keyboard
@AnindoGhosh Not strong enough... ... acid? no...
 
@angelatlarge To me a language has at least 3 parts: The "Standard Functions" as in canonically specified in the language definition, the lexicon as in the parser rule-set, and the behavior, e.g. templates, streams
 
@jippie thanks for the upvote!
 
@coding_corgi Let's just say my only keyboard + mouse set that lasted any time at all was the Logitech MX5500 desktop set. I've tried everything from the Razer Mamba mouse to every big brand keyboard, and no dice.
 
@coding_corgi long shot, can you upload the .hex file somewhere? I'm curious if I can decode it correctly
 
7:58 PM
@jippie Sure, where?
 
@AnindoGhosh The problem is when talking about Arduino is that STL/Standard C++ Library has kind of existed alongside the language for years, without being an accepted standard. I think the fact that there is an additional library (i.e. Wiring) doesn't make Arduino not C++, even on your own view of "languge" precisely because STL/Standard C+ Lib has been the bastard stepchild of C++ for years.
 

« first day (917 days earlier)      last day (4020 days later) »