2014-03-04 135 views
3

我用mingw編譯項目並且項目是很酷的編譯器。 這是我的部分代碼'to_string'不是'std'的成員

#include "astnodecodegenerator.hpp" 
#include "utility.hpp" 
#include "constants.hpp" 
#include <string> 
#include <cmath> 
#include <sstream> 
#include <stack> 

。 。 。 。

void AstNodeCodeGenerator::visit(StringConst& str) 
{ 
    emit_la("a0", (std::string("str_const") + std::to_string(stringtable().get_idx(str.token.get_val()))).c_str()); 
} 

void AstNodeCodeGenerator::visit(IntConst& int_const) 
{ 
    emit_la("a0", (std::string("int_const") + std::to_string(inttable().get_idx(int_const.token.get_val()))).c_str()); 
} 

的錯誤是:

error :'to_string' is not a member of 'std' emit_la<"a0",<std::string(("str_const") + std::to_string(stringtable().get_idx(str.token.get_val()))).c_str()); 
+5

'to_string'是一個C++ 11功能。你可能不得不打開它。 –

+0

在命令行中使用'-std = C++ 11'來打開C++ 11。 – Cameron

+0

這是makefile的一部分:---- CFLAGS = -g -Wall -Wextra -std = C++ 11 -Wno-write-strings ../../include/boost – user3341263

回答

1

它不支持,因爲需要從MinGW的開發商變化MinGW的運行時間限制上的MinGW。

這些看一看:

如果可以使用Boost,一個好的辦法是boost::lexical_cast(在那裏,這樣做的)。

+0

讓mingw開發者取得了一些進展......關於這個1571的最後一個bugpost由於「過時」而被「關閉」,但這是2014年12月,我仍然遇到這個問題! ARGH在這裏拉頭髮!!!! –

+0

@BrianJack它的2017年,仍然開始:D –

相關問題