簡體   English   中英

Emscripten中的C ++ 11支持

[英]C++11 support in Emscripten

我想使用Emscripten編譯一個C ++代碼,我在其中使用了一些C ++ 11特性。 不幸的是我收到一個錯誤:

index.cpp:13:18: error: expected expression
    vv.push_back({1.5f, 2.f});
                 ^
index.cpp:14:18: error: expected expression
    vv.push_back({5.f, 0});
                 ^
index.cpp:15:18: error: expected expression
    vv.push_back({1, 1});
                 ^
index.cpp:17:9: warning: 'auto' type specifier is a C++11 extension [-Wc++11-extensions]
    for(auto& item : vv) {
        ^
index.cpp:17:20: warning: range-based for loop is a C++11 extension [-Wc++11-extensions]
    for(auto& item : vv) {

我無法理解,為什么我會得到這個錯誤。 最新的Emscripten和Clang版本使用emsdk激活。

代碼是:

#include<iostream>
#include<vector>

struct AA {
    float a;
    float b;
};

int main() {

    std::vector<AA> vv;

    vv.push_back({1.5f, 2.f});
    vv.push_back({5.f, 0});
    vv.push_back({1, 1});

    for(auto& item : vv) {

        std::cout << item.a << ' ' << item.b << std::endl;

    }

}

我甚至收到一條消息: LLVM version appears incorrect (seeing "4.0", expected "3.7")

如果確實如此,它應該是wotk,因為“Clang 3.3及更高版本實現了所有ISO C ++ 2011標准。”

建議:將-std=c++11添加到編譯器選項中。

-Wc++11-extensions是添加警告的標志,而不是添加C ++ 11支持。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM