Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 16, средняя оценка - 4.75
ExFau$t
360 / 346 / 68
Регистрация: 08.05.2012
Сообщений: 1,748
#1

Fatal error C1061: ограничение компилятора: недопустимая степень вложения блоков - C++

30.06.2014, 15:50. Просмотров 2212. Ответов 50
Метки нет (Все метки)

Здравствуйте, можно ли изменить степень вложения в свойствах компилятора или как то обойти ошибку (сокращение и изменение циклов внутри программы невозможно, все возможные слияния циклов уже произведены)?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.06.2014, 15:50
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Fatal error C1061: ограничение компилятора: недопустимая степень вложения блоков (C++):

[Linker Fatal Error] Fatal: Unable to open file 'CXGRIDVCLC6.LIB' - C++
Установил компоненты DevExpress, вроде все нормально, но при компиляции нового проекта выдает: Fatal: Unable to open file...

Error 1 fatal error C1093: API call 'ImportFile' failed '0x80070003' : ErrorMessage: - C++
// Lab7_1.cpp : main project file. #include "stdafx.h" #include <iostream> using namespace std; float y; void...

Error C2760: синтаксическая ошибка / Fatal error C1004: непредвиденное обнаружение конца файла - C++
Набыдлокодил следующее: Graph.h template<class D> class Graph { private: class Edge { private: int v1, v2;

Error C2017: недопустимая escape-последовательность - C++
#include "stdafx.h" #include "conio.h" int _tmain(int argc, _TCHAR* argv) { int fahr; for(fahr=0;fahr<=300;fahr=fahr+20) ...

Ошибки fatal error U1052 и error MSB3073 - C++
Здравствуйте! Подскажите, пожалуйста, как исправить ошибки fatal error U1052 и error MSB3073 при компиляции решения в MSVS 2012. ...

fatal error LNK1318: Unexpected PDB error; OK (0) '' - C++
При компиляции (VS2010) возникает такая ошибка: fatal error LNK1318: Unexpected PDB error; OK (0) '' как можно её исправить?

50
ExFau$t
360 / 346 / 68
Регистрация: 08.05.2012
Сообщений: 1,748
01.07.2014, 13:23  [ТС] #31
Это в шапке написано.
0
Croessmah
Ушел
Эксперт CЭксперт С++
13553 / 7704 / 872
Регистрация: 27.09.2012
Сообщений: 19,006
Записей в блоге: 3
Завершенные тесты: 1
01.07.2014, 14:18 #32
Цитата Сообщение от ExFau$t Посмотреть сообщение
если это удастся их будет невообразимо много
Раз хотите возиться с горой цилов, можете запихинуть по 50 циклов в каждую функцию, вызов 5-6 функций врядли скажется на производительности средь 250+ циклов
но всё же лучше рефакторинг сделать, ИМХО.
0
Хедин
74 / 69 / 36
Регистрация: 17.05.2014
Сообщений: 301
01.07.2014, 14:38 #33
ExFau$t, не в обиду вам будет сказано, начинающие программисты зачастую не могут оценить "можность/неможность" какого то решения. Если бы вы выложили кусок кода, вам бы смогли подсказать. Лично у меня ощущение, что как раз таки разбить на функции можно
0
Хедин
01.07.2014, 15:34
  #34

Не по теме:

ValeryS, а может еще и циклы

C++
1
2
3
4
for (int i = 0; i < n; i++)
       a[i] += 5;
for (int i = 0; i < n; i++)
    a[i] *= 4;
придется объединить :о

0
ExFau$t
360 / 346 / 68
Регистрация: 08.05.2012
Сообщений: 1,748
01.07.2014, 15:36  [ТС] #35
Поразительная находчивость, как я сразу не догадался!
0
DrOffset
7376 / 4453 / 1009
Регистрация: 30.01.2014
Сообщений: 7,304
01.07.2014, 15:51 #36

Не по теме:

Цитата Сообщение от ExFau$t Посмотреть сообщение
создавать новую для одного маленького ответа не логично.
Вот так и рождаются функции на 2к строк. Создавать функцию для новой маленькой задачи - не логично.
На самом деле логично и правильно.



Вот как это выглядит со стороны: человек спрашивает, "компилятор не пропускает функции", ему советуют "разбей на более мелкие". Человек говорит: "разбить не могу, задача не позволяет". Ну и что тут можно советовать? Информации-то больше нет никакой. Телепаты в отпусках все.

Вот у меня за все время профессиональной разработки ни разу было такого, чтобы проект нельзя было отрефакторить из-за самой задачи. Были другие причины. Например менеджмент пролюбил все сроки и до сдачи осталось 2 дня. За два дня отрефакторить нельзя, можно только поставить костыли, чтоб оно делало вид, что работает. Или код выдает таким другая контора, менять его нельзя, можно только компилить.
Т.е. в текущей ситуации или менеджмент давит и не дает рефакторить по каким-то политическим или временным причинам, либо просто лень этим заниматься. Если менеджент, то так и надо говорить, мол "код под NDA, выкладывать не могу, рефакторить не могу, т.к. сроки не позволяют, а кода много". Для быстрого обхода был совет скомпилить С++ код как С, если это конечно возможно. Еще можно попытаться сменить компилятор, если это возможно. Майкрософт не предлагает иных решений, кроме тех, что тут уже были озвучены. Пруф. Значит, ИМХО, других решений нет.
1
Хедин
74 / 69 / 36
Регистрация: 17.05.2014
Сообщений: 301
01.07.2014, 16:04 #37
ExFau$t, при текущем наборе информации вам дали ответы:
1) Разбивать на функции эти самые циклы.
2) Сокращать количество самих циклов.
Где тут кто то пальцы гнул? Иных вариантов вы не получите, потому что на данный момент это самые оптимальные способы. Хотите других решений, докажите, что они не работают. А "я точно знаю, что так не получится, давайте мне еще варианты" без кода - просто пустые необоснованные слова.
Да и не встречал я еще кода, который требовал бы 250 циклов в одной функции
0
ExFau$t
360 / 346 / 68
Регистрация: 08.05.2012
Сообщений: 1,748
01.07.2014, 16:07  [ТС] #38
Цитата Сообщение от Хедин Посмотреть сообщение
Да и не встречал я еще кода, который требовал бы 250 циклов в одной функции
Загляните в PSpice, там много забавного.
0
HighPredator
5544 / 1857 / 346
Регистрация: 10.12.2010
Сообщений: 5,479
Записей в блоге: 2
01.07.2014, 16:08 #39
ExFau$t, у вас есть три варианта развития сюжета.
1) вы тратите время, маскируете имена переменных, комментарии и т.п. в общем все чтобы скрыть конф. информацию, но сохранить логику и выкладываете это сюда, а мы уже дружно думаем, что с этим можно сделать;
2) ищете компилятор который проглотит ваши 100500 циклов;
3) забиваете болт.
Решать вам.

Остальным участникам:

Не по теме:

мужики, ну ешкин кот! имейте совесть, не все всегда были гуру елы-палы! я понимаю, что модераторы вас подраспустили, а не как я - шаг влево-вправо - карта, но все же люди и жизненные ситуации разные бывают

0
DrOffset
7376 / 4453 / 1009
Регистрация: 30.01.2014
Сообщений: 7,304
01.07.2014, 16:09 #40
Я сейчас ради интереса посмотрел списки рассылок Visual Studio, SOF и некоторые другие буржуйские форумы по этой проблеме. Иных решений, кроме тех, что тут уже были озвучены, не предлагается (например). Увеличить число блоков больше 256 каким-то ключом нельзя.
Если настаивать на этой постановке и принять все остальные варианты неподходящими, то задача решения не имеет.
0
ExFau$t
360 / 346 / 68
Регистрация: 08.05.2012
Сообщений: 1,748
01.07.2014, 16:13  [ТС] #41
Цитата Сообщение от HighPredator Посмотреть сообщение
ExFau$t, у вас есть три варианта развития сюжета.
1) вы тратите время, маскируете имена переменных, комментарии и т.п. в общем все чтобы скрыть конф. информацию, но сохранить логику и выкладываете это сюда, а мы уже дружно думаем, что с этим можно сделать;
2) ищете компилятор который проглотит ваши 100500 циклов;
3) забиваете болт.
Решать вам.
Спасибо за поддержку, но я сделал иначе, кое-какие операции распихал по другим функциям, все конечно запуталось, но компилятор проглотил, и удалось дописать программу до логического конца, а дальше либо новый срр, либо модульным типом, некрасиво, но что делать.
0
Kukurudza
105 / 86 / 6
Регистрация: 29.08.2012
Сообщений: 539
01.07.2014, 16:15 #42
Цитата Сообщение от ExFau$t Посмотреть сообщение
Спасибо за поддержку, но я сделал иначе, кое-какие операции распихал по другим функциям, все конечно запуталось, но компилятор проглотил, и удалось дописать программу до логического конца, а дальше либо новый срр, либо модульным типом, некрасиво, но что делать.
а если придется добавить еще один цикл? а если еще 10?
0
ExFau$t
360 / 346 / 68
Регистрация: 08.05.2012
Сообщений: 1,748
01.07.2014, 16:16  [ТС] #43
Проблема вовсе не 256 блоках, а в том что циклов невложенных 250, они друг с другом не имеют ничего общего и должны выполняться последовательно, это связано с прохождением тока в ветвях цепи и дифференциальной составляющей.
0
Хедин
01.07.2014, 16:16
  #44

Не по теме:

ExFau$t, ну вот видите, функции помогли. А вы божились, что это не сработает ну что же, успехов

0
DrOffset
7376 / 4453 / 1009
Регистрация: 30.01.2014
Сообщений: 7,304
01.07.2014, 16:22 #45
Цитата Сообщение от ExFau$t Посмотреть сообщение
Проблема вовсе не 256 блоках, а в том что циклов невложенных 250
Цикл - это и есть блок. В твоем случае это просто баг студии, который приводит к этому ограничителю в 64 или 256 (в зависимости от версии), ссылку на него уже давали, на официальный ресурс майкрософт. Т.е. вариант избавится от бага, либо переделать, как сделал ты (и это уже советовали ранее) либо сменить компилятор на тот, в котором бага нет.

Добавлено через 1 минуту
Цитата Сообщение от ExFau$t Посмотреть сообщение
Теперь в чтении файлов какой-то левый интеграл
Может быть все-таки сделать функцию для интеграла отдельно?
0
01.07.2014, 16:22
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.07.2014, 16:22
Привет! Вот еще темы с ответами:

error C2601: 'main' : local function definitions are illegal fatal error C1004: unexpected end of file found - C++
День добрый люди написал програму выдает 2 ошибки че не так подскажите error C2601: 'main' : local function definitions are illegal ...

Error LNK2019 и fatal error LNK1120 - C++
Копаюсь в гугле уже часа 2. Не понимаю, в чем проблема. Вроде нигде ошибок в коде нету, но выдает: 1&gt;------ Построение начато:...

Error 1 fatal error C1083: Cannot open include file: 'fstream.h': No such file or directory - C++
// 3.cpp : main project file. #include &quot;stdafx.h&quot; #include &lt;fstream.h&gt; #include &lt;iomanip.h&gt; #define MIN_DISCOUNT 0.97; ...

Error 1 fatal error C1083: Cannot open include file: 'iostream.h': No such file or directory - C++
#include &quot;stdafx.h&quot; #include &lt;iostream.h&gt; int main() { double d=1.321e9; int n=1024;


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
45
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru