python std::shared_ptr clang++, не работает в clang++ :( |
Здравствуйте, гость ( Вход | Регистрация )
python std::shared_ptr clang++, не работает в clang++ :( |
alexy |
11.1.2015, 21:16
Сообщение
#1
|
Студент Группа: Участник Сообщений: 44 Регистрация: 4.8.2010 Пользователь №: 1931 Спасибо сказали: 0 раз(а) Репутация: 0 |
недавно обнаружил проблему (debian sid) с гццпп - он мне так подвешивает систему, что быстрее просто отправить в перезагрузку. решил воспользоватсья возможностью и перейти на clang
я для прототипа использую python3 и boost::python. кода импортируешь туда класс ,буст может импортировать его как boost::shared_ptr и управлять соответственно. я использую std::shaerd_ptr и вот код (это переделанный код из вики питона) в гцц усе работает. когда говоришь питону del a, где а - это переменная созданная из этого кода, объект не удаляется, он удаляется только при закрытии программы. если закоментировать ptr то объект удаляется сразу - что и требовалось доказать. но! кланг не может это скомпилить что можно сделать чтобы заставить работать именного clang? g++ --version 4.9.2-10 clang++ --version 3.5.0-9 |
|
|
Iron Bug |
12.1.2015, 13:41
Сообщение
#2
|
Профессионал Группа: Модератор Сообщений: 1611 Регистрация: 6.2.2009 Из: Yekaterinburg Пользователь №: 533 Спасибо сказали: 219 раз(а) Репутация: 12 |
не совсем понятно, почему GCC "подвешивает систему", но скорее всего он выжирает память. это бывает по двум причинам: использование гигантских статических массивов начинающими программистами или очень большие проекты. в любом случае, вопрос решается использованием ограничений на память через ulimit и увеличением размера свопа.
у тебя в классе объявлен статический элемент типа shared_ptr. и он действительно создастся при старте и удалится только после завершения программы, когда последняя ссылка (статическое объявление) будет закрыто. |
|
|
Текстовая версия | Сейчас: 4.5.2024, 7:40 |