46019 (665326), страница 41
Текст из файла (страница 41)
Misplaced elif directive
Неправильно расположенная директива elif
Компилятор обнаружил директиву #elif без соответствующей ей директивы #if, #ifdef или #ifndef.
Misplaced else
Неправильно расположенный else
Компилятор обнаружил оператор else без соответствующего ему оператора if. Это сообщение может быть вызвано как лишним оператором else, так и лишней точкой с запятой, отсутствием фигурной скобкой, либо некоторой синтаксической ошибкой в предыдущем операторе if.
Misplaced else directive
Неправильно расположенная директива else
Компилятор встретил директиву #else без соответствующей ей директивы #if, #ifdef или #ifndef.
Misplaced endif directive
Неправильно расположенная директива endif
Компилятор встретил директиву #endif без соответствующей ей директивы #if, #ifdef или #ifndef.
Multiple base classes require explicit class names
Множественные базовые классы требуют явных имен классов
В конструкторе класса С++ каждый вызов конструктора базового класса в заголовке конструктора должен в случае, если имеется более одного непосредственного базового класса, включать имя базового класса.
Multiple declaration for идентификатор
Множественное объявление идентификатора
Идентификатор недопустимо объявлен более одного раза. Это может произойти в случае противоречивых объявлений, например int a; double a;, в случае, когда функция объявлена двумя разными способами, либо при повторении некоторого объявления, не являющегося функцией extern или простой переменной.
Multiple scope qualifiers
Множественные квалификаторы контекста
Данный идентификатор С++ был квалифицирован более чем одним именем класса; идентификатор может быть квалифицирован максимум одним классом.
Must take address of a memory location
Должен существовать адрес памяти
Ваш исходный файл использовал операцию адресации (&) в выражении, которое не может выполнять адресацию памяти, например, в случае регистровой переменной.
Need an identifier to declare
Для объявления требуется идентификатор
В данном контексте для завершения объявления требовался идентификатор. Причиной этого сообщения мог стать typedef без имени или лишняя точка с запятой на уровне файла. В С++ это могло быть имя класса, неправильно использованное в качестве другого рода идентификатора.
'new' and 'delete' not supported
`new' и 'delete' не поддерживаются
При вычислении выражения интегрированным отладчиком операции new и delete не поддерживаются.
No : following ?
Нет : после ?
Операции вопросительный знак (?) и двоеточие (:) не соответствуют друг другу в данном выражении. Возможно, отсутствует двоеточие, либо неправильно вложена или отсутствует круглая скобка.
No base class to initialize
Отсутствует базовый класс для инициализации
Конструктор класса С++ пытается неявно вызвать конструктор базового класса, тогда как этот класс был объявлен без базовых классов. Проверьте объявления.
No body defined for this inline function
Не определено тело данной встраиваемой функции
Данная функция С++ определена как inline, но тело этой функции не найдено. Тело встраиваемой функции обычно помещается в том же файле заголовка, что и объявление функции, как для функций-членов, так и для обычных встраиваемых функций.
No constructor parameters allowed for array of class
Параметры конструктора для массива класса запрещены
При объявлении массива классов С++ конструктору класса параметры не передаются. Для конструирования каждого элемента такого массива должен использоваться конструктор, не принимающий параметров (конструктор по умолчанию).
No file name ending
Неправильное окончание в имени файла
В имени файла оператора #include отсутствует необходимая завершающая имя кавычка или угловая скобка.
No file names given
Не заданы имена файлов
Командная строка компилятора Turbo C++ командной строки (TCC) не содержит имен файлов. Вы обязаны задать имя исходного файла.
No matching )
Нет соответствующей )
Отсутствует левая круглая скобка, которая соответствовала бы имеющейся правой круглой скобке. Проверьте данное выражение на сбалансированность правых и левых круглых скобок.
Nonportable pointer conversion
Немобильное преобразование указателя
Требуется выполнение неявного преобразования между указателем и интегральным типом, но эти типы имеют разный размер. Такое преобразование не может быть выполнено без явного приведения типов. Такое преобразование может и не иметь смысла, поэтому проверьте, действительно ли оно вам необходимо.
Non-virtual function функция declared pure
Не-виртуальная функция объявлена чистой
Чистыми (pure) могут быть объявлены только виртуальные функции, поскольку производные классы должны иметь возможность их переопределения.
Not an allowed type
Неразрешенный тип
В вашем исходном файле содержится объявление некоторого неразрешенного типа; например, функции, возвращающую функцию или массив.
Not a valid expression format type
Недопустимый тип формата выражения
Недопустимый спецификатор формата после выражения в окне вычислений или наблюдения. Допустимым спецификатором формата является опциональное число повторений, за которым следует символ формата (c, d, f[n], h, x, m, p, r или s).
No type information
Нет информации о типе
Отладчик не имеет информации о типе данной переменной. Модуль был скомпилирован при выключенном отладчике, либо другим компилятором или ассемблером.
Numeric constant too large
Числовая константа слишком велика
Строковые и символьные управляющие последовательности больше шестнадцатиричного \xFF или восьмеричного \377 сгенерированы быть не могут. Двухбайтовые символьные константы могут быть заданы при помощи второй обратной наклонной черты. Например, \x0D\x0A представляет собой двухбайтовую константу. Числовой литерал после управляющей последовательности следует разбит:
printf("\x0D" "12345");
Тем самым будет выведен возврат каретки и затем 12345.
Object must be initialized
Объект должен быть инициализирован
Данный объект С++ объявлен как const, но не инициализирован. Поскольку значения ему присваиваться не могут, то инициализация должна быть выполнена в точке объявления.
Only one of a set of overloaded functions can be функция Только один из набора перегруженных функций может быть
функция
Функции С++ по умолчанию являются перегруженными, и компилятор присваивает каждой из них новое имя. Если вы хотите переопределить присвоение компилятором нового имени, объявив функцию "функция", вы можете сделать это только для одного из набора функций с тем же именем. (в противном случае компоновщик обнаружит более одной глобальной функции с тем же именем).
Operand expected
Ожидался операнд
При оценке текущего выражения компилятор использовал все операнды раньше, чем кончились все операции. Проверьте возможные лишние символы операций (+, *, /, и т.д.) или отсутствующие имена переменных).
Operands are of different or incompatible type
Операнды имеют разные или несовместимые типы
Левая и правая части бинарной операции (+, /, == и т.д.) не могут быть объединены в подобном выражении.
Operator [] missing ]
В operator[] отсутствует ]
В С++ operator[] была объявлена как operator[. Вы должны добавить недостающую квадратную скобку или еще как-либо исправить объявление.
operator -> must return a pointer or a class
operator -> должна возвращать указатель или класс
Функция С++ operator-> должна быть объявлена как возвращающая класс или указатель на класс (или структуру или объединение). В любом случае это должно быть нечто такое, к чему применима операция ->.
Operator cannot be applied to these operand types
Операция не применима к этим типам операндов
Левая или правая сторона бинарной операции (+,-,== и т. д.) не имеет типа, допустимого для данной операции; например, вы пытались сложить два массива.
Operator delete must have a single parameter of type void
Операция delete должна иметь один параметр типа void
Перегруженная операция С++ delete была объявлена иначе.
Operator delete must return void
Операция delete должна возвращать тип void
Перегруженная операция С++ delete была объявлена иначе.
Operator new must have an initial parameter of type size_t
Операция new должна иметь параметр инициализации типа size_t
Операция new может быть объявлена с произвольным числом параметров, но обязательно должна иметь хотя бы один параметр, в котором будет находиться размер распределяемой памяти.
Operator new must have an single parameter of type size_t
Операция new должна иметь один параметр типа size_t
Перегруженная операция С++ new была объявлена иначе.
Operator new must return an object of type void
Операция new должна возвращать объект типа void
Перегруженная операция С++ new была объявлена иначе.
Other objects cannot be declared in a function definition
Другие объекты не могут быть объявлены в определении функции
За телом функции не может стоять запятая и следовать другие объявления.
Например,
int f(), j /* объявление f, запятая допустима,
j также объявляется как int */
int f() (*return 0;*), j; /* здесь f определяется. поэтому запятая недопустима */
Overlays only supported in medium, large and huge memory models
Оверлеи допустимы только для моделей памяти medium, large и huge
Как объяснялось в Главе 4, Оверлеи допустимы только в программах с моделями памяти medium, large и huge.
Overloadable operator expected
Ожидается перегружаемая операция
Почти все операции С++ могут быть перегружены. Единственными исключениями являются операции выбора поля (.), точка со звездочкой (.*), двойное двоеточие (::) и условное выражение (?:). Операции препроцессора # и ## не являются операциями языка С или С++ и потому перегружены быть не могут. Прочие знаки пунктуации, не входящие в число операций, например, точка с запятой, разумеется, также не могут быть перегружены.
Overloaded function is not allowed here
Перегруженная функция здесь не разрешена
При изменении защиты доступа компонента базового класса С++ в производном классе этот компонент не может являться перегруженной функцией.
Overloaded function resolution not supported
Разрешение перегруженной функции не поддерживается
При вычислении выражения интегрированным отладчиком разрешение перегруженных функций или операций не поддерживается, даже для приема адреса.
Parameter параметр missing name
Отсутствует имя параметра
В заголовке определения функции этот параметр состоит только из спецификатора типа, без имени параметра. В С это недопустимо. (В С++ это разрешено, но тогда невозможно сослаться на параметр функции.)
Parameter names are used only with a function body
Имена параметров используются только в теле функции
При объявлении функции (без определения тела функции) вы должны использовать либо пустые круглые скобки, либо прототип функции. Список имен параметров не разрешен.
Примеры объявлений:
int func(); /* объявление без прототипа допустимо */
int func(int, int); /* объявление с прототипом допустимо */
int func(int i, int j); /* имена параметров в прототипе допус
тимы */
int func(i, j); /* только имена параметров недопустимы*/
Pointer required on left side of ->
В левой части -> требуется указатель
В левой части операции (->) не допустимо ничего, кроме указателя.
Pointer to a static member cannot be created
Указатель на статический компонент не может быть создан
Указатели на компоненты класса С++ могут быть созданы только для обычных компонентов данных и функций-компонентов. Создание указателя статического компонента невозможно.
Previously specified default argument value cannot be changed
Ранее заданное значение умолчания аргумента не может изменяться
Если параметр функции С++ объявляется со значением по умолчанию, то данное значение не может быть изменено или опущено в любом другом объявлении той же самой функции.
Pure function функция not overriden in класс
Чистая функция не переопределена в классе
Чистая виртуальная функция должна быть либо переопределена (новым объявлением) либо пере-объявлена как чистая в производном классе.
Reference member компонент is not initialized
Компонент - ссылка не инициализирован
Ссылки всегда должны быть инициализированными. Компонент класса типассылки должен иметь инициализатор во всех конструкторахдля данного класса. Это означает, что вы не можете зависеть от компилятора в вопросе генерации конструкторовдля такого класса, поскольку неизвестно, как инициализировать ссылки.
Reference member компонент needs a temporary for initialization
Компонент - ссылка требует временную память для инициализации
Пользователь задал исходное значение ссылки, которое не являлось именующим значением типа, на который установлена ссылка. Это требует, чтобы компилятор получил временную память для инициализации. Поскольку эта временная память отсутствует, инициализация недействительна.
register is the only storage class allowed
единственным разрешенным классом памяти является register
Единственным разрешенным классом памяти для параметров функции является register.
Repeat count neads an lvalue