• XM34@feddit.org
      link
      fedilink
      English
      arrow-up
      4
      ·
      1 day ago

      Aber “<”, ,“/” und “>” sind alles Operatoren und so lange die Interpretation eindeutig ist, kompiliert C++ das auch ohne Beanstandung.

      • optional@feddit.org
        link
        fedilink
        arrow-up
        3
        ·
        edit-2
        17 hours ago

        Habe ich vorhin ausprobiert und nicht hinbekommen. Also nicht ohne dass zwischen den Operatoren zumindest noch rvalues stehen. Aber wie gesagt ich habe auch lange kein C++ mehr gemacht, vielleicht geht’s doch irgendwie. Codebeispiele werden gerne genommen.

        a<b/c>d ist jedenfalls schonmal möglich:

        #include <iostream>
        
        struct A {
            A operator<(A) {
                std::cout << " to be ";
                return *this;
            }
            A operator/(A) {
                std::cout << "It's ok";                                                                                                                                           
                return *this;
            }
            A operator>(A) {
                std::cout << "gay";
                return *this;
            }
        };
        
        int main() {
            A a,b,c,d;
            a<b/c>d;
        }