arduino / arduino/ArduinoCore-API
String relational operators are members.
- Ngôn ngữ chính
- C++
- Star
- 306
- Fork
- 150
- Chỉ số merge pull request
- Không có pull request nào được merge trong 30 ngày
Mô tả
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
Hướng dẫn đóng góp
Chưa lập chỉ mục được hướng dẫn đóng góp cho kho mã nguồn này
Hướng nghiên cứu
Sử dụng hai biểu thức C++ trong issue làm bước tái hiện đầu tiên, sau đó tìm các khai báo toán tử quan hệ của String trong ArduinoCore-API. So sánh cả hai thứ tự toán hạng và kiểm tra hành vi hiện có của String; được xem là hoàn thành khi các phép so sánh tương đương có thể biên dịch và hoạt động đối xứng, với độ bao phủ cho trường hợp được báo cáo.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Đánh giá
- Công nghệ
- cpp
- Lĩnh vực
- api, embedded-iot
- Loại issue
- Lỗi
- Độ khó
- 4/5
- Thời gian dự kiến
- 3-5 ngày
- Mức độ hoạt động
- Đình trệ
- Độ rõ ràng
- Khá rõ ràng
- Mức phù hợp với người mới
- 35/100