कुछ सी ++ कंपाइलर आज भी वाक्यविन्यास का समर्थन करते हैं - इस सवाल के मूल रूप से 8 साल बाद पूछा गया था। यह मुझे आश्चर्यचकित करता है।
मैंने 2012 में पास्कल सीखा, पास्कल के पास सीमाएं हैं। फिर कुछ ने मुझे सी ++ के साथ समान वाक्यविन्यास का प्रयास करने के लिए प्रोत्साहित किया, फिर यह अप्रत्याशित रूप से शानदार काम करता है।
संकलक अपने लैपटॉप पर छ है ++ (जीसीसी) 6.4.0 (Cygwin परियोजना से) एसटीडी = C++ 17
एक काम उदाहरण है, जो मैं जल्दी में लिखा है। repl.it
इसके अलावा, स्रोत कोड का पालन जुड़ा हुआ है:
#include <iostream>
using namespace std;
#define ok(x) cout << "It works in range(" << x << ")" << endl
#define awry cout << "It does\'t work." << endl
int main() {
/*bool a, b, c, d, e, f, g;
switch(true) {
case (a): break; These does not work any more...
case (b and c): break;
}*/
char ch1 = 'b';
switch(ch1) {
case 'a' ... 'f': ok("a..f"); break;
case 'g' ... 'z': ok("g..z"); break;
default: awry;
}
int int1 = 10;
switch(int1) {
case 1 ... 10: ok("1..10"); break;
case 11 ... 20: ok("11..20"); break;
default: awry;
}
return 0;
}
स्रोत
2018-02-27 03:59:56
नहीं। और मैं का पालन करना चाहिए कि अगर आप स्विच का उपयोग कर रहे हैं, तो आप लगभग निश्चित रूप से नहीं OOP कर रहे हैं। –
@Neil: कृपया समझाएं। क्या हमें एक पूर्ण श्रेणी पदानुक्रम वाले कार्यक्रम में सभी बूलियन अभिव्यक्तियों को प्रतिस्थापित करना चाहिए? – Coincoin
नहीं। लेकिन हमें नाटक नहीं करना चाहिए कि हम ओओपी कर रहे हैं - हम प्रक्रियात्मक प्रोग्रामिंग कर रहे हैं (दुर्भाग्य से कोई शांत टीएलए नहीं)। –