Должен ли компилироваться этот код?
#include <vector>
#include <assert.h>
class some_class
{
public :
bool method()
{
using namespace std;
for ( unsigned i = 0; i < m_values.size(); i++ )
assert( true );
vector<unsigned > qwe;
return true ;
}
private :
std::vector<unsigned > m_values;
};
int main()
{
return 0;
}
Хорошо там, где мы есть! :)
Re: Должен ли компилироваться этот код?
Единственное, <cassert>. А что, не компилится?
Of course, the code must be complete enough to compile and link .
Re[2]: Должен ли компилироваться этот код?
Здравствуйте, Lorenzo_LAMAS, Вы писали:
L_L>Единственное, <cassert>. А что, не компилится?
Compiling...
main.cpp
c:\projects\tstassert\main.cpp(16) : fatal error C1506: unrecoverable block scoping error
Build log was saved at "file://c:\projects\tstassert\Debug\BuildLog.htm"
tstassert - 1 error(s), 0 warning(s)
справка по Fatal Error C1506 из MSDN
unrecoverable block scoping error
The block was too large to compile.
Possible causes
* Mismatched curly braces
* Unusually large function or class
С cassert такая же ошибка. MSVC71
Хорошо там, где мы есть! :)
Re[3]: Должен ли компилироваться этот код?
Ты привел весь код?
Of course, the code must be complete enough to compile and link .
Re[3]: Должен ли компилироваться этот код?
Здравствуйте, FreshMeat, Вы писали:
F> F> c:\projects\tstassert\main.cpp(16) : fatal error C1506: unrecoverable block scoping error
F>
Недавно поймали у себя такое же чудо. Ошибка MSVC++7.1 Убери using namespace std;
Posted via RSDN NNTP Server 1.7 "Bedlam"
Легче одурачить людей, чем убедить их в том, что они одурачены. — Марк Твен
Re[4]: Должен ли компилироваться этот код?
Здравствуйте, Lorenzo_LAMAS, Вы писали:
L_L>Ты привел весь код?
До последней строчки
Других файлов в проекте больше нет.
Хорошо там, где мы есть! :)
Re[4]: Должен ли компилироваться этот код?
Здравствуйте, Павел Кузнецов, Вы писали:
F>> c:\projects\tstassert\main.cpp(16) : fatal error C1506: unrecoverable block scoping error
ПК>Недавно поймали у себя такое же чудо. Ошибка MSVC++7.1 Убери using namespace std;
Очень похоже. Также лечится переносом объявления вектора. А удалось точно отследить когда она возникает? Или получается единственный способ избежать проблем с директивой using, это не использовать ее вообще?
Хорошо там, где мы есть! :)
Re: Должен ли компилироваться этот код?
Похоже глюк.
Было что-то подобное с using namespace.
Попробуй выделенное. Нечего напрягать компилятор
#include <vector>
#include <cassert>
class some_class
{
public :
bool method()
{
using std::vector ;
for (unsigned i = 0; i < m_values.size(); i++)
assert(true );
vector<unsigned > qwe;
return true ;
}
private :
std:::vector<unsigned > m_values;
};
int main()
{
return 0;
}
--
aga
Posted via RSDN NNTP Server 1.7 "Bedlam"
Re[2]: Должен ли компилироваться этот код?
Здравствуйте, Андрей Галюзин, Вы писали:
АГ>Похоже глюк.
Похоже. В соседней ветке обсуждается.
АГ>Было что-то подобное с using namespace. Попробуй выделенное.
Компиляется.
АГ>Нечего напрягать компилятор
У него работа такая
Общими усилиями исходный пример был свернут до следующего...
namespace test
{
class some_class {};
}
int main()
{
for (int i = 0 ; ;) ;
using namespace test;
some_class qwe;
return 0;
}
Хорошо там, где мы есть! :)
Re[3]: Должен ли компилироваться этот код?
F> Общими усилиями исходный пример был свернут до следующего...
F> F> namespace test
F> {
F> class some_class {};
F> }
F> int main()
F> {
F> for (int i = 0 ; ;) ;
F> using namespace test;
F> some_class qwe;
F> return 0;
F> }
F>
У меня пока получилось вот это
namespace my_ns {
template <typename T>
class Vector
{
};
} // namespace my_ns
void test()
{
using namespace my_ns;
for (int i = 0; ; )
;
Vector<int > vec2;
}
Похоже к этому приводит using namespace и for с обявлением переменной до использования какого-либо имени из пространства имен.
--
aga
Posted via RSDN NNTP Server 1.7 "Bedlam"
Re[4]: Должен ли компилироваться этот код?
namespace my_ns {
typedef int Vector;
} // namespace my_ns
void test()
{
using namespace my_ns;
for (int i = 0; ; )
;
int s = sizeof (Vector);
}
--
aga
Posted via RSDN NNTP Server 1.7 "Bedlam"
Re[5]: Должен ли компилироваться этот код?
А можно вот так.
namespace xxx {}
int main()
{
using namespace xxx;
for(int i = 0;)
;
int j;
}
Re[3]: Должен ли компилироваться этот код?
От:
ssi
Дата: 30.11.03 13:19
Оценка:
+1
Здравствуйте, FreshMeat, Вы писали:
FM>Здравствуйте, Lorenzo_LAMAS, Вы писали:
L_L>>Единственное, <cassert>. А что, не компилится?
FM>FM>Compiling...
FM>main.cpp
FM>c:\projects\tstassert\main.cpp(16) : fatal error C1506: unrecoverable block scoping error
FM>Build log was saved at "file://c:\projects\tstassert\Debug\BuildLog.htm"
FM>tstassert - 1 error(s), 0 warning(s)
FM>
FM>справка по Fatal Error C1506 из MSDN
FM>FM>unrecoverable block scoping error
FM>The block was too large to compile.
FM>Possible causes
FM>* Mismatched curly braces
FM>* Unusually large function or class
FM>
FM>С cassert такая же ошибка. MSVC71
Кто мешает использовать Intel 7.1 (если оч. нравится среда .NET, то он встраивается туда), для него такой код не проблема и с шаблонами он не глючит как MSVC71?
Знающие не говорят, говорящие не знают. Лао Цзы
Пока на собственное сообщение не было ответов, его можно удалить.
Удалить