LINUX.ORG.RU

Новые версии компиляторов Intel C++ 7.0 и Intel Fortran 7.0 под Windows и Linux


0

1

Только что прочёл на iXBT эту новость:
http://www.ixbt.com/news/hard/archive...
Смотрите информацию от самой Intel по линку в подробностях.
Также можно попробовать 30 дневную версию каждого из компиляторов:
http://www.intel.com/software/product...

Самое интересное, список возможностей и требований к системе каждого
из них, можно узнать тут:
Intel C++ Compiler 7.0 for Linux
http://www.intel.com/software/product...
Intel C++ Compiler 7.0 for Windows
http://www.intel.com/software/product...
Intel Fortran Compiler 7.0 for Linux
http://www.intel.com/software/product...
Intel Fortran Compiler 7.0 for Windows
http://www.intel.com/software/product...

>>> Подробности

anonymous

Проверено: maxcom

Re: Новые версии компиляторов Intel C++ 7.0 и Intel Fortran 7.0 под Windows и Linux

Сорри, я не большой спец по ОО: а чем pure virtual отличается от просто virtual? Определение дайте, пожалуйста, хоть сколько-нибудь строгое.

gregbg ()

Re: Новые версии компиляторов Intel C++ 7.0 и Intel Fortran 7.0 под Windows и Linux

2nIKs, вы определенно идиот, функция обязана иметь тело тогда, когда оно кому-нибудь нужно (где-то вызывается) или вам надо перечень?

PS. в том и прелесть С++, что то, что тебе не нужно тебе не мешает.

PPS. а вот про "разное поведение при ошибках тра-ля-ля" это идиотизм, это не ошибка компилятора, это не ошибка языка, это ваша ошибка, а, т.к. в стандарте прямо сказано, что поведение не определено, то вот оно и разное в разных случаях (может быть разное от запуска к запуску программы)

вас-же не возмущает, что int i; f(i); это ошибка, причем такого-же рода, и указатели тут ни при чем, это простое "использование до присвоения значения" это очевидно можно получить во всех языках, и максимум, что может сделать компилятор, это выдать предупреждение, что возможно использование, до без инициализации/присваивания.

хотя по-моему вы все прекрасно поняли, что ошибка в данном случае у вас в днк и просто разводите тупой флейм. отвечать вам больше не буду. бессмысленно.

anonymous ()

Re: Re: Новые версии компиляторов Intel C++ 7.0 и Intel Fortran 7.0 под Windows и Linux

>> 1) функция вызываеться в обязательном порядке, >> 2) я знаю только одну такую - это деструктор.

Требуется даже и без явного вызова деструктора.

class A { public: A() {} virtual ~A() = 0; };

A::~A() {} // !!!

class B : public A { };

main() { B *b = new B; }

P.S. Господа анонимусы: все-таки регистрация - вещь удобная.

-------------------------------------------------------------------- P.S.2. А вот еще вопросик. Что в наследуемости поддерживает C#, а C++ и Java не поддерживает? --------------------------------------------------------------------

NikS ()

Re: Re: Новые версии компиляторов Intel C++ 7.0 и Intel Fortran 7.0 под Windows и Linux

>> 1) функция вызываеться в обязательном порядке, >> 2) я знаю только одну такую - это деструктор.

Требуется даже и без явного вызова деструктора.

class A { public: A() {} virtual ~A() = 0; };

A::~A() {} // !!!

class B : public A { };

main() { B *b = new B; }

P.S. Господа анонимусы: все-таки регистрация - вещь удобная.

-------------------------------------------------------------------- P.S.2. А вот еще вопросик. Что в наследуемости поддерживает C#, а C++ и Java не поддерживает? --------------------------------------------------------------------

NikS ()

Re: Re: Новые версии компиляторов Intel C++ 7.0 и Intel Fortran 7.0 под Windows и Linux

>> вы определенно идиот

Вопрос теперь такой а может ли чистая виртуальная функция не иметь тела? Так кто идиот?

NikS ()

Re: Новые версии компиляторов Intel C++ 7.0 и Intel Fortran 7.0 под Windows и Linux

безусловно удобная, но в данном случае бессмысленная, мне от вас ничего не нужно. деструкторы вообще почти никто(кроме писателей распределителей памяти) явно не вызывает, и что это меняет? все равно вызывается явно/неявно какая разница в данном случае?

PS. на C# мне всеравно. совсем. ибо нет шаблонов (про множественное наследование не знаю)

PPS. и не надо людям экзамен устраивать с умным видом если сами нихрена не знаете про С++ навскидку: шаблоны, шаблоны-члены-шаблонов(auto_ptr), виртуальные/невиртуальные базовые классы.

anonymous ()

Re: Новые версии компиляторов Intel C++ 7.0 и Intel Fortran 7.0 под Windows и Linux

Дорогой NikS, при всем уважении к тебе, но ты перевел разговор из pure C на C++. Это два достаточно разных языка. Тот ляп, что ты допустил раннем постем никак твоими глубокими познаниями из ОО не компенсируешь, к сожалению.

gregbg ()

Re: Новые версии компиляторов Intel C++ 7.0 и Intel Fortran 7.0 под Windows и Linux

to NikS

Разве я писал об явном вызове деструктора ? Просто всегда вызываються все деструкторы по иерархии и если там встретиться абстрактная функция, то результат понятен.

Каксательно данного примера - это из серии тех вещей, которые не стоит делать никогда. Просто фокусы, которые демонстрируються для показа недостатков языка С++ :-).

По поводу последнего вопроса ничего не могу сказать - не знаком с С#.

P.S. Воспользовался вашим советом о регистрации.

Gavrila ()

Re: Новые версии компиляторов Intel C++ 7.0 и Intel Fortran 7.0 под Windows и Linux

В раннем посте, то бишь ;)

gregbg ()

Re: Новые версии компиляторов Intel C++ 7.0 и Intel Fortran 7.0 под Windows и Linux

очевидно может, и большинство их не имеет, за ненадобностью.

anonymous ()

Re: Новые версии компиляторов Intel C++ 7.0 и Intel Fortran 7.0 под Windows и Linux

И еще насчет ICC-

Скомпилированный им LAPACK (Linear Algebra PACKage) работает ровно вдвое быстрее по сравнению с gcc.

gregbg ()

Re: Re: Re: Новые версии компиляторов Intel C++ 7.0 и Intel Fortran 7.0 под Windows и Linux

>> 1) функция вызываеться в обязательном порядке, >> 2) я знаю только одну такую - это деструктор.

Если бы Вы еще показали практическую ценность сей конструкции, да так, чтобы Ваша фирма получила несомненный benefit от ее использования, я был бы Вам очень благодарен. Знаете, ни одному нормальному человеку сделать деструктор = 0 в голову не прийдет.

anonymous ()

Re: Новые версии компиляторов Intel C++ 7.0 и Intel Fortran 7.0 под Windows и Linux

to anonymous

Да никакой практической пользы :-). Единственное, что я могу придумать, это запрет на создание экземпляров класса. Пришлось бы объявлять dummy функции абстрактную, а так можно использовать для этого деструктор. Но ещё раз повторю, если я вижу подобные вещи в коде работающих со мной программистов, начинаю очень злиться и принимать меры :-).

Gavrila ()

Re: Re: Re: Новые версии компиляторов Intel C++ 7.0 и Intel Fortran 7.0 под Windows и Linux

<Требуется даже и без явного вызова деструктора. >

Неверно. Открываем стандарт и смотрим пункт 10.4
"A pure virtual function need to be defined only if explicitly called with the qualifier-id syntax"
Смотрим пункт 3.8 и читаем
"if there is no explicit call to the destructor or if a delete-expression is not used to release the storage, the destructor shall not be implicitly called and any program that depends on the side effects produced by the destructor has undefined behavior".

Думаем, и понимаем, что вы неправы.

AC ()

Re: Новые версии компиляторов Intel C++ 7.0 и Intel Fortran 7.0 под Windows и Linux

да ну этого дипломированного жабиста. горбатого могила исправит. и чем меньше такие люди будут писать кода(особенно C/C++), тем меньше будет кривого кода на C/C++ что, по-моему неплохо. чего ждать от человека, который вместо того чтобы потратить немного баксов на книжку по интересующему его вопросу несет эти баксы в контору которая тестирует засохший брэйн до умопомрачения а потом дает бумажку вместо знаний/понимания.

anonymous ()

Re: Re: Новые версии компиляторов Intel C++ 7.0 и Intel Fortran 7.0 под Windows и Linux

На самом деле это Brainbench вопросик (может попасться). Сначала спросят типа "может ли чистая виртуальная функция иметь тело?". А потом "А в каких случаях PVMF ОБЯЗАНА иметь тело"

#include <iostream> using namespace std;

class A { public: A() {} void virtual f() = 0; };

void A::f() { cout << "PVMF" << endl;}

class B : public A { public: void f(); };

void B::f() { cout << "F" << endl; }

main() { B *b = new B; b->f(); return 0; }

Ну а теперь, специалист по вызовам PVMF, попытайтесь вызовать PVMF. ;))

A *a = new A; // свалитесь - класс то абстрактный!

Тут уж компайлер Вас пошлет далеко и надолго.

Так что

#include <iostream> using namespace std;

class A { public: // void virtual f() = 0; // класс будет конкретным void virtual f(); };

void A::f() { cout << "AF" << endl;}

class B : public A { public: void f(); };

void B::f() { cout << "F" << endl; }

main() { B *b = new B; b->f();

A *a = new A; a->f();

return 0; }

Создать инстанцию класса с PVMF нельзя, не говоря уж об вызове PVMF.

NikS ()

Re: Re: Новые версии компиляторов Intel C++ 7.0 и Intel Fortran 7.0 под Windows и Linux

>to anonymous Сарказм здесь неуместен.

Блин, неужели не понятно, NiKS манипулятор от Бога, с такими людьми нет смысла разговаривать серьезно - ты ему про Фому, а он про Ерему. Вообще, с какого рожна я обязан ему отвечать про этот самый финт ушами, может я C++ вообще не знаю. Я на брайнбенче мест не занимал.
Я ответил честно: в моей практике такого не встречалось, использовать рискованные конструкции я не люблю.
Пускай он теперь покажет пример того, как это можно на практике использовать... Или тоже в интернете вычитал.

P.S. Но тему он перевел классно. Опять-таки про искусство надувать щеки.

anonymous ()

Re: Новые версии компиляторов Intel C++ 7.0 и Intel Fortran 7.0 под Windows и Linux

>> ни одному нормальному человеку сделать деструктор = 0 в голову не прийдет

А в каком пакете использовались PVMF?

NikS ()

Re: Новые версии компиляторов Intel C++ 7.0 и Intel Fortran 7.0 под Windows и Linux

насчет C#, ты имеешь ввиду abstract классы ?

anonymous ()

Re: Re: Re: Re: Новые версии компиляторов Intel C++ 7.0 и Intel Fortran 7.0 под Windows и Linux

>> Думаем, и понимаем, что вы неправы

Думать вредно. Примерчики свои я положил ни куда нибудь, а в текст Форума. g++ у Вас на машине - и вперед. Хорошо?

Я же все тестирую, а потом clipboard в форум.

NikS ()

Re: Новые версии компиляторов Intel C++ 7.0 и Intel Fortran 7.0 под Windows и Linux

Одно время я сталкивался близко с IBM, это же вообще другой мир. Вы NikS живёте в нём и пытаетесь нам преподнести свою идеологию. Занятие абсолютно бессмысленное. Несмотря на все ваши заявления огромное количество софта пишеться на С/С++ и так будет ещё очень долго.

Gavrila ()

Re: Re: Новые версии компиляторов Intel C++ 7.0 и Intel Fortran 7.0 под Windows и Linux

>> насчет C#, ты имеешь ввиду abstract классы

Нет, циркулярную наследуемость (у Мигеля на www.go-mono.org даже примерчик был. Кстати, это было в IBM VisualAge for C++ 4.0 - к счастью продукт загнулся)

NikS ()

Re: Re: Новые версии компиляторов Intel C++ 7.0 и Intel Fortran 7.0 под Windows и Linux

>> вообще другой мир

Я не сотрудник IBM. Вы умрете со скуки, если будете работать в штате IBM EE/A на Бахрушина, 18. Здесь хоть пофлеймить можно. Но Вы правы - я сейчас из одного проекта постораюсь вышибить C++ и заменить его на Sun J2EE или IBM WebSphere.

NikS ()

Re: Re: Новые версии компиляторов Intel C++ 7.0 и Intel Fortran 7.0 под Windows и Linux

>Да никакой практической пользы :-). Единственное, что я могу придумать, это запрет на создание экземпляров класса.

Вообще-то для этого куда проще использовать protected конструктор.

anonymous ()

Re: Новые версии компиляторов Intel C++ 7.0 и Intel Fortran 7.0 под Windows и Linux

"циркулярную наследуемость" чего ? приведи будь добр англиское название сего термина

anonymous ()

Re: Новые версии компиляторов Intel C++ 7.0 и Intel Fortran 7.0 под Windows и Linux

nIKs: опять тупим? детский сад прямо.

struct A { virtual void f(void)=0; };

void A::f(void) {std::cout << "A";}

struct B : public A { void f(void); };

void B::f(void) {A::f(); std::cout << "B"; }

int main(void) {B *b=new B; b->f(); return 0;}

то-есть таки можно вызвать A::f если у нее есть тело.

anonymous ()

Re: Re: Re: Re: Re: Новые версии компиляторов Intel C++ 7.0 и Intel Fortran 7.0 под Windows и Linux

<Думать вредно. Примерчики свои я положил ни куда нибудь, а в текст Форума. g++ у Вас на машине - и вперед. Хорошо? >

Нет, не хорошо. g++ -- не мерило стандарта, а его _реализация_. А что написано в стандарте, я вам привел. Если g++ ведет себя не так -- это несовместимость со стандартом. Все.

Кстати, может и вам вопросик задать?
#include <iostream>
struct A {
virtual void f() {std::cout << "f" << std::end;}
int i = 0;
};

struct B: public A {
void f() = 0;
};

struct C: public B {
void f() const {std::cout << "f" << ":" << i << std::endl;
};

void my_func()
{
A* pa = new C;
pa -> f();
}

Что произойдет в строчке pa -> f(); ?

AC ()

Re: Re: Re: Новые версии компиляторов Intel C++ 7.0 и Intel Fortran 7.0 под Windows и Linux

>> protected конструктор

А есть ли в C++ интерфейсы, как в Java? (Вопрос риторическо-наводящий, дабы меня ни в чем не обвинили)

NikS ()

Re: Re: Re: Re: Re: Re: Новые версии компиляторов Intel C++ 7.0 и Intel Fortran 7.0 под Windows и Linux

да, и во избежание тупых придирок
void f() const {std::cout << "f" << ":" << i << std::endl;

не хватает закрывающей скобки. То есть она там должна быть.

AC ()

Re: Новые версии компиляторов Intel C++ 7.0 и Intel Fortran 7.0 под Windows и Linux

Вот взял и стянул Фортран и смотрю внутрь этого тара. Во-первых, 2/3 из файла мне не нужны, понеже не имею я пока Итаниума, к моему сожалению, ессессено. Во-вторых, при операциях с ихним рпм, начинаются матюки на нарушение сумм и т.д. Может кто-то уже туда трояна запихнул?

anonymous ()

Re: Re: Re: Re: Re: Re: Новые версии компиляторов Intel C++ 7.0 и Intel Fortran 7.0 под Windows и Linux

>> Что произойдет

Простите, Вы утверждаете, что данный пример откомпилируется? Я Вас правильно понял, чтобы не было недоразумений?

NikS ()

Re: Новые версии компиляторов Intel C++ 7.0 и Intel Fortran 7.0 под Windows и Linux

Никс, урод, задолбал нах уже! Если ты утверждаешь, что Java-компилятор отлавливает неопределенные переменные, то ты глубоко ошибаешься. Вот ЭТОТ код javac пропускает? Пропускает. Хотя, в принципе, ситуация совпадает с твоим C'шным примером фактически 1-в-1. Статическая переменная явно не определена? Не определена. Компиляция прошла? Прошла. Все, разговор закончен. И не надо "ля-ля", что "я так не пишу" - ни один нормальный человек тоже не пишет на С так, как в твоем примере.
public class aa {
static int i;
public static void main(String p[]) {
System.out.println("i="+i);
}
}
P.S.: я, вообще-то, тоже на баринобенче имел "мастера" по Java - еще в 2000 году, так что это - не показатель

anonymous ()

Re: Re: Re: Re: Re: Новые версии компиляторов Intel C++ 7.0 и Intel Fortran 7.0 под Windows и Linux

>> Они отличаются от жавских

Спрашиваю Вас максимально осторожно: что Вы имеете в виду под словом "отличаются"? (Сейчас прийдем потихонечку к ромбовидной наследуемости в Java.)

NikS ()

Re: Re: Re: Re: Re: Re: Re: Новые версии компиляторов Intel C++ 7.0 и Intel Fortran 7.0 под Windows и Linux

<Простите, Вы утверждаете, что данный пример откомпилируется? Я Вас правильно понял, чтобы не было недоразумений? >

заменяйте в классе А int i = 10; на const int i = 10; и думайте.
надеюсь, вы достаточно честны, чтобы ответить _без_ компилятора.

AC ()

Re: Re: Новые версии компиляторов Intel C++ 7.0 и Intel Fortran 7.0 под Windows и Linux

>> Все, разговор закончен

А что такое, мистер Brainbench wrapper classes? Зачем тогда еще и они нужны? (Дали бы id - посмотрели бы, подивились бы на Ваш резалт)

>> С так, как в твоем примере

Так все же в какой библиотеке использовались PVMF? (Под OS/2 еще была, не IBM.)

NikS ()

Re: Новые версии компиляторов Intel C++ 7.0 и Intel Fortran 7.0 под Windows и Linux

> А есть ли в C++ интерфейсы, как в Java? (Вопрос риторическо-наводящий, дабы меня ни в чем не обвинили)

Встречный вопрос. А есть ли в Джава шаблоны, множественное наследование и переопределение операций ?

Gavrila ()

Re: Новые версии компиляторов Intel C++ 7.0 и Intel Fortran 7.0 под Windows и Linux

Уважаемый NiKS. Вот Ваши два высказывания:

"а самом деле, когда Вы дорастете до моего сороколетнего возраста, то поймете, что "A customer needs a benifit, not features". И то что кто то занял первое место на BBench по C++, еще не значит, что он принесет фирме прибыль. Ценят за умение сдать работоспособную программу в срок (адаптивность, усердие, умение работать в команде), а не за знание, скажем, десяти языков программирования, включая диалекты C++ gcc 3.20 и icc 7."

">> Так что мой ответ - _практически_ никогда.
А теперь правильный ответ: "Если эта PVMF является деструктором". Пример нужен?

PS На каждого мудреца довольно простоты."

Либо пример практического использования в студию, либо таки "бла-бла-бла"...

anonymous ()

Re: Re: Re: Re: Re: Re: Новые версии компиляторов Intel C++ 7.0 и Intel Fortran 7.0 под Windows и Linux

< что Вы имеете в виду под словом "отличаются"? >

например то, что интерфейсы в джаве, в отличие от абстрактных классов в плюсах, не могут иметь неконстантных членов.

AC ()

Re: Новые версии компиляторов Intel C++ 7.0 и Intel Fortran 7.0 под Windows и Linux

>> А есть ли в Джава шаблоны, множественное наследование и >> переопределение операций ?

Хороший вопрос!

1. Шаблоны - нет. (Кстати, завтра, на трезвую голову задам красивый вопросик про шаблоны в C++.)

2. Множественное наследование. Есть (AC радостно потирает руки - сейчас я его поймал! - но, ай!...) не для классов, а для интерфейсов.

3. переопределение операций - только для конката строк.

P.S. Java не ориентируется на features, а ориентируется на benifit.

NikS ()

Re: Новые версии компиляторов Intel C++ 7.0 и Intel Fortran 7.0 под Windows и Linux

to NikS

Вы неправильно определили мистера BrainBench :-). К сожалению я не помню id, это было давно, тогда ещё эта компания называлась ТекМетрикс. Не уверен, что мои результаты сохранились - если мне не изменяет память, то это был год 98-99 и тест по С++ был намного сложнее нынешнего. Однажды я помогал получить мастера своему товарищу :-) Это к тому, чего стоят эти сертификаты :-).

Gavrila ()

Re: Re: Re: Новые версии компиляторов Intel C++ 7.0 и Intel Fortran 7.0 под Windows и Linux

>Так все же в какой библиотеке использовались PVMF?

Вопрос уровня: в какой библиотеке использовался оператор присваивания? (Под DOS еще была, не MS.) Ась? Ответ в студию, жду десять минут...

anonymous ()

Re: Новые версии компиляторов Intel C++ 7.0 и Intel Fortran 7.0 под Windows и Linux

ау товарищ всезнайка, так что такое "циркулярную наследуемость". Можно все таки узнать оригинальный термин. Приведенная ссылка ведет в никуда, это все равно что дать ссылку на google :)

anonymous ()

Re: Новые версии компиляторов Intel C++ 7.0 и Intel Fortran 7.0 под Windows и Linux

молодец гаврила :) а про pure virtual niks усох определенно, сразу тему стал менять как понял что опять облажался (см пример у anonymous ([96]*) (2002-12-05 18:50:22.821) )

anonymous ()

Re: Re: Re: Re: Re: Re: Re: Re: Новые версии компиляторов Intel C++ 7.0 и Intel Fortran 7.0 под Windows и Linux

>> А int i = 10; на const int i = 10

Ну пример, конечно, не рабочий. Ваша программа просто работать не будет - но переходить на личности и радоваться Вашим ошибкам я не буду. Договорились?

NikS ()

Re: Новые версии компиляторов Intel C++ 7.0 и Intel Fortran 7.0 под Windows и Linux

Ты никс, скажи, чудила, почему мой jav'ский пример компилируется? И чем такая "компилируемость" и падучесть в JRE лучше, чем падение с export MALLOC_CHECK_=2 или с информацией от EFence? Анонимус "aa.java" :-)

anonymous ()

Re: Re: Re: Re: Re: Re: Re: Re: Новые версии компиляторов Intel C++ 7.0 и Intel Fortran 7.0 под Windows и Linux

>> А int i = 10; на const int i = 10

Ну пример, конечно, не рабочий. Ваша программа просто работать не будет - но переходить на личности и радоваться Вашим ошибкам я не буду. Договорились?

NikS ()

Re: Новые версии компиляторов Intel C++ 7.0 и Intel Fortran 7.0 под Windows и Linux

Да уж! Вот такие идиоты гордо называют себя профессионалами :(
Обидно однако...

anonymous ()

Re: Новые версии компиляторов Intel C++ 7.0 и Intel Fortran 7.0 под Windows и Linux

>> такие идиоты

Вас задело, то что Вы не смогли ответить на вопрос про виртуальные функции? Так значит Вы в эпоху IBM OS/2 и Borland OWL для него пешком под стол ходили. Кстати, юноша, мне интересно спорить с AC, хотя я стараюсь его максимально завести, с Gavrila, но не с Вами - ибо ничего конструктивного от Вас я не наблюдаю. Так что я просто буду игнорировать анонимусов, хорошо?

NikS ()

Re: Новые версии компиляторов Intel C++ 7.0 и Intel Fortran 7.0 под Windows и Linux

2niks: >> А int i = 10; на const int i = 10

Ну пример, конечно, не рабочий. Ваша программа просто работать не будет - но переходить на личности и радоваться Вашим ошибкам я не буду. Договорились?

а почему не работает знаете? жду ответа 5 минут :)

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