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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 19, средняя оценка - 4.79
Сыроежка
Заблокирован
#1

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

16.10.2011, 19:17. Просмотров 2518. Ответов 41
Метки нет (Все метки)

Цитата Сообщение от 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;
};
 Комментарий модератора 
Сообщения выделены из темы испортился компилятор посмотрите
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
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, может кто подсказать как в ней разробатывать интерфейс для програм. Можесть ссылка у кого на такой...

Visual Studio 2010 - C++
как запустить с флехи exe файл программы Си в Visual Studio 2010??

Visual studio 2010 - C++
Господа, подскажите, где нужно полазить в опциях студии, чтобы после изменения программы она не запускала последний удачный дебаг? Заранее...

c++, visual studio 2010! 7 - C++
Given three natural numbers a, b, c which represent the day, month and year of some date. For example: 1, 4, 1991 represents 1st April...

c++, visual studio 2010! 6. - C++
Given natural number n. Compute 2 to the power of n. Do not use pow() function. Example: Input: 5 Output: 32

c++, visual studio 2010! 2. - C++
Given a year number. Output the number of days of that year. Example: Input: 1900 Output 365 Example:

41
Сыроежка
Заблокирован
17.10.2011, 18:49  [ТС] #31
Цитата Сообщение от easybudda Посмотреть сообщение
Да что там я. Думаю, его кроме Вас вообще никто не знает. Ну Страуструпп разве-что в общих чертах...


Ну да, так конечно ругаться будет. Так оно и в таком виде не скомпилируется
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
    
class A {
public:
    int val;
};
 
void A() {
    std::cout << "bla bla bla" << std::endl;
}
 
int main(){
    A a;
    a.val = 13;
    
    A();
    std::cout << a.val << std::endl;
    
    return 0;
}
скажет
Код
C:\c_cpp\shitcode>g++ -o aa aa.cpp
aa.cpp: In function 'int main()':
aa.cpp:13:4: error: expected ';' before 'a'
aa.cpp:14:2: error: 'a' was not declared in this scope
что не удивляет. Мне другое не понятно: зачем вообще такие грабли делать? Тру-профессионалу обычных проблем с ошибками в программе мало, дебажить, так дебажить? Это если ССЗБ, или просто заняться нечем по-моему...


Во-первых прочитайте уже правила, там кроме уважительного общения (я-то не претендую, но многие обижаются) есть ещё пункт
, а во-вторых что мне, неучу, там делать? Нужно посмотреть, как с вашими шарадами gcc справится - так скачайте, установите и сами посмотрите...
Не надо было приводить сообщения компилятора. Я вам специально привел пример, чтобы вы знали, что такое уточненное (elaborated name) класса, и что это не одно и тоже, что просто указания имени класса.

Приведенный вами код будет успешно компилироваться, если вы замените объявление A a; на struct A a; Об этом я и вел речь.
0
talis
17.10.2011, 19:27
  #32

Не по теме:

A не уважает B из-за того, что B не уважает A. Race condition просто какое-то.

0
Kastaneda
Jesus loves me
Эксперт С++
4697 / 2901 / 238
Регистрация: 12.12.2009
Сообщений: 7,385
Записей в блоге: 2
Завершенные тесты: 1
17.10.2011, 19:48 #33
Сыроежка, а по каким критериям можно отличить баг от особенности реализации? Например в 10-ой студии не реализована спецификация исключений(хотя она предусмотрена стандартом), так что это - баг или особенность реализации?
0
Deviaphan
Делаю внезапно и красиво
Эксперт С++
1306 / 1221 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
17.10.2011, 19:50 #34
Цитата Сообщение от Kastaneda Посмотреть сообщение
хотя она предусмотрена стандартом
Уже не предусмотрена. Отказались (к шчастью).
2
Kastaneda
Jesus loves me
Эксперт С++
4697 / 2901 / 238
Регистрация: 12.12.2009
Сообщений: 7,385
Записей в блоге: 2
Завершенные тесты: 1
17.10.2011, 19:51 #35
Цитата Сообщение от Deviaphan Посмотреть сообщение
Уже не предусмотрена. Отказались (к шчастью).
Не знал. Речь, я так понимаю, о C++11?
0
magirus
Супер-модератор
Эксперт по компьютерным сетямЭксперт Windows
27045 / 15306 / 905
Регистрация: 15.09.2009
Сообщений: 66,748
Записей в блоге: 78
17.10.2011, 19:51 #36
Цитата Сообщение от Сыроежка Посмотреть сообщение
хамью-модераторам
язычок придержи.
0
Сыроежка
Заблокирован
17.10.2011, 20:00  [ТС] #37
Цитата Сообщение от Kastaneda Посмотреть сообщение
Сыроежка, а по каким критериям можно отличить баг от особенности реализации? Например в 10-ой студии не реализована спецификация исключений(хотя она предусмотрена стандартом), так что это - баг или особенность реализации?
В стандарте есть такие выражения, как implementation defined, или, например, program is ill-formed, или program shall do. Два последних термина означают баг компилятора, если он такое допускает, то есть ill-formed code, или, напротив, не делает того, что должен делать.

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

Для примера могу привести код, который я указал на другом форуме, и который в свою очередь нашел еще на одном форуме. Вот этот код

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
namespace X 
 { 
    namespace Y 
    { 
        class Outer {}; 
  
        namespace Z 
        { 
            class Inner 
            { 
                void callMe(Outer* param); 
            }; 
        } 
    } 
 } 
  
 using namespace X::Y::Z; 
  
 void Inner::callMe(Outer* param) 
 { 
 }
g++ по утверждению автора исходного вопроса компилирует этот код, а MS VC2010 не компилирует. И что делать? Естественно нужно иметь четкий ответ на вопрос, какой из компиляторов прав.

Добавлено через 6 минут
Цитата Сообщение от magirus Посмотреть сообщение
язычок придержи.
Научитесь вести себя сначала прилично, а уж потом другим что-то советуй!
0
Deviaphan
Делаю внезапно и красиво
Эксперт С++
1306 / 1221 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
18.10.2011, 06:43 #38
Цитата Сообщение от Сыроежка Посмотреть сообщение
И что делать?
Этот код НЕ должен компилироваться, т.к. класс Outer в строке 19 не известен. Нужно ещё using namespace X::Y добавить, для возможности компиляции.
0
xAtom
915 / 740 / 60
Регистрация: 09.12.2010
Сообщений: 1,346
Записей в блоге: 1
18.10.2011, 07:43 #39
Цитата Сообщение от Сыроежка Посмотреть сообщение
В MS VC++ 2010 также не мало глюков! Другое дело, что у вас не такая высокая квалификация, чтобы понять, что вы имеете дело с глюком.
Самый простой глюк MS VC++ 2010 (правда я обнаружил его до установки обновления SP1, так что не знаю, исправлен он уже или нет), это не возможность совершенно корректного определения
Код C++1
2
3
4 struct A
{
int A;
};
Сыроежка, это не глюк студии, а глюк твоей логики, без обид если что. При создание большой проги с заданиями одинаковых имён себе только гемору создаёшь в голове и в коде.
0
LosAngeles
Заблокирован
18.10.2011, 09:25 #40
xAtom, да он, тс, как бы нигде и не ратовал "за создание большой проги с заданиями одинаковых имён". Речь идёт именно о глюках студии, тема интересная так как их довольно много, но бесмысленная, так как о них можно и на сайте майкрософта почитать. Сыроежка, советую тебе почитать карнеги, хотя надеюсь ты так только на форуме выпендриваешься, если ты так на работе с колллегами общаешься, то тебе наверно весь отдел уже смерти желает)
0
kravam
18.10.2011, 13:53
  #41

Не по теме:

Чё, прикольно забаненого гнобить?

0
LosAngeles
Заблокирован
13.11.2011, 17:10 #42
Баг или фича?
0
13.11.2011, 17:10
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.11.2011, 17:10
Привет! Вот еще темы с ответами:

c++, visual studio 2010! 1. - C++
Given real numbers a, b, c, where a is not 0. Find if a quadratic inequality ах2 + bx + с = 0 has real roots. If it does, output them. If...

Visual Studio 2010 - C++
Прошу прощения если написал не туда, отдельного форма по VS не нашел! Люди такая проблема!! У меня есть VS 2010 Ultimate начинаю...

Microsoft Visual Studio 2010 - C++
В Visual Studio 2010 есть компанент типа StringGrid как в Builder C++?

Visual Studio 2010 Express - C++
Скачал, поставил, приятный такой дизайн. А как она по функциональности? Чем лучше VS 2005, 2008? Ну и впринципе удобно ли в ней работать?


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

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

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