alternativen für klammer und operatoren



  • hi
    mein gcc 3.3.1 kommt prima mit folgender syntax klar:

    %:include<iostream>
    using namespace std;
    %:define a 0
    int main()<%	
    	if(a != 1) <%
    		cout<< "yeah\n";
    	%>	
    %>
    

    jedoch nicht mit dieser:

    ??=include<iostream>
    using namespace std;
    ??=define a 0
    int main()??<
    	if(a != 1) ??<
    		cout<< "yeah??/n";
    	??>
    
    ??>
    

    umgekehrt kann das visual studio 6 die zweite version ohne probleme sprechen, die erste jedoch nicht.

    hmm, ich dachte, die zweite sollte nicht abgeschafft werden?

    übrigens kennt der total neue gcc

    if(a not_eg 1)
    

    nicht, obwohl er den rest ja spricht.

    ist nicht elementar wichtig, ich dachte nur, beides sollte gelten... perspektivisch.

    deswegen wundere ich mich über den gcc.



  • Hallo,
    sollte das nicht "not_eq" heißen? Also 'q' statt 'g'.



  • jo, eg.. klingt seltsam 😉

    ok, dann kann der gcc auch vergleich, aber warum kann er die trigraphen nicht mehr?



  • elise schrieb:

    aber warum kann er die trigraphen nicht mehr?

    Also da bin ich überfragt. Mit dieser Trigraphen-Thematik habe ich mich bisher noch nie auseinandergesetzt 🙂



  • 🙄

    oh

    mift.. ist aber nicht so wichtig, ich wollte nur schülers schocken 😉



  • Der gcc 3.3.2 schluckt den Code anständig - was ist denn für dich der neueste? Ein 3.4er Snapshot? uU gibts da nen Bug?

    Denn in den Changes habe ich beim gcc keine Änderung bezüglich der Trigraphen finden können...



  • so, recherchiert..
    im gcc muss man einfach ein compilerflag mitgeben

    -trigraphs' Process ISO standard trigraph sequences. These are three-character sequences, all starting with??', that are defined by ISO C to
    stand for single characters. For example, ??/' stands for\',
    so '??/n'' is a character constant for a newline. By default, GCC ignores trigraphs, but in standard-conforming modes it converts them. See the-std' and `-ansi' options.

    ok, geht. hätte mir auch früher einfallen können.



  • zur not kannst du ja testen, ob der compiler standardkonform ist.
    wenn ja, dann ist __cplusplus als 199711L definiert, andernfalls eine zahl mit höchstens 5 dezimalziffern und afaik liefert hat der gcc __cplusplus als 1 definiert. 😉
    - um die schülers zu schocken *g* 😃



  • 😋
    🙂 (keine angst, /me ist nicht gemein... meistens 😉 )


Anmelden zum Antworten