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

Баги в Visual Studio 2010 - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 19, средняя оценка - 4.79
Сыроежка
Заблокирован
16.10.2011, 19:17     Баги в Visual Studio 2010 #1
Цитата Сообщение от Van111 Посмотреть сообщение
спасибо Nameless One
если честно то в 6 студии куча глюков, а на 2010 я переходить не хочу она вроде как слишком большие exe создают но ради удобства RAD можно и её заняться
а если я обычные проги буду на dev 5 писать они сильно в скорости выполнения будут 6 студии уступать??????????
В MS VC++ 2010 также не мало глюков! Другое дело, что у вас не такая высокая квалификация, чтобы понять, что вы имеете дело с глюком.

Самый простой глюк MS VC++ 2010 (правда я обнаружил его до установки обновления SP1, так что не знаю, исправлен он уже или нет), это не возможность совершенно корректного определения

C++
1
2
3
4
struct A
{
   int A;
};
 Комментарий модератора 
Сообщения выделены из темы испортился компилятор посмотрите
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.10.2011, 19:17     Баги в Visual Studio 2010
Посмотрите здесь:

C++ Visual Studio 2010
C++ Visual Studio 2010
C++ Visual Studio 2010
C++ c++, visual studio 2010! 1.
c++, visual studio 2010! 2. C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
kravam
быдлокодер
 Аватар для kravam
1512 / 872 / 44
Регистрация: 04.06.2008
Сообщений: 5,271
16.10.2011, 19:19     Баги в Visual Studio 2010 #2
Цитата Сообщение от talis Посмотреть сообщение
А вообще, попробуйте среды, использующие MinGW.
это DEV С++ и есть
Van111
кодер с++
208 / 187 / 4
Регистрация: 03.08.2011
Сообщений: 2,585
Записей в блоге: 12
16.10.2011, 19:26     Баги в Visual Studio 2010 #3
talis,
про dev 5 я имею версию прямо перед dev 5 ну там гдето 4.9.х.х (попробуй их запомни но факт в том что она от них не сильно отстаёт)


Добавлено через 4 минуты
Сыроежка,
а это
Цитата Сообщение от Сыроежка Посмотреть сообщение
struct A { int A; };
впринципе "глупое" выражение так как зачем в структуре А делать ещё одну структуру А в которой будет ещё одна структура А и так пока у нас не кончится стэк или оперативка
talis
 Аватар для talis
789 / 541 / 37
Регистрация: 11.05.2010
Сообщений: 1,298
Записей в блоге: 1
16.10.2011, 19:27     Баги в Visual Studio 2010 #4
Цитата Сообщение от Van111 Посмотреть сообщение
впринципе "глупое" выражение так как зачем в структуре А делать ещё одну структуру А в которой будет ещё одна структура А и так пока у нас не кончится стэк или оперативка
Не-а. В структуре типа A лежит переменная типа int с именем A.
Van111
кодер с++
208 / 187 / 4
Регистрация: 03.08.2011
Сообщений: 2,585
Записей в блоге: 12
16.10.2011, 19:30     Баги в Visual Studio 2010 #5
Цитата Сообщение от talis Посмотреть сообщение
Не-а. В структуре типа A лежит переменная типа int с именем A.
а понятно но это же должно в принципе работать?
Сыроежка
Заблокирован
16.10.2011, 19:31  [ТС]     Баги в Visual Studio 2010 #6
Цитата Сообщение от Van111 Посмотреть сообщение
Добавлено через 4 минуты
Сыроежка,
а это


впринципе "глупое" выражение так как зачем в структуре А делать ещё одну структуру А в которой будет ещё одна структура А и так пока у нас не кончится стэк или оперативка
Я же написал, что нужно иметь соответствующую квалификацию, чтобы понять, что написано! У вас квалификация недостаточно высокая. Поэтому именно вы сами говорите глупость! Никакая "еще одна структура" не определяется!
Van111
кодер с++
208 / 187 / 4
Регистрация: 03.08.2011
Сообщений: 2,585
Записей в блоге: 12
16.10.2011, 19:31     Баги в Visual Studio 2010 #7
Цитата Сообщение от talis Посмотреть сообщение
Не-а. В структуре типа A лежит переменная типа int с именем A.
а понятно но это же должно в принципе работать?
Сыроежка
Заблокирован
16.10.2011, 19:32  [ТС]     Баги в Visual Studio 2010 #8
Цитата Сообщение от Van111 Посмотреть сообщение
а понятно но это же должно в принципе работать?
Об этом и речь, что это совершенно корректный код! А MS VC++ 2010 его не компилирует. Не компилироваться этот код должен лишь в одном случае, когда есть определенный пользователь конструктор.
talis
 Аватар для talis
789 / 541 / 37
Регистрация: 11.05.2010
Сообщений: 1,298
Записей в блоге: 1
16.10.2011, 19:33     Баги в Visual Studio 2010 #9
Цитата Сообщение от Van111 Посмотреть сообщение
а понятно но это же должно в принципе работать?
Если изменить имя типа структуры или имя переменной внутри структуры
kravam
быдлокодер
 Аватар для kravam
1512 / 872 / 44
Регистрация: 04.06.2008
Сообщений: 5,271
16.10.2011, 19:34     Баги в Visual Studio 2010 #10
Говоря о DEV C++, можно говорить о:
Dev-C++ 5.0 beta 9.2 (4.9.9.2) (9.0 MB) with Mingw/GCC 3.4.2
нормальная такая штука, правда компилятор g++ 2004 года, версии 3.4.2

Dev-C++ 5.0 beta 9.2 (4.9.9.2), executable only (2.4 MB)
вообще без компилятора. Новичкам вообще не советую, самостоятельно не удастся установить Mingw. Хотя в принципе к ней можно прикрутить Mingw любой свежести, что я и сделал не без труда.

И вот это вот:
wxDEv-C++
Это для формошлёпства. Работал мало, не понравилось. Для консольной работы тоже подойдёт, в наличии g++ версии 4.5.0 (10-го что ли года)

Так что советую первый вариант. К тому времени, когда ты осознаешь необходимость обновления компилятора(ов) ты сможешь его поменять сам.
Сыроежка
Заблокирован
16.10.2011, 19:34  [ТС]     Баги в Visual Studio 2010 #11
Цитата Сообщение от talis Посмотреть сообщение
Если изменить имя типа структуры или имя переменной внутри структуры
Ничего не надо менять. Код корректный. Об этом и идет речь.
Bers
Заблокирован
16.10.2011, 19:35     Баги в Visual Studio 2010 #12
Цитата Сообщение от Сыроежка Посмотреть сообщение
Об этом и речь, что это совершенно корректный код! А MS VC++ 2010 его не компилирует. Не компилироваться этот код должен лишь в одном случае, когда есть определенный пользователь конструктор.
Две разных сущности с одинаковым именем - фейл. Нет?
Может быть код корректен с точки зрения стандарта, но что б на такой "глюк" нарваться, это нужно ещё постараться проявить фантазию.
talis
 Аватар для talis
789 / 541 / 37
Регистрация: 11.05.2010
Сообщений: 1,298
Записей в блоге: 1
16.10.2011, 19:35     Баги в Visual Studio 2010 #13
Цитата Сообщение от Сыроежка Посмотреть сообщение
Ничего не надо менять. Код корректный. Об этом и идет речь.
Я имел ввиду, что в VS2010 будет работать если изменить имя типа структуры или имя элемента структуры.
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9373 / 5423 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
16.10.2011, 19:36     Баги в Visual Studio 2010 #14
Цитата Сообщение от Van111 Посмотреть сообщение
Сыроежка,
а это
Цитата Сообщение от Сыроежка Посмотреть сообщение
struct A { int A; };
впринципе "глупое" выражение так как зачем в структуре А делать ещё одну структуру А в которой будет ещё одна структура А и так пока у нас не кончится стэк или оперативка
В принципе уже ответили, картинку добавлю
Баги в Visual Studio 2010
Не вдаваясь в подробности, зачем оно нужно, в принципе должно работать.
Сыроежка
Заблокирован
16.10.2011, 20:19  [ТС]     Баги в Visual Studio 2010 #15
Цитата Сообщение от easybudda Посмотреть сообщение
В принципе уже ответили, картинку добавлю
Вложение 100938
Не вдаваясь в подробности, зачем оно нужно, в принципе должно работать.
Вы это откомпилировали с помощью MS VC++ 2010? Может быть мне просто нужно обновить этот пакет? Но и ваш представленный код некорректный, так как имя члена структуры должно скрыватиь имя самой структуры. то есть объявление в main объекта структуры должно уже писаться в виде

C++
1
struct A a;
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9373 / 5423 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
16.10.2011, 20:32     Баги в Visual Studio 2010 #16
Цитата Сообщение от Сыроежка Посмотреть сообщение
Вы это откомпилировали с помощью MS VC++ 2010?
Код
andrew@debnout:~/cpp/other$ g++ -o aa aa.cpp
Просто скомпилировал, чтобы показать, что работает.
Цитата Сообщение от Сыроежка Посмотреть сообщение
Но и ваш представленный код некорректный, так как имя члена структуры должно скрыватиь имя самой структуры. то есть объявление в main объекта структуры должно уже писаться в виде
Ничего не понял. С какого бока он не корректный? В майн объявлен объект структуры А с именем а... Вот так корректнее було бы?
C++
1
2
3
4
//...
int main(){
    A b;
//...
Сыроежка
Заблокирован
16.10.2011, 20:39  [ТС]     Баги в Visual Studio 2010 #17
Цитата Сообщение от easybudda Посмотреть сообщение
Код
andrew@debnout:~/cpp/other$ g++ -o aa aa.cpp
Просто скомпилировал, чтобы показать, что работает.

Ничего не понял. С какого бока он не корректный? В майн объявлен объект структуры А с именем а... Вот так корректнее було бы?
C++
1
2
3
4
//...
int main(){
    A b;
//...
Так вы компилировали с помощью g++? Это не есть MS VC++ 2010. Я речь вел именно об MS VC++ 2010.
Надо уточнить этот вопрос. На мой взгляд одноименное имя члена структуры должно скрывать имя структуры.

P.S. Возможно, это в свою очередь баг g++, что он позволяет делать такие определения. как A a; вместо struct A a;. Недавно видел вопрос на одном форуме, где очевидно имеется баг g++, если верить автору вопроса, который говорил, что тот код, который он привел, компилируется с помощью g++.
OstapBender
 Аватар для OstapBender
581 / 519 / 35
Регистрация: 22.03.2011
Сообщений: 1,585
16.10.2011, 21:02     Баги в Visual Studio 2010 #18
Сыроежка,
это не баг, это возможность языка С++ (Да и С по-моему)
в некоторых случаях "struct" необходимо

C
1
void f(struct f var);
тру
C
1
void f(f var);
не тру

странно. и то и то компилится. по идее 2 не должно.


C
1
2
3
4
5
6
7
8
struct f {
    int x;
};
 
void f() {
    /*struct */ f v;
    v.x=10;
}
вот так точняк не компилится.
silentnuke
Android Programmer
137 / 138 / 5
Регистрация: 08.12.2010
Сообщений: 421
16.10.2011, 21:07     Баги в Visual Studio 2010 #19
с sp1 тоже не компилируется.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.10.2011, 21:09     Баги в Visual Studio 2010
Еще ссылки по теме:

c++, visual studio 2010! 6. C++
c++, visual studio 2010! 7 C++
Visual studio 2010 C++

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

Или воспользуйтесь поиском по форуму:
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9373 / 5423 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
16.10.2011, 21:09     Баги в Visual Studio 2010 #20
Цитата Сообщение от Сыроежка Посмотреть сообщение
Так вы компилировали с помощью g++?
Ну да. Говорю же - показать, что в принципе такое работает.

Цитата Сообщение от Сыроежка Посмотреть сообщение
Это не есть MS VC++ 2010
Вот с этим не поспоришь!


Цитата Сообщение от Сыроежка Посмотреть сообщение
Возможно, это в свою очередь баг g++, что он позволяет делать такие определения. как A a; вместо struct A a;
Это баг языка С++, в нём при объявленной
C++
1
struct A {/*...*/};
объявления
C++
1
struct A a;
и
C++
1
A a;
практически одно и то же. То, что в структуре имеется одноимённое поле, на правила объявления объектов структуры никаким боком не влияет. Мало того, вот по сути тоже самое:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
 
class A
{
public:
   int A;
};
 
int main(){
    A a;
    a.A = 13;
    
    std::cout << a.A << std::endl;
    
    return 0;
}
Добавлено через 1 минуту
Цитата Сообщение от OstapBender Посмотреть сообщение
Да и С по-моему
Нет, в С так работать не будет. Там обязательно либо писать struct A a; либо с помощью typedef соответствующий тип объявлять.
Yandex
Объявления
16.10.2011, 21:09     Баги в Visual Studio 2010
Ответ Создать тему
Опции темы

Текущее время: 02:17. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru