arduino / arduino/ArduinoCore-API

String relational operators are members.

Abierto
#86 0 comentarios 0 reacciones 0 asignados Ver en GitHub
Lenguaje dominante
C++
Estrellas
306
Forks
150
Métricas de merge de PR
Sin PR fusionados en 30 d

Descripción

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

Guía de contribución

No hay ninguna guía de contribución indexada para este repositorio

Línea de trabajo

Usa las dos expresiones de C++ del issue como primera reproducción; después, localiza las declaraciones de los operadores relacionales de String en ArduinoCore-API. Compara ambos órdenes de operandos y comprueba el comportamiento existente de String; se considera terminado cuando las comparaciones equivalentes pueden compilarse y se comportan simétricamente, con cobertura para el caso reportado.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
cpp
Área
api, embedded-iot
Tipo de issue
Error
Dificultad
4/5
Tiempo estimado
3-5 días
Estado de actividad
Estancado
Claridad
Bastante claro
Aptitud para principiantes
35/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.