-
Notifications
You must be signed in to change notification settings - Fork 4
Pointer receiver on Clear #2
Copy link
Copy link
Open
Description
The coexistence of (s Set) and (s *Set) can cause problems. For instance, if a consumer of the library were to create an interface to represent a subset of methods Clear can't go on the same interface as the other methods since Set and *Set are treated as two different types.
There are a few ways to handle this:
- The implementation of
Clearcould be replaced by a slower version that callsPopuntil theSetis empty. Clearcould be removed altogether, leaving the consumer to implement a for loop callingPopif necessary.- Alternatively, all other methods could be changed to use
*Set. This may seem heavy handed at first but since it's not necessary to explicitly take the pointer of aSetvariable to call*Setmethods this incurs no penalty on the consumer. If Immutable set type / frozenset #1 is implemented it would be a nice symmetry to have the mutable type use a pointer and the immutable type avoid it.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels