Баги MSVC (2010) компилятор + среда
От: nen777w  
Дата: 09.11.14 22:48
Оценка:
Сел написать небольшую функцию и сразу два "открытия".
Проверял только на msvc2010.

class A
{
   enum E {ea,eb,ec};

   template<typename Iter, typename Pred>
   static void my_func(Iter begin, Iter end, Pred pr) {}

   static void foo(const char *str = "ABC")
   {
     const char *p = str;
     my_func(p, p+strlen(p), [&p]() -> E
    {
        if( 'A' == *p ) { <- Попробуйте закинуть в Watch или же просто выделить сравенние и посмотреть результат. Студя скажет что это false, хотя и вычислается правильно т.е. true.
                return ea; <-  Здесь не знает что такое ea, бага компилятора что б скомпилить надо выностить enum за пределы класса.
        }
    }
     );
   }
};
Re: Баги MSVC (2010) компилятор + среда
От: Сергей Мухин Россия  
Дата: 09.11.14 23:04
Оценка:
Здравствуйте, nen777w, Вы писали:

N>Проверял только на msvc2010.


за окном 2014 год. Попробуй хотя бы 2013 студию.
---
С уважением,
Сергей Мухин
Re[2]: Баги MSVC (2010) компилятор + среда
От: nen777w  
Дата: 10.11.14 09:16
Оценка:
N>>Проверял только на msvc2010.
СМ>за окном 2014 год. Попробуй хотя бы 2013 студию.
Это да. Вот на 2012-й уже такого нет, но как же сервис паки и обновления?
Re[2]: Баги MSVC (2010) компилятор + среда
От: Кодт Россия  
Дата: 10.11.14 11:04
Оценка: +3
Здравствуйте, Сергей Мухин, Вы писали:

СМ>за окном 2014 год. Попробуй хотя бы 2013 студию.


Не самый продуктивный подход. Люди компиляторы не ежегодно меняют. Пресловутая шапка вообще только в этом году проапгрейдилась с gcc 4.4.
Так что баги и косяки предыдущих версий компиляторов надо знать и публиковать, хотя бы для того, чтобы другие не наступили на эту граблю.
Перекуём баги на фичи!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.