std :: to_string不是使用CygWin的C ++ 11中的成员

时间:2015-12-29 21:03:27

标签: c++ python-3.x c++11

我有以下代码......

// My.h
#include <string>
....

// My.cpp
#include "My.h"
...
errMsg = "X value [too low]: " + std::to_string(xInVal);

但是当我编译时......

//setup.py
extra_compile_args =['-std=c++11']

//console output
gcc -Wno-unused-result -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -ggdb -O2 -pipe -Wimplicit-function-declaration -fdebug-prefix-map=/usr/src/ports/python3/python3-3.4.3-1.x86_64/build=/usr/src/debug/python3-3.4.3-1 -fdebug-prefix-map=/usr/src/ports/python3/python3-3.4.3-1.x86_64/src/Python-3.4.3=/usr/src/debug/python3-3.4.3-1 -I./My -c ./My.cpp -o build/temp.cygwin-2.2.1-x86_64-3.4/./My.o -std=c++11

我收到以下错误....

 error: ‘to_string’ is not a member of ‘std’
   errMsg = "X value [too low]: " + std::to_string(xInVal);

我错过了如何以这种方式使用to_string?

1 个答案:

答案 0 :(得分:0)

从CYGWIN标题看起来,对于C ++ 11来说,除非定义了_GLIBCXX_USE_C99,否则这些标题都没有定义。如果出现以下情况,它们将被包含在内:

#if __cplusplus >= 201103L && defined(_GLIBCXX_USE_C99)

我尝试定义_GLIBCXX_USE_C99,但这对我的项目没有用。您可以在使用字符串标题之前尝试定义它。

我最近在与__STRICT_ANSI__

相关的CYGWIN上遇到了与C ++ 11类似的问题