Standard C++ for Arduino (port of uClibc++)
C++ Other C Other
Switch branches/tags
Nothing to show
Clone or download
Latest commit af18241 Sep 22, 2013
Permalink
Failed to load latest commit information.
examples more Jun 24, 2012
.gitignore import Dec 25, 2011
Jamfile import Dec 25, 2011
Makefile import Dec 25, 2011
README.md more readme fixes Dec 25, 2011
StandardCplusplus.h Enable automatic declaration of cout/cerr. Application must still def… Jan 17, 2012
algorithm Fix std::find() to use operator==, as gcc stdlibc++ does. Feb 12, 2012
algorithm.cpp import Dec 25, 2011
associative_base Fix up 4.7 warnings Sep 22, 2013
associative_base.cpp import Dec 25, 2011
basic_definitions import Dec 25, 2011
bitset import Dec 25, 2011
bitset.cpp import Dec 25, 2011
cassert import Dec 25, 2011
cctype import Dec 25, 2011
cerrno import Dec 25, 2011
cfloat import Dec 25, 2011
char_traits import Dec 25, 2011
char_traits.cpp import Dec 25, 2011
climits import Dec 25, 2011
clocale import Dec 25, 2011
cmath import Dec 25, 2011
complex import Dec 25, 2011
complex.cpp import Dec 25, 2011
csetjmp import Dec 25, 2011
csignal import Dec 25, 2011
cstdarg import Dec 25, 2011
cstddef import Dec 25, 2011
cstdio import Dec 25, 2011
cstdlib import Dec 25, 2011
cstring import Dec 25, 2011
ctime import Dec 25, 2011
cwchar import Dec 25, 2011
cwctype import Dec 25, 2011
del_op.cpp import Dec 25, 2011
del_opnt.cpp import Dec 25, 2011
del_opv.cpp extended new/delete operators now defined by Arduino Sep 22, 2013
del_opvnt.cpp import Dec 25, 2011
deque import Dec 25, 2011
deque.cpp import Dec 25, 2011
eh_alloc.cpp import Dec 25, 2011
eh_globals.cpp import Dec 25, 2011
exception import Dec 25, 2011
exception.cpp import Dec 25, 2011
fstream import Dec 25, 2011
fstream.cpp import Dec 25, 2011
func_exception import Dec 25, 2011
func_exception.cpp import Dec 25, 2011
functional import Dec 25, 2011
initializer_list Added initializer_list and construct vector from one May 8, 2012
iomanip import Dec 25, 2011
iomanip.cpp import Dec 25, 2011
ios import Dec 25, 2011
ios.cpp Enable automatic declaration of cout/cerr. Application must still def… Jan 17, 2012
iosfwd import Dec 25, 2011
iostream Enable automatic declaration of cout/cerr. Application must still def… Jan 17, 2012
iostream.cpp import Dec 25, 2011
istream import Dec 25, 2011
istream.cpp import Dec 25, 2011
istream_helpers Added float/double support to the iostreams library. Feb 7, 2012
iterator import Dec 25, 2011
iterator.cpp import Dec 25, 2011
iterator_base import Dec 25, 2011
limits We know limits is not complete Feb 10, 2012
limits.cpp import Dec 25, 2011
list import Dec 25, 2011
list.cpp import Dec 25, 2011
locale import Dec 25, 2011
locale.cpp import Dec 25, 2011
map import Dec 25, 2011
map.cpp import Dec 25, 2011
memory import Dec 25, 2011
new import Dec 25, 2011
new_handler.cpp import Dec 25, 2011
new_op.cpp import Dec 25, 2011
new_opnt.cpp import Dec 25, 2011
new_opv.cpp extended new/delete operators now defined by Arduino Sep 22, 2013
new_opvnt.cpp import Dec 25, 2011
numeric import Dec 25, 2011
numeric.cpp import Dec 25, 2011
ostream Re-implement the removal of prog_char, this time using __FlashStringH… Feb 10, 2012
ostream.cpp import Dec 25, 2011
ostream_helpers Added float/double support to the iostreams library. Feb 7, 2012
queue import Dec 25, 2011
queue.cpp import Dec 25, 2011
serstream import Dec 25, 2011
set import Dec 25, 2011
set.cpp import Dec 25, 2011
sstream import Dec 25, 2011
sstream.cpp import Dec 25, 2011
stack import Dec 25, 2011
stack.cpp import Dec 25, 2011
stdexcept import Dec 25, 2011
stdexcept.cpp import Dec 25, 2011
streambuf import Dec 25, 2011
streambuf.cpp import Dec 25, 2011
string Tweaks to compile without erros and warnings on gcc 4.7.0 Jul 10, 2013
string.cpp import Dec 25, 2011
string_iostream import Dec 25, 2011
support import Dec 25, 2011
support.cpp import Dec 25, 2011
system_configuration.h Reduce standard buffer size, uses less memory by default Sep 22, 2013
type_traits import Dec 25, 2011
typeinfo import Dec 25, 2011
typeinfo.cpp import Dec 25, 2011
uartbuf import Dec 25, 2011
unwind-cxx.h import Dec 25, 2011
utility.cpp import Dec 25, 2011
utility.h import Dec 25, 2011
valarray import Dec 25, 2011
valarray.cpp import Dec 25, 2011
vector Added initializer_list and construct vector from one May 8, 2012
vector.cpp import Dec 25, 2011

README.md

Standard C++ for Arduino

What is this?

This is a straight port of uClibc++ for Arduino. I have cut nothing out and held nothing back. Use with care!

That said, I have used uClibc++'s own internal configuration to pare back un-needed stuff, like support for floats, gratuitous template instantiations and other things. See system_configuration.h for all of those gory details.

Plus I added in Andy Brown's excellent ohserialstream class for managing the HardwareSerial as an ostream.

How do I install it?

This is installed just like a regular Arduino library. Unpack the contents of the distribution into the 'libraries' folder under your sketchbook. For example, my sketchbook is at /home/maniacbug/Source/Arduino, so this library is in /home/maniacbug/Source/Arduino/libraries/StandardCplusplus .

Be sure to reset your Arduino IDE after installing it.

How do I try it out?

From the Arduino IDE, navigate the menus to: File > Examples > StandardCplusplus > string_vector

Upload that, set your serial monitor to 57600 baud, and check the output.

How do I learn more?

The web is your friend. cplusplus.com is my personal favorite reference.

Which versions does it work with?

Arduino 1.0 and beyond.

What is the license?

uClibc++ is LGPL, so this port is also. Andy's file is actually CC-BY-SA, however he indicated he'd be releasing it using the 3-clause modified BSD license, so it will be fully compatible with uClibc++.