LINUX.ORG.RU
ФорумTalks

[MSVC 2005]Компилерокапец


0

0

Вот на таком коде, содержащем ошибку микрософтовский компилер (8.0.50727.42) падает. На солярке gcc (3.4.6) не падает и успешно диагностирует ошибку. Другого юникса под рукой не было. Посмотрите, как жуется на 4 версии gcc


struct s1{};
struct s2{};
struct s3{};

class bug
{
public:

	template <typename T> const T & get()
	{
	    throw std::runtime_error("not specialized");
	}


	template <> const s1 & get()
	{
	    return gets1();
	}


	template <> const s2 get(const s3 & _s3);
	{
	    return gets2(_s3);
	}

	private;

	s1 locals1;
	s2 locals2;

	const s1 & gets1()
	{
	    return locals1;
	}

	const s2 & gets2(const s3 & _s3)
	{
	    return locals2;
	}

};

int main()
{
    return 0;
}


gcc 4.3 пишет что это быдлокод и не падает.

goose
()

a.cpp:16: error: explicit specialization in non-namespace scope ‘class bug’
a.cpp:22: error: explicit specialization in non-namespace scope ‘class bug’
a.cpp:23: error: expected unqualified-id before ‘{’ token
a.cpp:27: error: expected `:' before ‘;’ token
a.cpp: In member function ‘const T& bug::get()’:
a.cpp:12: error: ‘runtime_error’ is not a member of ‘std’

Joe_Bishop
()

это как бы затравочка, да?

MoRoZ
()
Ответ на: комментарий от frame

трололо ты, в коде ошибка, причем тут ассемблерные листинги. Интересно было, какие еще компилеры падают.

P1XeL
() автор топика
Ответ на: комментарий от Reset

Дык в том то и прикол, что шаблон не сложный, можно сказать элементарная конструкция, а студия упала на нем. Час рабочего времени потрачен на поиски конструкции на которой падает компилер

P1XeL
() автор топика
Ответ на: комментарий от P1XeL

и чё? можно подумать, что в случае падения gcc ты потратил бы меньше времени

Reset ★★★★★
()

Если даже и падает, то что? Можно подумать gcc никогда не падает.

smh ★★★
()
Ответ на: комментарий от P1XeL

> Час рабочего времени потрачен на поиски конструкции на которой падает компилер

И ещё часа три у тебя уйдёт на то чтоб выяснить на каких ещё компилерах оно падает.

Sherak ★☆
()

падающие компилеры. хехе, робаты обречены

MoRoZ
()
Ответ на: комментарий от lester_dev

> 2005 помнится, падал на трех строчках вроде:

А в 2002-ом javac падала от одного слова class в файле :-)

smh ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.