Skip to content
Standard C++ for Arduino (port of uClibc++)
C++ Arduino C Other
Find file
Pull request Compare This branch is 14 commits ahead, 4 commits behind rpavlik:master.
Latest commit 3604786 @kibergus Make std::move POD avare
Failed to load latest commit information.
bits std::move and std::forward
examples Added 'expect' test.
.gitignore import
Jamfile import
Makefile import more readme fixes
StandardCplusplus.h Enable automatic declaration of cout/cerr. Application must still def…
algorithm Make std::move POD avare
algorithm.cpp POD avare std::copy
associative_base Add free functions begin(container) and end(container)
associative_base.cpp import
basic_definitions import
bitset bitset fixes from upstream
bitset.cpp import
cassert import
cctype import
cerrno import
cfloat import
char_traits allocator now supports emplace construction
char_traits.cpp import
climits import
clocale import
cmath Handle pointer types to modf to fix build.
complex import
complex.cpp import
csetjmp import
csignal import
cstdarg import
cstddef import
cstdio import
cstdlib import
cstring import
ctime import
cwctype import
del_op.cpp Compile operator new(std::size_t) even with arduino 1.0 because reali…
del_opnt.cpp import
del_opv.cpp import
del_opvnt.cpp import
deque.cpp import
eh_alloc.cpp import
eh_globals.cpp import
exception Whitespace cleanup from upstream.
exception.cpp import
fstream AVR-libc doesn't have a concept of file.
fstream.cpp Fix typo'd comment
func_exception import
func_exception.cpp Lacking realization of std::terminate. Call terminate in case if exce…
functional Whitespace cleanup from upstream.
initializer_list gcc version 4.5.3 does not understand nothrow with constexpr. Neither…
iomanip import
iomanip.cpp import
ios IOS fixes from upstream
ios.cpp change an ARDUINO check to an __AVR__ check
iosfwd import
iostream Enable automatic declaration of cout/cerr. Application must still def…
iostream.cpp import
istream Whitespace cleanup from upstream.
istream.cpp import
istream_helpers istream_helpers fixes from upstream
iterator Whitespace cleanup from upstream.
iterator.cpp import
iterator_base Whitespace cleanup from upstream.
limits Handle other value inquiry functions and clean up comments.
limits.cpp import
list Add free functions begin(container) and end(container)
list.cpp import
locale Whitespace cleanup from upstream.
locale.cpp import
map import
map.cpp import
memory allocator now supports emplace construction
new import
new_handler.cpp import
new_opnt.cpp import
new_opv.cpp import
new_opvnt.cpp import
numeric import
numeric.cpp import
ostream Whitespace cleanup from upstream.
ostream.cpp import
ostream_helpers ostream_helpers cleanup and improve conditional compilation
queue import
queue.cpp import
serstream Replace dos lineendings to unix ones
set Whitespace cleanup from upstream.
set.cpp import
sstream import
sstream.cpp import
stack import
stack.cpp import
stdexcept import
stdexcept.cpp import
streambuf import
streambuf.cpp import
string string compile fixes from upstream
string.cpp import
string_iostream import
support Whitespace cleanup from upstream.
support.cpp import
system_configuration.h Updated system_configuration.h
terminate.cpp Lacking realization of std::terminate. Call terminate in case if exce…
type_traits POD avare std::copy
typeinfo import
typeinfo.cpp import
uartbuf import
unexpected.cpp Lacking realization of std::terminate. Call terminate in case if exce…
unwind-cxx.h Change dos lineendings to unix ones
utility std::move and std::forward
utility.cpp import
utility.h std::move and std::forward
valarray valarray fixes from upstream
valarray.cpp import
vector Add FIXME to pproblem places in vector realization
vector.cpp import

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. 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++.

Something went wrong with that request. Please try again.