निम्नलिखित कोड g ++ 7 कंपाइलर और ऐप्पल क्लैंग ++ के साथ अलग-अलग परिणाम देता है। क्या मैंने std::boolalpha
का उपयोग किया है, या मैंने गलती की है, तो क्या मैंने बूल आउटपुट के संरेखण में क्लैंग में एक बग में भाग लिया था?क्लैंग का उपयोग करते समय std :: boolalpha फ़ील्ड चौड़ाई को अनदेखा क्यों करता है?
#include <string>
#include <sstream>
#include <iostream>
#include <iomanip>
template<typename T>
void print_item(std::string name, T& item) {
std::ostringstream ss;
ss << std::left << std::setw(30) << name << "= "
<< std::right << std::setw(11) << std::setprecision(5)
<< std::boolalpha << item << " (blabla)" << std::endl;
std::cout << ss.str();
}
int main() {
int i = 34;
std::string s = "Hello!";
double d = 2.;
bool b = true;
print_item("i", i);
print_item("s", s);
print_item("d", d);
print_item("b", b);
return 0;
}
अंतर है:
// output from g++ version 7.2
i = 34 (blabla)
s = Hello! (blabla)
d = 2 (blabla)
b = true (blabla)
// output from Apple clang++ 8.0.0
i = 34 (blabla)
s = Hello! (blabla)
d = 2 (blabla)
b = true (blabla)
क्या अंतर था? अद्यतन करने के लिए आप चिएल धन्यवाद। मैं क्लैंग 6 के साथ भी पुन: पेश कर सकता हूं। – gsamaras
प्रिंट आउट भी प्रश्न में डाल दिया। परिणाम लिखें: – saeed
@gsamaras। मैं थोड़ा सा गलत दिखाने के लिए उदाहरण को थोड़ा सा संपादित करता हूं। – Chiel