使用arm-linux-gnueabi-g -5 filename.cpp -std = c 11编译arm的下面代码时出错

#include <iostream>
#include <thread>
#include <future>

void initiazer(std::promise<int> * promObj)
{
    std::cout<<"Inside Thread"<<std::endl;     promObj->set_value(35);
}

int main()
{
    std::promise<int> promiseObj;
    std::future<int> futureObj = promiseObj.get_future();
    std::thread th(initiazer, &promiseObj);
    std::cout<<futureObj.get()<<std::endl;
    th.join();
    return 0;
}

错误:test.cpp:在函数'void initiazer(std :: promise *)'中:test.cpp:10:55:错误:无效使用不完整类型'class std :: promise'snd :: cout <<“内线“<set_value(35); ^在test.cpp中包含的文件中:4:0:/ usr / arm-linux-gnueabi / include / c / 5 / future:124:11:注意:'class std :: promise'类承诺的声明; ^ test.cpp:在函数'int main()'中:test.cpp:15:23:错误:聚合'std :: promise promiseObj'的类型不完整,无法定义std :: promise promiseObj; ^ test.cpp:16:22:错误:变量'std :: future futureObj'具有初始化程序但不完整类型std :: future futureObj = promiseObj.get_future();