2013-01-03 16 views
52

मैं this example program जीसीसी का उपयोग कर संकलित करने के लिए कोशिश कर रहा था (परीक्षण किया संस्करण 4.5.1, 4.6.3, 4.8.4):std :: gCC में put_time कार्यान्वयन स्थिति?

#include <iostream> 
#include <iomanip> 
#include <ctime> 
#include <chrono> 

using std::chrono::system_clock; 

int main() 
{ 
    system_clock::time_point now = system_clock::now(); 
    std::time_t now_c = system_clock::to_time_t(
          now - std::chrono::hours(24)); 
    std::cout << "One day ago, the time was " 
       << std::put_time(std::localtime(&now_c), "%F %T") << '\n'; 
} 

But it tells me:

prog.cpp: In function 'int main()': 
prog.cpp:14:18: error: 'put_time' is not a member of 'std' 

मैंने सोचा, शायद यह नहीं है अभी तक कार्यान्वित तो मैंने इस समारोह के लिए कार्यान्वयन की स्थिति की जांच करने की कोशिश की। मैं केवल यह पेज पाया:

लेकिन वहाँ मैं इस पर कोई टिप्पणी नहीं पा सके put_time या chrono या एक जैसे। क्या कोई मुझे ऐसे संसाधन पर इंगित कर सकता है जो इस पुस्तकालय के लिए कार्यान्वयन की स्थिति पर जानकारी प्रदान करता हो?

उत्तर

68

जीसीसी 4.8.0 के लिए TODO extended iomanip manipulators std::get_time and std::put_time देखें।

यह भी देखें कि Cross Platform way to get the time of day? दावा है कि यह 4.7.0 में लागू नहीं किया गया है।


अद्यतन: नीचे जीसीसी डेवलपर Jonathan Wakely confirmed के रूप में: std::get_time और std::put_time manipulators अभी भी जीसीसी 4.9 में याद कर रहे हैं।


अद्यतन: जोनाथन Wakely closed पर 22 दिसंबर, 2014 यह टिकट:

जीसीसी 5

के लिए

धन्यवाद दे मुझे इसके बारे में पता है के लिए simonwo फिक्स्ड।

+2

जीसीसी 4.9 जारी किया गया है - ऐसा लगता है कि यह न तो वहां है, है ना? – ollo

+4

@ollo के रूप में [जोनाथन ने पुष्टि की है] (http://stackoverflow.com/questions/14136833/stdput-time-implementation-status-in-gcc/14137287?noredirect=1#comment35569824_14142342), जीसीसी 4.9 में अभी भी इन कार्यक्षमताओं की कमी है। :(हाँ, यह दुखद है। – Ali

+0

हां, मैंने अभी भी 4.9 स्रोत की जांच की है, वैसे भी धन्यवाद। – ollo

17

आपने देखा होगा कि आपने जो लिंक दिया है वह किसी भी लाइब्रेरी के कुछ हिस्सों की सूची नहीं है! लेकिन नीचे दी गई तालिका यह कहते हैं:

पुस्तकालय कार्यान्वयन की स्थिति इस table

कि मेज लिखते हैं कि std::get_time और std::put_time manipulators अभी तक लागू नहीं कर रहे हैं में ट्रैक किया जा सकता।

संपादित करें: put_time अब जीसीसी विकास ट्रंक पर है।

+4

डेवलपर से सीधे :) – Ali