arduino / arduino/ArduinoCore-API
String relational operators are members.
- Lingua principale
- C++
- Stelle
- 306
- Fork
- 150
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Descrizione
Member relational operators are no good because they cause the lhs and rhs to be treated differently. This causes problems such as making == appear non-commutative. Such as:
```c++
void setup() {
String("hi") == "world";
"world" == String("hi");
}
```
```
sketch_jan19a:3: error: no match for 'operator==' (operand types are 'const char [6]' and 'String')
"world" == String("hi");
^
exit status 1
```
It would be less user-surprising to bring these operators out of the class.
I propose defining them at namespace scope as symmetric pairs of operators, between a String on one side, and everything String accepts as an implicit conversion on the other side, per:
http://en.cppreference.com/w/cpp/string/basic_string/operator_cmp
Guida per i contributori
Nessuna guida per i contributori indicizzata per questo repository
Direzione di ricerca
Usa le due espressioni C++ nell’issue come prima riproduzione, quindi individua le dichiarazioni degli operatori relazionali di String in ArduinoCore-API. Confronta entrambi gli ordini degli operandi e verifica il comportamento esistente di String; il lavoro è completo quando i confronti equivalenti possono essere compilati e si comportano simmetricamente, con una copertura per il caso segnalato.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- cpp
- Ambito
- api, embedded-iot
- Tipo di issue
- Bug
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Stato di attività
- Ferma
- Chiarezza
- Abbastanza chiara
- Idoneità per principianti
- 35/100