digitalmars.D.learn - Breaking the type system needs temporary?
- simendsjo <simen.endsjo pandavre.com> Jun 25 2011
- David Nadlinger <see klickverbot.at> Jun 25 2011
- simendsjo <simen.endsjo pandavre.com> Jun 25 2011
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: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?
So the error message is "wrong"? The error message be something like "(cast(int*)c) is not an lvalue"?
Jun 25 2011








simendsjo <simen.endsjo pandavre.com>