Function std.range.primitives.put
Outputs e to r. The exact effect is dependent upon the two
types. Several cases are accepted, as described below. The code snippets
are attempted in order, and the first to compile "wins" and gets
evaluated.
						
				void put(R, E)
				(
				
				  ref R r,
				
				  E e
				
				);
						
					
				In this table "doPut" is a method that places e into r, using the
correct primitive: r if R defines put, r
if r is an input range (followed by r), or r(e)
otherwise.
| Code Snippet | Scenario | 
|---|---|
| r | Rspecifically accepts anE. | 
| r | Rspecifically accepts anE[]. | 
| r | Raccepts some form of string or character. put will
            transcode the charactereaccordingly. | 
| for (; !e | Copying range EintoR. | 
Tip
put should not be used "UFCS-style", e.g. r.
Doing this may call R directly, by-passing any transformation
feature provided by Range. put(r, e) is prefered.
Example
When an output range's put method only accepts elements of type
 T, use the global put to handle outputting a T[] to the range
 or vice-versa.
import stdExample
put treats dynamic arrays as array slices, and will call popFront
 on the slice after an element has been copied.
 Be sure to save the position of the array before calling put.
int[] a = [1, 2, 3], b = [10, 20];
auto c = a;
put(a, b);
writeln(c); // [10, 20, 3]
// at this point, a was advanced twice, so it only contains
// its last element while c represents the whole array
writeln(a); // [3]
Example
It's also possible to put any width strings or characters into narrow
 strings -- put does the conversion for you.
 Note that putting the same width character as the target buffer type is
 nothrow, but transcoding can throw a UTFException.
// the elements must be mutable, so using string or const(char)[]
// won't compile
char[] s1 = new char[13];
auto r1 = s1;
put(r1, "Hello, World!"w);
writeln(s1); // "Hello, World!"
Authors
Andrei Alexandrescu, David Simcha, and Jonathan M Davis. Credit for some of the ideas in building this module goes to Leonardo Maffi.