gcampton:
...wondering if old C++ will still work
The compiler for your "sketch" will be a flavor of GNU g++ that has been built as a cross-compiler named avr-g++
However---and this is important---
Not all of the standard C++ libraries are available.
The Arduino development team has put together an Integrated Development Environment that "protects" beginners from having to learn a lot of boring details about the need for function prototypes and lots of other stuff, and that doesn't necessarily help experienced programmers like yourself. You don't have to include standard library headers (there is no C++ header , for example, and even though there is a C library header <stdlib.h> header you don't have to include it---Arduino does it for you.)
There are a lot of Arduino-supplied library functions that make it easy to get started without having to look at ATmega data sheets to see what bit of what register you have to manipulate to cause pin 19 of your ATmega328p to go high or low. That's what Arduino is all about: Making it easy to get started doing interesting things with simple hardware.
Now, you can use the standard C library function srand(), but there is no standard C library time() function, since the basic Ardino boards don't have a standard way of maintaining a system time consisting of an integer whose value is the number of seconds since midnight on Jan 1, 1970 UTC.
If you build an Arduino-compatible system with a real-time clock chip (or attach a "shield" with an RTC chip), you can use it as a reference for system time, but you will have to use one of the libraries available for your specific RTC chip (DS1307, for example) and you will have to learn the specific API for that. Of course you can write your own class in C++ to allow you to access the chip. There is a "Time" library that a lot of Arduinoites use to create a more-or-less equivalent system time using the RTC as a reference. Again, you can either learn the API for this library or write your own class in C++ to do the deed.
Also, with the Arduino system of libraries there are no stdin or stdout streams. Elementary input/output can be performed with the arduino HardwareSerial class. If your setup function has something like "Serial.begin(9600);" an object of that class, named Serial is linked into your program and serial communications can take place at 9600 bits/second between the Arduino and your workstation over the same USB/Serial converter that is used to upload programs to the Arduino.
The Serial object has functions defined to print out decimal or hexadecimal integer values or characters or other things that you can learn about if you are interested.
Bottom line: You don't have to learn another half-assed language if you don't want to. If the limitations and quirks of the Arduino Integrated Development Environment irritate you (and they irritate me sometimes), you can write programs in standard C and/or C++ and compile them and upload them to an Arduino board if you want to. You will have to learn some limitations. For example: None of the Standard Template Library classes is available. Things like the new and delete operators are not available. Stuff like that.
The ATmega chips that are the hardware basis of the Arduino system have very limited resources (not very much RAM, for example), and even though the avr-gcc compilers and avr-libc library and the Arduino development environment make it possible to program these devices in C++, there are limitations that embedded systems developers must learn to live with.
Regards,
Dave