leveldb简单应用时报错

#include <iostream>
#include <cassert>
#include <cstdlib>
#include <string>

#include <leveldb/db.h>

using namespace std;

int main(){
    leveldb::DB *db;
    leveldb::Options options;

    options.create_if_missing = true;
    //    options.compression=leveldb::kNoCompression;

    leveldb::Status status = leveldb::DB::Open(options,"/tmp/testldb",&db);
    assert(status.ok());

    std::string key = "a";
    std::string value = "value_a";
    std::string get_value;

    leveldb::Status s = db->Put(leveldb::WriteOptions(),key,value);

    if(s.ok())
        s = db->Get(leveldb::ReadOptions(),"a",&get_value);

    if(s.ok())
        cout<<"get_value:"<<get_value<<endl;
    else
        cout<<s.ToString()<<endl;

    delete db;

    return 0;
}

在ubuntu14.LTS下编译总报错,
编译命令如下:g++  dev.cc   -o dev -lpthread -lleveldb
或g++   dev.cc   -o dev_a  -lpthread ./libleveldb.a 

大概是这个意思:
In file included from /usr/include/leveldb/iterator.h:20:0,
                 from /usr/include/leveldb/db.h:12,
                 from dev.cc:6:
/usr/include/leveldb/status.h:27:10: error: expected ';' at end of member declaration
   Status() noexcept : state_(nullptr) {}
          ^
/usr/include/leveldb/status.h:27:12: error: 'noexcept' does not name a type
   Status() noexcept : state_(nullptr) {}
            ^
/usr/include/leveldb/status.h:33:16: error: expected ',' or '...' before '&&' token
   Status(Status&& rhs) noexcept : state_(rhs.state_) { rhs.state_ = nullptr; }
                ^
/usr/include/leveldb/status.h:33:22: error: invalid constructor; you probably meant 'leveldb::Status (const leveldb::Status&)'
   Status(Status&& rhs) noexcept : state_(rhs.state_) { rhs.state_ = nullptr; }


解决方式:
找到了解决方式
需要增加一个-std=c++11的选项才可以,变成如下方式:
g++ -std=c++11   dev.cc   -o dev -lpthread -lleveldb 或
g++ -std=c++11   dev.cc   -o dev_a  -lpthread ./libleveldb.a 

这样可以正确编译通过,执行dev或dev_a可以看到正确执行结果:value_a
同时在/tmp/testldb/下看到数据库文件