Improve const-correctness for read-only functions (e.g., sdslen, sdscmp)
- Vorherrschende Sprache
- C
- Sterne
- 5.6k
- Forks
- 510
- PR-Merge-Kennzahlen
- Keine gemergten PRs in 30 T.
Beschreibung
Functions that perform read-only operations, like `sdscmp`, are declared with `const sds` parameters. Due to `typedef char *sds;`, `const sds` resolves to `char * const` (a constant pointer to mutable data).
This signature incorrectly implies that the function might modify the content of the sds strings.
More importantly, it makes it impossible to pass a `const char *` (that is known to be a valid `sds` string) to these functions without a cast that discards the `const` qualifier, which fails compilation under `-Werror`.
To significantly improve const-correctness and interoperability with modern C/C++ codebases, I would like to propose introducing a new type for read-only sds strings:
``` c
typedef const char * const_sds;
```
With this new type, the signatures of read-only functions could be updated or overloaded. For example:
``` c
int sdscmp(const_sds s1, const_sds s2);
size_t sdslen(const_sds s);
```
Beitragsleitfaden
Für dieses Repository ist kein Beitragsleitfaden indexiert
Bewertung
Dieses Issue wurde noch nicht bewertet.