I have been studying C++, but am still a novice. While loading up free to use source code to experiment with on my Arduino, I keep getting an error in one expression.
It is giving me the error "Too many arguments to function". When I comment this particular function out, the code complies correctly, so I know it must be a problem with this function.
Does anyone have any advice? I have been trying to find information on the internet but I am afraid my understanding of functions is still rather simplistic.
Arduino C++ does not fully support all C++ things, FYI. It has some macros specific to the hardware and lacks support for a number of standard c++ things.
This is unrelated to your problem, but it does mean that you will need to study the documentation for your hardware. Ive used the platform but it was many years ago. Because of this you can't really move the code to another compiler to syntax check it.
Arduino C++ does not fully support all C++ things, FYI. It has some macros specific to the hardware and lacks support for a number of standard c++ things. [...] Because of this you can't really move the code to another compiler to syntax check it.
Atmel provides a port of GCC and a header-only library (avr.h et al.) which define the macros you're referring to. There is no C++ standard library, obviously, because the target hardware is freestanding.
Besides the standard library, almost all of the core language features will be available.
You can see the compiler command line by changing some option in the Arduino GUI. The Arduino IDE's front-end does some cursory processing on your source code to make it a valid C++ program and then invokes avr-g++, which is perfectly capable of giving you sufficient information. You may have to invoke the compiler manually, though, if the output is still filtered -- I expect that turning on the "verbose" setting will disable that as well.
The only obstacle to doing things manually is that the Arduino IDE slightly transforms it's input so that a valid Arduino program is not necessarily valid C++: the changes are minor, though.