possible bug in g++

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi list,

the following code does not link with g++ 4.3.2 but works with the
intel compiler version 11.0

#include <iostream>

template <int T = 5>
struct X
{
	static const int v = T*X<T-1>::v;
};

template <>
struct X<0>
{
	static const int v = 1;
};

template <typename T>
T *aa(int n)
{
	return (new T[n]);
}

int main()
{
	X<4> *b;

	std::cout << (b = aa< X<4> >(3))[1].v << std::endl; // relevant line

	delete[] b;

	return 0;
}

Also the following shorter version does not link with g++

int main()
{
	std::cout << aa< X<4> >(3)[1].v << std::endl; // relevant line

	return 0;
}

while the following version links with g++ though all versions must be
equivalent. Am I missing something?

int main()
{
	X<4> *b;

	b = aa< X<4> >(3); // relevant line
	std::cout << b[1].v << std::endl; // relevant line

	delete[] b;

	return 0;
}


Thanks for the help.

Best

Mattia


[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux