On Sunday, 26 November 2023 at 15:35:39 UTC, Adam D Ruppe wrote:
On Thursday, 23 November 2023 at 16:33:52 UTC, DLearner wrote:
string mxnTest(string strVar1, string strVar2) {
   return `(int Var1, int Var2) {
      if (Var1 > Var2) {
         return true;
      } else {
         return false;
      }
   }(` ~ strVar1 ~ `,` ~ strVar2 ~ `)`;
}
```

This function exists at runtime. Another module could, in theory, import it and call it. A shared library could, in theory, export it. You used it at compile time, but the function is available for other users too.

betterC doesn't know the difference between theory and practice.

From your comments and others on this thread:

```
// Test harness

   extern(C) void main() {
      import core.stdc.stdio : printf;
      import testmod;

      bool FirstVarGreater;
      int Var_A = 6;
      int Var_B = 5;


      FirstVarGreater = mixin(mxnTest("Var_A", "Var_B"));
      if (FirstVarGreater) {
            printf("First Var is Greater\n");
      } else {
            printf("First Var is not Greater\n");
      }
   }

// testmod

string mxnTest(string strVar1, string strVar2) {

   if (__ctfe) {
      return `(int Var1, int Var2) {
         if (Var1 > Var2) {
            return true;
         } else {
            return false;
         }
      }(` ~ strVar1 ~ `,` ~ strVar2 ~ `)`;
   } else {
      return ``;
   }
}
```

Works, avoid templates + -betterC compliant, but to me clumsy.

Reply via email to