2016-05-31 2 views
11

저는 오늘 약간의 시간 함수를 사용하여 %r (또는 %p)을 사용하는 표준 변환이 g ++ 또는 clang ++의 std::get_time()을 통한 입력에 대해 작동하지 않는 것으로 나타났습니다. g ++ 및 clang ++에 대해서는 this live code version을 참조하십시오. 은 VC++ (이 closely related question 참조)가있는 Windows에서 예상대로 작동하는 것 같습니다. 또한 imbue 행이 포함되어 있는지 여부에 관계없이 동일한 효과가 나타납니다. 내 리눅스 머신의 로케일은 중요한 경우 "en_US.UTF-8"으로 설정됩니다.g ++ 및 clang ++에서 std :: get_time이 손상 되었습니까?

+8

이것은 libstdC++ 문제인 것으로 보입니다. libC++로 clang을하면이 구문을 파싱합니다. –

+0

@HowardHinnant : 당신이 맞아요. (http://coliru.stacked-crooked.com/a/e597ffb8e4d4497e). 나는 질문을 retitle해야합니까? – Edward

+0

[구현] (https://gcc.gnu.org/viewcvs/gcc/trunk/libstdc%2B%2B-v3/include/bits/locale_facets_nonio.tcc?revision=219012&view=markup&pathrev=219013#l654)와 유사합니다.)는'% r' 또는'% p'를 처리하지 않습니다. 그들이 처리해야 할 다른 장소가 있다면 찾을 수 없습니다. – interjay

답변

10

코멘트 작성자는 지적한 바와 같이 실제로 이것은 libstdc++의 버그 (누락)입니다. bug report이 제출되었습니다.

관련 문제