digitalmars.D.learn - Breaking the type system needs temporary?
- simendsjo (12/12) Jun 25 2011 I'm calling functions using ParameterTypeTuple. The problem arise when
- David Nadlinger (3/15) Jun 25 2011 The result of a cast is not an lvalue.
- simendsjo (3/19) Jun 25 2011 So the error message is "wrong"? The error message be something like
I'm calling functions using ParameterTypeTuple. The problem arise when the parameters is defined as const/immutable. So I need to break out of the type system. But I cannot seem to do this without using a temporary variable. Am I doing something wrong? int i = 1; const(int*) c; //c = &v; // ok - cannot modify const int* cp = cast(int*)c; cp = &v; // ok - breaking type system //(cast(int*)c) = &v; // cannot modify const - shouldn't this work as above?
Jun 25 2011
The result of a cast is not an lvalue. David On 6/25/11 7:37 PM, simendsjo wrote:I'm calling functions using ParameterTypeTuple. The problem arise when the parameters is defined as const/immutable. So I need to break out of the type system. But I cannot seem to do this without using a temporary variable. Am I doing something wrong? int i = 1; const(int*) c; //c = &v; // ok - cannot modify const int* cp = cast(int*)c; cp = &v; // ok - breaking type system //(cast(int*)c) = &v; // cannot modify const - shouldn't this work as above?
Jun 25 2011
On 25.06.2011 19:44, David Nadlinger wrote:The result of a cast is not an lvalue. David On 6/25/11 7:37 PM, simendsjo wrote:So the error message is "wrong"? The error message be something like "(cast(int*)c) is not an lvalue"?I'm calling functions using ParameterTypeTuple. The problem arise when the parameters is defined as const/immutable. So I need to break out of the type system. But I cannot seem to do this without using a temporary variable. Am I doing something wrong? int i = 1; const(int*) c; //c = &v; // ok - cannot modify const int* cp = cast(int*)c; cp = &v; // ok - breaking type system //(cast(int*)c) = &v; // cannot modify const - shouldn't this work as above?
Jun 25 2011