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

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

Войти
Регистрация
Восстановить пароль
 
BigLow
55 / 55 / 2
Регистрация: 07.07.2013
Сообщений: 345
#1

error C3168: bool: недопустимый базовый тип для перечисляемого типа - C++

02.08.2013, 16:10. Просмотров 522. Ответов 5
Метки нет (Все метки)

В Visual C++ 2005 это не вызывает ошибки. А почему в Visual C++ 2010 ошибка?

C++
1
enum    State:bool{ON=true, OFF=false};  // error C3168: bool: недопустимый базовый тип для перечисляемого типа
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.08.2013, 16:10
Здравствуйте! Я подобрал для вас темы с ответами на вопрос error C3168: bool: недопустимый базовый тип для перечисляемого типа (C++):

typeid определяет тип указателя на базовый класс, как тип "базовый класс". Вне зависимости от присвоенного ему значения - C++
Вот код: #include <iostream> #include <string> #include <conio.h> #include <windows.h> #include <typeinfo> using...

как правильно понять тип bool ? bool true(const string &str) и что дает это значение ? - C++
задам может глупый вопрос, но прошу ответить. как правильно понять тип bool ? bool true(const string &str) и что дает это...

Базовый тип для времени в С++ - C++
Добрый вечер всем! Ребята, подскажите, существует ли в C++ некий базовый тип или возможно классы для определения/задания времени? Что-то...

Разработка программ с использованием перечисляемого типа enum enumiration - C++
Помогите составить программу: Составьте программу на языке C++ Определите перечисляемый тип данных для хранения названий сезонов...

Сформировать массив типа bool из массива типа char - C++
Доброго времени суток! После ввода элементов массива вылазит ошибка "Необработанное исключение: System.NullReferenceException ... "...

Недопустимый неполный тип - C++
Здравствуйте! Помогите решить проблему с недопустимы полным типом. Код: main.cpp #include "headers.h" #include "support.h" int...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
ForEveR
В астрале
Эксперт С++
7972 / 4734 / 321
Регистрация: 24.06.2010
Сообщений: 10,541
Завершенные тесты: 3
02.08.2013, 16:11 #2
BigLow, По стандарту С++ указание underlying типа для перечисления допустима только с С++11.
Так что это расширение MSVC.

2005 - http://msdn.microsoft.com/en-us/libr...=vs.80%29.aspx
This can be any scalar type, such as signed or unsigned versions of int, short, or long. bool or char is also allowed.
2010 - http://msdn.microsoft.com/en-us/libr...vs.100%29.aspx
This can be any scalar type, such as signed or unsigned versions of int, short, or long. bool or char is also allowed.
Собственно отличий по версиям нет, так что либо ошибка на MSDN, либо вы что-то делаете не так.
По-хорошему в 2010 студии уже были некоторые фичи С++11, вполне возможно, что это просто недоработка.
0
BigLow
55 / 55 / 2
Регистрация: 07.07.2013
Сообщений: 345
02.08.2013, 16:31  [ТС] #3
Не знаю. Мне кажется это дело в самой Visual Studio.

В последнее время она у меня глючит. То подсказки неправильно показывает, то еще другие проблемы возникают.

Буду переустанавливать ее
0
ForEveR
В астрале
Эксперт С++
7972 / 4734 / 321
Регистрация: 24.06.2010
Сообщений: 10,541
Завершенные тесты: 3
02.08.2013, 16:48 #4
BigLow, А с int-ом или чем-нибудь вроде работает? Или тоже нет?
0
BigLow
55 / 55 / 2
Регистрация: 07.07.2013
Сообщений: 345
02.08.2013, 16:57  [ТС] #5
ForEveR, и с int, и с short все прекрасно работает

А в CodeBlocks эта программа компилируется:
C++
1
2
3
4
5
6
7
8
9
10
#include<iostream>
 
enum    State:bool{OFF, ON};
 
 
int main()
{
 
    return 0;
}
Скорее всего дело в Visual Studio
0
Tulosba
:)
Эксперт С++
4395 / 3238 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
02.08.2013, 18:19 #6
Цитата Сообщение от BigLow Посмотреть сообщение
Скорее всего дело в Visual Studio
VS2010:
warning C4480: nonstandard extension used: specifying underlying type for enum 'State'
IntelliSense: underlying type of enum type must be an integral type other than bool
VS2012: OK
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.08.2013, 18:19
Привет! Вот еще темы с ответами:

Односвязные списки: недопустимый неполный тип - C++
По книге Седжвика пишу реализацию списков. Есть такие файлы: list.h: #ifndef LIST_H #define LIST_H struct data; struct...

union REGS rg; недопустимый неполный тип - C++
Прерывания с клавиатуры Может я чего не подключил ещё нужного? #include &quot;stdafx.h&quot; #include &lt;stdio.h&gt; #include &lt;dos.h&gt; ...

Недопустимый неполный тип, не могу найти ошибку - C++
#include&lt;iostream&gt; #include&lt;locale&gt; #include&lt;string&gt; #include&lt;iomanip&gt; #include&lt;fstream&gt; void Poisk_1(), Poisk_2(), Poisk_3(),...

Error C2181: недопустимый else без парного if - C++
Помогите! Не могу понять в чем ошибка! Стоит задача: Напишите один оператор if, который проверяет две целочисленные переменные и...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
02.08.2013, 18:19
Ответ Создать тему
Опции темы

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