Здравствуйте, гость ( Вход | Регистрация )
Iron Bug | Дата 26.2.2009, 12:46 |
в основном связкой Mingw 3.4.5 + Eclipse пользуюсь. Хотя Mingw тоже уже начинает доставать, взять хотя бы отсутствие нормальных локалей... дык, у меня типа везде unicode. а в MinGW всё прекрасно, но у них своё понимание реализации стандартов ISO для unicode. что-то совпадает с остальными компилерами, что-то - нет. а украшать свой код кучей #ifdef'ов как-то не особо хочется. |
|
Andrew Selivanov | Дата 26.2.2009, 12:29 |
да, сработало. отлично! мне как-то в голову не пришло... а в детали реализации буста некогда было лезть. видимо, неявный конструктор с темплейтами как-то не срабатывает, причём именно в случае с мелкософтом - под линём-то всё зашибись. а с объявлением до версии 1300 - это скорее всего обход баги со старым компилером мелкософта - там вроде не соблюдалось объявление темплейтов по ISO и ещё были какие-то проблемы с typedef, я уже не помню точно. Я именно с function в детали особо не лазил, в основном лазил в детали asio и thread Цитата кстати, каким мелкософтом компилил? так, для уверенности... хотелось бы знать, так же с 2008 студией или нет? чтобы уж точно знать, имеет смысл её ставить или нет. Также 8.0, про 9.0 ничего сказать не могу, не юзал, не слышал, вообще я в основном связкой Mingw 3.4.5 + Eclipse пользуюсь. Хотя Mingw тоже уже начинает доставать, взять хотя бы отсутствие нормальных локалей... ну и мнОгое другое... Цитата но в общем мне полегчало, а то проект большой, кроссплатформа, вчера дома под линём такой шмат кода был написан, и вдруг такой облом под вендой случился Шмат кода, шесть шматов багов и поперчить Цитата а 38-й качнуть надо... профайл, я полагаю, не критичен. критичен буст! |
|
Iron Bug | Дата 26.2.2009, 11:55 |
Предлагаю сделать вот так... да, сработало. отлично! мне как-то в голову не пришло... а в детали реализации буста некогда было лезть. видимо, неявный конструктор с темплейтами как-то не срабатывает, причём именно в случае с мелкософтом - под линём-то всё зашибись. а с объявлением до версии 1300 - это скорее всего обход баги со старым компилером мелкософта - там вроде не соблюдалось объявление темплейтов по ISO и ещё были какие-то проблемы с typedef, я уже не помню точно. кстати, каким мелкософтом компилил? так, для уверенности... хотелось бы знать, так же с 2008 студией или нет? чтобы уж точно знать, имеет смысл её ставить или нет. но в общем мне полегчало, а то проект большой, кроссплатформа, вчера дома под линём такой шмат кода был написан, и вдруг такой облом под вендой случился а 38-й качнуть надо... профайл, я полагаю, не критичен. критичен буст! |
|
Andrew Selivanov | Дата 26.2.2009, 11:40 |
Предлагаю сделать вот так:
|
|
Litkevich Yuriy | Дата 26.2.2009, 11:29 |
Iron Bug, стоит в профиле указать пол. (я изначально думал, что мужской.) | |
Andrew Selivanov | Дата 26.2.2009, 11:14 |
Напоролась на багу с boost::function + MS compiler 8.0 На вскидку собрал с 1.38 - те же грабли
|
|
Iron Bug | Дата 26.2.2009, 10:24 |
да, ещё уточнение: буст у меня 1.37.0 | |
Iron Bug | Дата 26.2.2009, 9:49 |
Напоролась на багу с boost::function + MS compiler 8.0 Проявляется при применении template'ов функций и работе с boost::function при компиляции в MSVS 2005 SP1. Рассмотрим вот такой маленький пример:
В общем, казалось бы, ну куда проще... Задаём темплейт для функции, присваиваем указателю параметризованную функцию... В примере реализованы два указателя - один через boost::function, второй - классический, определённый как обычный указатель на функцию. Это прекрасно компилится, без единого ворнинга, НО! Сгенерированный компилятором MS 8.0 код даёт ран-тайм ошибку - нулевая функция в boost_func! А вот если закомментировать вызов boost_func - то всё нормально, "классический" указатель работает. Все остальные протестированные мной компиляторы дают нормальный код, который правильно выполняется. А вот мелкософтовский даёт такой потайной баг. Я также пробовала использовать "portable" синтакс библиотеки boost::function - то есть через boost::function1<bool,bool> - совершенно та же ситуация. Может, у кого есть 2008 MS студия - надо бы под ней проверить, как эта конструкция работает. Я её ставить не хочу пока, в ней много рюшек и никаких плюсов для C++, судя по описаниям релиза. Но если там поправлена эта бага - то, видать, придётся обновить компилер. Если и под ней не компилится - буду писать в boost. Пока вроде я не нашла упоминания такой баги у них в листах. |
|
Просмотр темы полностью (откроется в новом окне) | |
Текстовая версия | Сейчас: 19.4.2024, 8:32 |