Когда возникают сомнения в какой-нибудь конструкции языка C++, её лучше проверить не в одном, а в нескольких компиляторах. Только тогда можно понять вы не правы или компилятор. Но народ обычно проверять в других компиляторах ленится. Или проверяют на тех компиляторах, что случайно оказались под рукой, часто это компиляторы из одной линейки - VC++6.0 и VC++7.1, например.
Однако, есть возможность скомпилять небольшой кусок кода в онлайне. Вот тут: Comeau online. Получается плюс один к компилятор к тому, что у вас уже есть (если только вы не пользуетесь Comeau). К тому же Comeau знаменит тем, что очень щепетильно относится к Стандарту. Также Comeau online может пригодится, когда хочется проверить код с компьютера, на котором компилятора не оказалось, или с мобильного устройства. В дороге где-нибудь, например.
Updated 01.05.2008
В комментариях Симон Атанасян привел еще одну хорошую ссылку для проверки кода на сайте Dinkum Ware.
Updated 04.05.2008
Qbit дал ссылку на еще один компилятор. Это разработка отечественной компании Интерстрон.
Мой код не захотел компилироваться и тут:
ОтветитьУдалитьnamespace my
{
struct MMM
{
int x;
};
template<class T>
void func(MMM * m) { m->x = 5;}
}
void gg()
{
my::MMM m;
func<int>(&m);
}
Тут func должна вызываться по неймспейсу аргумента, т.е. из my, но этого не происходит. Как и в компиляторах VC++ и GNU C++.
Jonathan Caves из Visual C++ Compiler Team объяснил почему этого не происходит, хотя я не согласен с его аргументами.
Жалко нельзя загружать сразу несколько файлов, а так очень мало можно проверить, если только небольшие куски кода и все.
ОтветитьУдалитьСпасибо за ссылку.
ОтветитьУдалитьИ все же мне хочется верить, что большинство имеет на машине более чем версии VC, как минимум еще, что-то из MinGW / Borland C++. Хотя более показательно, все же собрать на *nix/gcc, а может и на оборот, все зависит, кто под чем работает :о)
Удобная штука, сам пользуюсь. А на сайте Dinkum Ware можно проверить код by EDG, Visual 4-8 и MINGW (порт g++ под винды). Причем, не только компиляцию, но и линковку.
ОтветитьУдалитьВот вам ещё один онлайн-компилятор:
ОтветитьУдалитьhttp://www.interstron.ru/text.asp?id=2102
Это отечественный компилятор, от самого Евгения Зуева.
Хм, странно... компайлер от последнего обновление не знает хидера conio.h...
ОтветитьУдалитьЭтот комментарий был удален автором.
ОтветитьУдалить>> для проверки кода на сайте Dinkum Ware.
ОтветитьУдалитья бы не стал "проверять" компилером от этой конторы.
В QNX (ось такая,microKernel) жил был вполне нормальный компилятор GCC 2.95.3. Жил этот компилятор до версии QNX 6.1,а с 6.2 заменен на то же GCC, но стандартная билиотека была заменена на "поделие" этой фирмы.
Проблемы с компиляцией,какие-то запутки с пространствами имен.
ЗЫ на формуе qnx.org.ru фирму |вежливо| называли DRINKUM WARE
Еще один онлайн компилятор http://ideone.com
ОтветитьУдалитьСамое интересное в нем это поддержка около 40 языков.
Плюсы компилит с помощью gcc-4.3.4.