How can I check if template variable parameter is iterable before handle it?

Boris Carvajal boris2.9 at gmail.com
Sun Feb 21 12:47:46 UTC 2021


On Sunday, 21 February 2021 at 11:58:11 UTC, Marcone wrote:
> import std;
>
> void foo(T)(T bar){
> 	static if (bar.isiterable()) // Need Somethin to check if bar 
> is iterable.
> 	{
> 		// Execute it if bar is iterable.
> 		foreach (i; bar)
> 		{
>
> 		}
> 	}
> 	else {
> 		// Execute it if bar is NOT iterable.
> 	}
>
> }
>
> void main(){
> 	foo(1);
> 	foo([1, 2, 3, 4, 5]);
> }

https://dlang.org/library/std/traits/is_iterable.html

import std.traits : isIterable;

void foo(T)(T bar){
     static if (isIterable!T)
     {
...


More information about the Digitalmars-d-learn mailing list