View source code
							
							
						
								Display the source code in object.d from which this
								page was generated on github.
							
						
							Report a bug
							
						
								If you spot a problem with this page, click here to create a
								Bugzilla issue.
							
						
							
								Improve this page
							
							
					
								Quickly fork, edit online, and submit a pull request for this page.
								Requires a signed-in GitHub account. This works well for small changes.
								If you'd like to make larger changes you may want to consider using
								local clone.
							
						Function object.opEquals
Implementation for class opEquals override. Calls the class-defined methods after a null check. Please note this is not nogc right now, even if your implementation is, because of the typeinfo name string compare. This is because of dmd's dll implementation. However, it can infer to @safe if your class' opEquals is.
						
				bool opEquals(LHS, RHS)
				(
				
				  LHS lhs,
				
				  RHS rhs
				
				)
				
				if ((is(LHS : const(Object)) || is(LHS : shared(const(Object)))) && (is(RHS : const(Object)) || is(RHS : shared(const(Object)))));
						
					
				Example
If aliased to the same object or both null => equal
class F { int flag; this(int flag) { thisExample
If either is null => non-equal
class F { int flag; this(int flag) { thisExample
If same exact type => one call to method opEquals
This test passes @safe because it defines a new opEquals with @safe
class F
{
    int flag;
    this(int flag)
    {
        thisExample
General case => symmetric calls to method opEquals
int fEquals, gEquals;
class Base
{
    int flag;
    this(int flag)
    {
        thisExample
This test shows an example for a comprehensive inheritance equality chain too.
static class Base
{
    int member;
    this(int member) pure @safe nothrow @nogc
    {
        thisAuthors
Walter Bright, Sean Kelly
License
					Copyright © 1999-2024 by the D Language Foundation | Page generated by ddox.