digitalmars.D.learn - How can I check if template variable parameter is iterable before
- Marcone (18/18) Feb 21 2021 import std;
- Boris Carvajal (7/25) Feb 21 2021 https://dlang.org/library/std/traits/is_iterable.html
- Marcone (6/35) Feb 21 2021 Thank you.
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]); }
Feb 21 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) { ...
Feb 21 2021
On Sunday, 21 February 2021 at 12:47:46 UTC, Boris Carvajal wrote:On Sunday, 21 February 2021 at 11:58:11 UTC, Marcone wrote:Thank you. // Function isiterable() bool isiterable(T)(T arg) nothrow {try {static if (isIterable!T){return true;} else {return false;}} catch(Throwable){return false;}}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) { ...
Feb 21 2021