Re: How can I enforce an parameter to be constant know at compile time?

2018-06-12 Thread Stefan Koch via Digitalmars-d-learn

On Tuesday, 12 June 2018 at 18:27:17 UTC, Dr.No wrote:

I'd like help of compiler to check this:

consider this:

int f(int n) {
  m_n = n;
}

f(10); // ok
f(myTampleteFunction!(compileTimeParameter)); // ok
enum n = 10;
f(n); // I won't use this, but should also be ok
int x = 10;
f(x); // error
int g() { return 20; }
f(g); // error


How can I enforce that?


write a static assert :)


Re: How can I enforce an parameter to be constant know at compile time?

2018-06-12 Thread Adam D. Ruppe via Digitalmars-d-learn

On Tuesday, 12 June 2018 at 18:27:17 UTC, Dr.No wrote:

How can I enforce that?


Only way is to make it a compile time (template) param.


How can I enforce an parameter to be constant know at compile time?

2018-06-12 Thread Dr.No via Digitalmars-d-learn

I'd like help of compiler to check this:

consider this:

int f(int n) {
  m_n = n;
}

f(10); // ok
f(myTampleteFunction!(compileTimeParameter)); // ok
enum n = 10;
f(n); // I won't use this, but should also be ok
int x = 10;
f(x); // error
int g() { return 20; }
f(g); // error


How can I enforce that?