Форум программистов, компьютерный форум, киберфорум
Visual C++
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.54/13: Рейтинг темы: голосов - 13, средняя оценка - 4.54
6 / 6 / 0
Регистрация: 01.08.2012
Сообщений: 70
1

Шаблонный класс, union и массив - IntelliSense в шоке? (VC++ Express 2010)

01.08.2012, 00:37. Показов 2706. Ответов 13
Метки нет (Все метки)

Может, у меня одного такая ошибка? В общем, VS Express 2010, консольное приложение - пишу код такого содержания:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
template<class T>
class C1
{
public:
        
    union U1
    {
        C1* a;
        T*  b;
    };
 
    C1()
    {
        u[1][1]. // тут автокомплит не срабатывает!
    }
 
private:
 
    U1 u[6][6];
};
Обратите внимание на строчку с комментарием. На том месте IDE должна бы мне подсказать, что есть a и b внутри U1, но нет... Утверждает, что "члены недоступны". А я жить без автокомплита не могу . И код мне нужен именно такой. Можно ли "починить" этот глупый автокомплит? Или может быть есть более умная IDE? НэтБинс, там, какой-нибудь...
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
01.08.2012, 00:37
Ответы с готовыми решениями:

IntelliSense недоступно для Visual C++ Express 2010
Пишу формы в Visual C++ Express 2010. Есть ли аналог InteliSense? Visual Assist X не...

Шаблонный класс и класс одномерный массив
Задание: протестировать класс шаблон, с обычными типами данных я понял как делать, а как передать в...

Шаблонный класс массив
Здравствуйте,необходимо создать шаблонный класс массив и в нем перегрузить некоторые операторы. У...

Шаблонный класс целочисленный массив
Доброе утро. Не спалось, решил пошаманить. Нашел задачку, которая заинтересовала, так как с таким...

13
Каратель
Эксперт С++
6601 / 4020 / 401
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
01.08.2012, 00:42 2
какой тип проекта? если CLR/WinForms то никак IntelliSense не починить, его там нет
0
6 / 6 / 0
Регистрация: 01.08.2012
Сообщений: 70
01.08.2012, 01:06  [ТС] 3
Пардон... Простое консольное win32 приложение, никаких CLR.

Добавлено через 19 минут
Если сделать класс не шаблонным, а u - не массивом, то автокомплит срабатывает...

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
//template<class T>
class C1
{
public:
        
    union U1
    {
        C1*   a;
        int*  b;
    };
 
    C1()
    {
        u.a = nullptr;
    }
 
    U1 u;//[6][6];
};
Но так нельзя!
Вопрос остаётся открытым. Это глюк IntelliSense? Лечится ли это? Если нет, есть ли более умная IDE под Win, которая мне позволит скомпилить win32 dll с ком-объектом внутри?
0
бжни
2473 / 1682 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
01.08.2012, 02:06 4
vampir64, это может быть глюком, на первых порах 2010 студия IntelliSense мог очень долго думать, а потом внезапно умереть
но я правда очень редко студией пользуюсь, однако щас расчехлю и попробую

...
у меня тоже не работает, что не удивительно
0
6 / 6 / 0
Регистрация: 01.08.2012
Сообщений: 70
01.08.2012, 02:15  [ТС] 5
У меня всё лицензионное, обновляется, т.е. с сервис паками. Уж студия 2012 на подходе, а тут такое. Попробуйте, пожалуйста, у себя, если есть такая возможность. Мне этот глюк отчаянно не даёт покоя.
0
870 / 768 / 173
Регистрация: 11.01.2012
Сообщений: 1,942
01.08.2012, 02:18 6
Цитата Сообщение от vampir64 Посмотреть сообщение
Может, у меня одного такая ошибка?
Тоже самое.

А вот так даже компилится
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
 
    C1()
    {
        u[1][1].O!!!-O-Help!!!-SOS!!!; // тут автокомплит не срабатывает!
    }
 
private:
 
    U1 u[6][6];
};
 
 
 
int main () {
 
 
   //C1<int> obj;
 
 
    system("pause");
    return 0;
}
1
бжни
2473 / 1682 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
01.08.2012, 02:20 7
1) я попробовал - воспроизводится
2) в последних студиях, насколько я знаю (ОБС), на с++ сильно забивают в перевес c#, вот IntelliSense хромает
3) я не думаю, что это может быть сильной проблемой. Раз вы пишете такие замысловатые вещи - наверно сможете разобраться, если IntelliSense один раз не сработает

eclipse кстати тоже не заresolve'ил
1
6 / 6 / 0
Регистрация: 01.08.2012
Сообщений: 70
01.08.2012, 02:43  [ТС] 8
Да, пожалуй это я переживу. Эх, даже главная IDE усея Windows лажает... Eclipse, чтоли, посмотреть... Да вот страшно

MrCold, какую чёрную магию вы используете?

Добавлено через 6 минут
Цитата Сообщение от alex_x_x Посмотреть сообщение
eclipse кстати тоже не заresolve'ил

Ой, не заметил. Вот же беда какая. Пользователи других IDE, если вы тут, прошу присоединиться к тестированию
0
бжни
2473 / 1682 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
01.08.2012, 02:48 9
у меня старый эклипс, галелео еще
относительно старый QtCreator 2.2.0 разрезолвил успешно
0
6 / 6 / 0
Регистрация: 01.08.2012
Сообщений: 70
01.08.2012, 02:52  [ТС] 10
Вот это интересно! А QtCreator скомпилит мне dll-ку с COM-объектом внутри (без всяких ATL и MFC)?
0
бжни
2473 / 1682 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
01.08.2012, 02:55 11
Цитата Сообщение от vampir64 Посмотреть сообщение
Вот это интересно! А QtCreator скомпилит мне dll-ку с COM-объектом внутри (без всяких ATL и MFC)?
нет
не думаю, что кроме студии ктото скомпилит
1
577 / 256 / 18
Регистрация: 29.11.2010
Сообщений: 868
01.08.2012, 04:37 12
Установите VisualAssist
1
6 / 6 / 0
Регистрация: 01.08.2012
Сообщений: 70
01.08.2012, 08:42  [ТС] 13
Интересная штука! Покупать или не покупать - отдельный вопрос, теперь я по крайнер мере знаю, что такое существует.
0
6 / 6 / 0
Регистрация: 01.08.2012
Сообщений: 70
07.08.2012, 01:41  [ТС] 14
А меж тем...

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
template<class T>
class C1
{
public:
    
    template <class U> // Это дополнение №1
    union U1
    {
        C1* a;
        U*  b;
    };
 
    C1()
    {
        xy(2,2).a = nullptr; // Автокомплит сработал
    }
 
private:
 
    inline U1<T>& xy(int x, int y) {return u[x][y]; } // Это дополнение №2
 
    U1<T> u[6][6];
};
Вот так - автокомплит работает. Только тут, чёрт побери, шаблон поверх шаблона, и что-то в этом мне не нравится.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.08.2012, 01:41

Создать шаблонный класс - двумерный динамический массив
Задание:Создать шаблонный класс - двумерный динамический массив. Тип элементов массива определяется...

Шаблонный класс, определяющий двумерный динамический массив
Прошу помощи Задание: Создайте шаблонный класс, определяющий двумерный динамический массив, тип...

Шаблонный класс: динамический числовой массив увеличиваемого размера
привет помогите реализовать программу на шаблоны пожалйста: Реализовать динамический числовой...

Создать шаблонный класс - ассоциативный массив, используя std::vector
Задание выглядит так: &quot;Создать шаблонный класс – ассоциативный массив mymap с использованием...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru