C++11 에서 발생한 컴파일 오류.. std::stod()
글쓴이: bsjun / 작성시간: 목, 2016/11/24 - 4:56오후
gcc-6.2.0 을 이용하여 어떤 패키치 설치도중std::stod( )
에서 에러가 발생하여
같은 모양세의 예제를 만들어서 같은 방법으로 실행 시켰더니
같은 에러가 발생하네요.. 어디를 고쳐야 할까요?
파일내용
#include <string> int main() { std::string str("1.23"); double v = std::stod(str); (void) v; return 0; }
실행명령
/usr/local/gcc-6.2/bin/g++-6.2 -c -DNDEBUG -O3 --std=c++11 -Wno-deprecated-register -Wno-deprecated-declarations -DEIGEN_DEFAULT_DENSE_INDEX_TYPE=long -Wno-unused-parameter -DNDEBUG -O3 -DGZSTREAM_NAMESPACE=gz -fPIC test.cc
결과
test.cc: In function ‘int main()’: test.cc:6:29: error: invalid initialization of reference of type ‘const wstring& {aka const std::__cxx11::basic_string<wchar_t>&}’ from expression of type ‘std::__cxx11::string {aka std::__cxx11::basic_string<char>}’ double v = std::stod(str); ^ In file included from /usr/local/gcc-6.2/include/c++/6.2.0/string:52:0, from test.cc:1: /usr/local/gcc-6.2/include/c++/6.2.0/bits/basic_string.h:5548:3: note: in passing argument 1 of ‘double std::__cxx11::stod(const wstring&, std::size_t*)’ stod(const wstring& __str, size_t* __idx = 0) ^~~~ At global scope: cc1plus: warning: unrecognized command line option ‘-Wno-deprecated-register’
원인을 모르겠습니다..
Forums:
잠깐 검색해보니 아래와 같이 쓰는 건가 본데요?
잠깐 검색해보니 아래와 같이 쓰는 건가 본데요?
지금 그게 문제가 아니라
string을 wstring으로 바꿀수 없다는거 보니까
UNICODE가 define되어 있는거네요
둘중 하나에요 어떤 패키지가 wchar를 쓰는건지
아님 gcc에서 UNICODE를 강제적용한건지
제가 볼땐 후자인듯 ㅋㅋ
제가 볼땐 후자인듯 ㅋㅋ
gcc가 UNICODE를 강제적용함->모든 string관련된 함수들이 먹통이 됨
->근데 글쓴이는 stod 고칠 생각만 하고 있음 -> 문제 해결이 안됌
ㅋㅋㅋ
댓글 달기