• XM34@feddit.org
    link
    fedilink
    English
    arrow-up
    4
    ·
    22 hours 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
      2
      ·
      edit-2
      14 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;
      }