On Monday, 9 October 2023 at 22:49:11 UTC, Salih Dincer wrote:
>On Monday, 9 October 2023 at 16:33:32 UTC, rempas wrote:
>I'm trying to create a series of function. There will be ten of them, and they will be called function_0
, function_1
, etc. However, in my example, "stringof" returns the character "i" itself and turns that into a string instead of getting its actual value (number).
Any ideas how I can achieve what I'm trying to achieve?
Great masters generally warn to stay away from stringof. Please do not use it as much as possible. The following code snippet will be useful to you:
alias CN = __traits(allMembers, CardinalNumbers);
static foreach(i; CN)
{
mixin(create_fn!(i[1]));
}
enum create_fn(char num) = `
auto function_`~ num ~`()
=> "Hello from function `~ num ~`!";
`;
enum CardinalNumbers
{
n0, n1, n2, n3, n4, n5, n6, n7, n8, n9
}
void main()
{
assert(function_9() == "Hello from function 9!");
}
SDB@79
If count < 10 then why not just
import std;
static foreach(c; "0123456789")
{
mixin(create_fn!(c));
}
enum create_fn(char num) = `
auto function_`~ num ~`()
=> "Hello from function `~ num ~`!";
`;
void main()
{
assert(function_9() == "Hello from function 9!");
}