The tuple module defines a template struct used for arbitrary data grouping.

License:
BSD style: see license.txt

Authors:
Walter Bright, Sean Kelly

  • template Tuple (TList...)
  • A Tuple is a an aggregate of typed values. Tuples are useful for returning a set of values from a function or for passing a set of parameters to a function.

    NOTE:
    Since the transition from user-defined to built-in tuples, the ability to return tuples from a function has been lost. Until this issue is addressed within the language, tuples must be enclosed in a struct if they are to be returned from a function.

    Example:
     alias Tuple!(int, real) T1;
     alias Tuple!(int, long) T2;
     struct Wrap( Vals... )
     {
         Vals val;
     }
    
     Wrap!(T2) func( T1 val )
     {
         Wrap!(T2) ret;
         ret.val[0] = val[0];
         ret.val[1] = val[0] * cast(long) val[1];
         return ret;
     }
    
    
    This is the original tuple example, and demonstates what should be possible with tuples. Hopefully, language support will be added for this feature soon.

    Example:
     alias Tuple!(int, real) T1;
     alias Tuple!(int, long) T2;
    
     T2 func( T1 val )
     {
         T2 ret;
         ret[0] = val[0];
         ret[1] = val[0] * cast(long) val[1];
         return ret;
     }
    
    
     // tuples may be composed
     alias Tuple!(int) IntTuple;
     alias Tuple!(IntTuple, long) RetTuple;
    
     // tuples are equivalent to a set of function parameters of the same type
     RetTuple t = func( 1, 2.3 );
    
    


  • template IndexOf (T,TList...)
  • Returns the index of the first occurrence of T in TList or Tlist.length if not found.

  • template Remove (T,TList...)
  • Returns a Tuple with the first occurrence of T removed from TList.

  • template RemoveAll (T,TList...)
  • Returns a Tuple with all occurrences of T removed from TList.

  • template Replace (T,U,TList...)
  • Returns a Tuple with the first offuccrence of T replaced with U.

  • template ReplaceAll (T,U,TList...)
  • Returns a Tuple with all occurrences of T replaced with U.

  • template Reverse (TList...)
  • Returns a Tuple with the types from TList declared in reverse order.

  • template Unique (TList...)
  • Returns a Tuple with all duplicate types removed.

  • template MostDerived (T,TList...)
  • Returns the type from TList that is the most derived from T. If no such type is found then T will be returned.

  • template DerivedToFront (TList...)
  • Returns a Tuple with the types sorted so that the most derived types are ordered before the remaining types.

    Copyright (C) 2005-2006 Sean Kelly. All rights reserved. :: page rendered by CandyDoc