यह स्माइली-दाढ़ी वाली अभिव्यक्ति क्या है: "<:] {%>"?


300

मैं निम्नलिखित कार्यक्रम में आया, जो त्रुटियों या चेतावनियों के बिना संकलित है:

int main(){
  <:]{%>; // smile!
}

जीवंत उदाहरण।

कार्यक्रम क्या करता है, और वह स्माइली-एक्सप्रेशन क्या है?


44
मैंने इन पंक्तियों के साथ एक प्रोग्रामिंग क्लास को बोनस के रूप में कुछ दिया। मैं बुरा हूँ, मुझे पता है। यह Google पर बहुत ही अप्राप्य है।
क्रिस

57
अच्छी परिधि; मैंने सुना है कि वे आपको "असहनीय" कहने के लिए मुकदमा कर रहे हैं।
मैट

3
@matt वे SWEEDEN मुकदमा: bbc.com/news/magazine-21956743
एडवर्ड

2
क्या आप स्वीकृत उत्तर को बदलने पर विचार करेंगे?
nhahtdh

4
@ मिस्टिक: मजेदार जवाब मजेदार हैं, लेकिन दिन के अंत में, यह वास्तव में पाठकों की मदद नहीं करता है।
नहाधत

जवाबों:



354

कार्यक्रम निम्नलिखित का प्रतिनिधित्व करने के लिए डिग्राफ का उपयोग करता है :

[] {};

यह एक लंबोदर अभिव्यक्ति है जो कुछ भी नहीं करता है। संबंधित प्रतीकों में ये समतुल्य हैं:

<: = [
%> = }

यद्यपि वे आम तौर पर आज के समय में अप्रभावित हैं, डिग्राफ तब उपयोगी होते हैं जब आपके कीबोर्ड में C ++ के मूल स्रोत वर्ण सेट का उपयोग करने के लिए आवश्यक कुछ कुंजियों का अभाव होता है, अर्थात् ग्राफिकल वाले। पात्रों का संयोजन जो एक डिग्राफ बनाते हैं, उन्हें एकल टोकन के रूप में संसाधित किया जाता है। यह बदले में किसी भी अपर्याप्त सुसज्जित कीबोर्ड या अन्य ऐसे हार्डवेयर या सॉफ्टवेयर के लिए बनाता है।


66

प्रोग्राम डिग्राफ का उपयोग कर रहा है , जो कीबोर्ड (या पाठ एन्कोडिंग) के साथ C ++ प्रोग्रामिंग की अनुमति देता है जिसमें उन वर्णों का उपयोग नहीं हो सकता है जो C ++ उपयोग करते हैं।

कोड इसका समाधान करता है:

int main(){
  []{}; // smile!
}

61
int main(){
  <:]{%>; // smile!
}

यह मूल रूप से एक है लैम्ब्डा अभिव्यक्ति (लैम्ब्डा अभिव्यक्ति में से एक है सी ++ 11 का उपयोग कर सुविधाओं) द्वि आलेख (दोनों द्वि आलेख और trigraphs सी पर काम करता है ++):

[] {};

केवल डिग्राफ का उपयोग करना:

<:]<%}; 

<:]<%%>;

[:>{%>; // like my cubic hat?

[:><%};

[:><%%>;

उन्हें ट्रिग्राफ के साथ मिलाना:

<:??)<%??>; // popeye

??(:>{??>; // pirate
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.