Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How can I use a C++11 to program the Arduino?

How can I use C++11 when programming the Arduino?

I would be fine using either the Arduino IDE or another environment. I am most interested in the core language improvements, not things that require standard library changes.

like image 663
walrii Avatar asked Apr 12 '13 16:04

walrii


People also ask

Does Arduino support C++11?

As of version 1.6. 6, the Arduino IDE enables C++11 by default. For older versions, read on: It is very easy to change the flags for any element of the toolchain, including the assembler, compiler, linker or archiver.

Can you use C to program Arduino?

Introduction: Program Arduino Uno in C Language Arduino uses its own language to program Arduino boards,Because its programming language is easy to understand. But it can also be programmed in C language.

What version of C does Arduino use?

Arduino sketches are written in C++.

What language can I use to program an Arduino?

The language used is based on C and C++, there are a couple of small differences designed to make Arduinos as easy to use as possible. The Arduino IDE will do some pre-processing to the code to avoid some unwanted errors but other than that it's C and C++.


2 Answers

As of version 1.6.6, the Arduino IDE enables C++11 by default.

For older versions, read on:

It is very easy to change the flags for any element of the toolchain, including the assembler, compiler, linker or archiver.

Tested on the Arduino IDE version 1.5.7 (released on July 2014),

  1. Locate the platform.txt file,
  • AVR architecture => {install path}\hardware\arduino\avr\platform.txt
  • SAM architecture => {install path}\hardware\arduino\sam\platform.txt
  1. Inside that file, you can change any flag, for instance,
  • compiler.c.flags for changing the default compilation flags for C++ files.
  • compiler.cpp.flags for changing the default compilation flags for C++ files.
  1. You can also change any of the "recipes" or compile patters, at the corresponding section of the configuration file, under the title "AVR/SAM compile patterns".
  2. After making the changes, you must restart the Arduino IDE, at least on version 1.5.7.

For instance,

To enable support for C++11 (C++0x), tested on Arduino IDE versions 1.5.7 and 1.5.8, you will simply add the flag "-std=gnu++11" at the end of the line starting with compiler.cpp.flags=".

It is expected that C++11 is enabled by default in the near future on the Arduino IDE. However, as of version 1.5.8 (Oct 2014) it is still not the case.

like image 198
jose.angel.jimenez Avatar answered Sep 22 '22 12:09

jose.angel.jimenez


Arduino IDE 1.6.6 and newer have C++11 enabled by default (they have the compiler flag "-std=gnu++11" set in the platform.txt file).

like image 27
Capt Avatar answered Sep 23 '22 12:09

Capt