How to create an overwriteable struct that is always const?

ag0aep6g anonymous at example.com
Sat Jun 1 13:00:50 UTC 2019


On 01.06.19 14:51, David Zhang wrote:
>      struct S {
>          /*const*/ char* pointer;
>          ... other members ...
> 
>          this(/*const*/ char* p, ... others ...) {
>              pointer = p;
>              ...
>          }
>      }
> 
> What I want, is to be able to use `S` in other data structures with the 
> following properties checked by the compiler:
> 
>   - The variable can be set
>   - The variable can be read
>   - The variable cannot be modified, only replaced

How is setting/replacing different from modifying?

> Is there a type-safe way to do this? If this were a class, I'd try 
> std.typecons.Rebindable.

struct S
{
     const(char)* pointer;
     /* ... */
}


More information about the Digitalmars-d-learn mailing list