Hello, Cyberax, you wrote:
> А можно что-нибудь посущественнее найти, чем поведение одного > _НЕСТАНДАРТНОГО_ макроса?
Существенным здесь было определение двух одноименных переменных i в циклах for в
одном блоке:
>
Здравствуйте, gbt, Вы писали:
>> А можно что-нибудь посущественнее найти, чем поведение одного >> _НЕСТАНДАРТНОГО_ макроса? gbt>Существенным здесь было определение двух одноименных переменных i в циклах for в gbt>одном блоке:
Насколько я помню, когда были первые версии VC стандарт еще жестко не определял видимость переменных внутри блока.
"For every complex problem, there is a solution that is simple, neat,
and wrong."
gbt wrote:
>> А можно что-нибудь посущественнее найти, чем поведение одного >> _НЕСТАНДАРТНОГО_ макроса? > Существенным здесь было определение двух одноименных переменных i в > циклах for в > одном блоке
#define for if(0);else for
И будет вам счастье....
Это не было ошибкой в 98 году, так как Стандарта тогда еще тоже не было.
Hello, AndrewJD, you wrote:
> Насколько я помню, когда были первые версии VC стандарт еще жестко не > определял видимость переменных внутри блока.
Читаем
C++ Standard Noncompliance Issues with Visual C++ 6.0
ID: Q243451
...
Scope of variable declared in the for loop initialization (6.5.3) not as per standard. Q167748 PRB: Variable Scope in for-statement Extends Beyond Loop...
SYMPTOMS
If you declare the same variable in two different for-statements, the following error may appear:
CAUSE
The scope of a variable declared in the initialization part of a "for" loop is given local scope, as if it had been declared immediately prior to the for-statement
gbt wrote:
>> Насколько я помню, когда были первые версии VC стандарт еще жестко не >> определял видимость переменных внутри блока. > Читаем > *C++ Standard Noncompliance Issues with Visual C++ 6.0*
Еще раз: когда VC6 разрабатывался — Стандарта еще _НЕ_ _БЫЛО_. Более
того, Стандарт появился только через полгода после релиза VC6. Для
Стандарта 92 года поведение VC6 — правильно. Ну и это неправильное
поведение фиксится простым макросом.
Найдите, наконец-то, настоящие недостатки, а не мелкие придирки.
Здравствуйте, Cyberax, Вы писали:
>> Читаем >> *C++ Standard Noncompliance Issues with Visual C++ 6.0* C>Еще раз: когда VC6 разрабатывался — Стандарта еще _НЕ_ _БЫЛО_.
К томуже лично мне важнее стабильность back-end'а ибо странности front-end'а вылавливаются на этапе компиляции, а вот глюки кодогенератора которые к томуже еще и зависят от фазы луны куда страшнее.
... << RSDN@Home 1.1.4 beta 6a rev. 436>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Beginning with Visual C++ 6.0, when statically linking with a DLL, the linker provides options to delay load the DLL until the program calls a function in that DLL.
Более того, подозреваю, что это в Борланде было "срисовано" с VC++6.
Posted via RSDN NNTP Server 2.0 beta
Легче одурачить людей, чем убедить их в том, что они одурачены. — Марк Твен
Здравствуйте, espider, Вы писали:
>> Здравствуйте, espider, Вы писали: >> >> >> E>в VC7 откомпилил >> >> зачем мне VC2222 если сравнение идет про конкретные среды vc6 И bcb6 >> >> выйдет BCB.NET в ноябре тогда и сравнивать надо. E>Ну если и VC6, возможно ли на bcb6 собрать exe (dll) размером не более 3 kb без CRTL. В VC6 возможно, для bcb6 нереально .
То что в BCB нельзя откомпилировать файл размером размером не более 3кб — это хлубокая чушь и не знание вопроса.
Я не фанат билдера и реально не считаю его лучше того же VC, но я за честность и объективность.
Обкакивать — это не красиво.
E>Попутно вопрос, почему bcb6 передает указатель this через стек, а не как vc6 через eax и что из них правельнее, то есть ближе к стандарту (ansi)? E>P.S.: Стоит отметить, что vc7 в этой части пошел по стопам bcb6
Раз понел по стопам, значит инженеры Borland были правы, сделав передачу через стек.
Re[12]: Сравнение компиляторов
От:
Аноним
Дата:
27.07.05 05:26
Оценка:
Здравствуйте, Cyberax, Вы писали:
C>Найдите, наконец-то, настоящие недостатки, а не мелкие придирки.
Любой чих с шаблонами
#include <iostream>
template<int i> void f() { std::cout << i << std::endl; }
int main( int argc, char* argv[] )
{
f<1>();
f<2>();
return 0;
}
> E>Ну если и VC6, возможно ли на bcb6 собрать exe (dll) размером не более 3 kb без CRTL. В VC6 возможно, для bcb6 нереально . > > То что в BCB нельзя откомпилировать файл размером размером не более 3кб — это хлубокая чушь и не знание вопроса. > Я не фанат билдера и реально не считаю его лучше того же VC, но я за честность и объективность. > Обкакивать — это не красиво.
Мда... Не знание вопроса скорее с вашей стороны. Даже если вы и соберете бесполезную пустышку в bcb6 ее размер будет около 7к (минимум что смог получить), НО это с привязкой к динамик RTL (cc3260.dll) рамером ~1.5Mb!!! Если же собирать без RTL (в статике), то она автоматом линкуется к модулю и тут уж рзмер менее 50к вы неполучите. Речь идет о поддержке компилятором сборки без RTL вообще как в статике так и динамике, т.е. только WIN API и ничего лишнего.
> E>Попутно вопрос, почему bcb6 передает указатель this через стек, а не как vc6 через eax и что из них правельнее, то есть ближе к стандарту (ansi)? > E>P.S.: Стоит отметить, что vc7 в этой части пошел по стопам bcb6 > > Раз понел по стопам, значит инженеры Borland были правы, сделав передачу через стек.
Внимательней надо читать ветку. Выше меня уже поправили — в VC this передается через ECX, и ето так, проверено!
Здравствуйте, Аноним, Вы писали:
А>У меня vc6+sp5. Debug/Release без разницы. Пустой консольный Win32 проект. Все опции по умолчанию. Добавляю один файл main.cpp
Аналогичен до безобразия... Но все же:
1
2
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
wrote:
> C>Что я делаю не так? Компилятор vc6+sp4. > У меня vc6+sp5. Debug/Release без разницы. Пустой консольный Win32 > проект. Все опции по умолчанию. Добавляю один файл main.cpp > >2 >2 > > Подобное было не только у меня. Ещё по крайней мере у двоих знакомых > повторялось.
sp5 я ставить не хочу, так что тестировать негде.
А вообще, насчет темплейтов лучше бы поклонники Borland'а молчали в
тряпочку — в Борланде нет даже friend-темплейтов. А уж багов в
реализации шаблонов вообще куча — поищите в коде Boost'а по слову BORLAND.