Talk About Network



Register and Login
Nick
Password
Register create new account Sign up is FREE and you can post replies, new topics, bookmark posts and more!
Recover lost password


Programming > C++ > constant-expres...
Latest [ Topics | Posts ] Archive Post A New Topic Post a Reply
<< Topic < Post Post 1 of 4 Topic 45827 of 45898
Post > Topic >>

constant-expression

by Dan Smithers <dsmithers@[EMAIL PROTECTED] > May 9, 2008 at 04:28 PM

What constitutes a constant-expression? I know that it is something that
can be determined at compile time.

I am trying to use template code and keep getting compiler errors
"error: cannot appear in a constant-expression"

template <int s>
class CFoo
{
private:
  int m_val[s];
};

struct SParams
{
  const int m_sz;
  SParams(int sz) : m_sz(sz) {;}
};

int main(int argc, char *argv[])
{
  CFoo<2> foo;

  const int sz(2);
  CFoo<sz> foo2;

  int sz2(3);
  CFoo<sz2> foo3;

  const SParams params(4);
  CFoo<params.m_sz> foo4;
}

When I compile this code I get the following output.

dwhs1@[EMAIL PROTECTED]
 g++ -o template template.cpp
template.cpp:22: error: ‘sz2’ cannot appear in a constant-expression
template.cpp:22: error: template argument 1 is invalid
template.cpp:22: error: invalid type in declaration before ‘;’ token
template.cpp: In function ‘int main(int, char**)’:
template.cpp:25: error: ‘params’ cannot appear in a
constant-expression
template.cpp:25: error: `.' cannot appear in a constant-expression
template.cpp:25: error: template argument 1 is invalid
template.cpp:25: error: invalid type in declaration before ‘;’ token

I understand that in line 22 I am using a local variable that is not
const, but on line 25 there is a const member of a const structure.

What's going on here?

thanks

dan




 4 Posts in Topic:
constant-expression
Dan Smithers <dsmither  2008-05-09 16:28:05 
Re: constant-expression
"Victor Bazarov"  2008-05-09 11:43:36 
Re: constant-expression
terminator <farid.mehr  2008-05-09 21:57:41 
Re: constant-expression
James Kanze <james.kan  2008-05-10 08:06:56 

Post A Reply:
  Go here to Signup

AddThis Feed Button


About - Advertising - Contact - Frequently Asked Questions - Privacy Policy - Terms of Use - Signup

Contact
tan12V112 Wed May 14 2:28:05 CDT 2008.