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>structA {
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;
}
};
intmain(){
A a,b,c,d;
a<b/c>d;
}
Ich habe lange kein C++ mehr geschrieben. Kann man da nicht irgendwas mit Operatorüberladung machen um das gültig werden zu lassen?
Wenn das nicht geht, kann man notfalls immer irgendwelche Schweinereien mit dem Preprocessor machen, dass das zu gültigem C++ wird.
Nein, da
</>kein Operator ist.Aber “<”, ,“/” und “>” sind alles Operatoren und so lange die Interpretation eindeutig ist, kompiliert C++ das auch ohne Beanstandung.
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>dist 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; }