AccessViolation Exception

仕事でもはんだづけ、家でもはんだづけ

AtmelStudio6.2でc++11構文を使用する

AVRの開発をしていて激しくラムダ構文だとかが使いたくなる時がある。

avr-g++を直接叩いていたけどAtmel Studioでできるか確認したのでテスト。

環境

プロジェクトを作成

f:id:kamiyaowl:20140705172554p:plain

c++でプロジェクトを作成します。

コーディング

試しにラムダ構文を使った物を書いてみる。

#include <avr/io.h>
#include <util/delay.h>

int main(void){
    DDRC = 0xff;
    //c++11 lambda
    auto f = [](uint8_t d){ PORTC = d;};
    
    for(uint8_t i = 0 ; ; ++i)
    {
        f(i);
        _delay_ms(200);
    }
}

そのままビルドする

f:id:kamiyaowl:20140705172946p:plain

怒られます

プロジェクトプロパティを開いて、ToolchainからAVR/GNU C++ Compilerの設定を出します

f:id:kamiyaowl:20140705173133p:plain

-std=c++11

を追記すれば完了。普段ツールに頼ってたりすると知らないのでメモ

f:id:kamiyaowl:20140705173310p:plain

補完も聞くらしい、すごい