This is the mail archive of the gcc-help@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: static_assert problem


On Sun, 18 Mar 2012, MichaÅ Walenciak wrote:

Hi all

here i have a simple example:

template <int a, int c>
void foo()
{
	if (a > 0)
	  static_assert(c != 0, "fdfd");

}


void bar() { foo<0, 0>(); }


when i compile it like: g++ a.cpp -std=c++0x -c


i get:
a.cpp: In function âvoid foo() [with int a = 0, int c = 0]â:
a.cpp:13:12:   instantiated from here
a.cpp:6:4: error: static assertion failed: "fdfd"

is it right? 'a' variable is not > 0, so static_assert should not be checked
(imho)

Yes it should. It is a static assertion, whereas "if" is a pure runtime object. There are some people trying to introduce a static version of "if", but that's not in C++11.


--
Marc Glisse


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]