LINUX.ORG.RU

скомпилировать openbox


0

0

у меня не получается, свовсем уже C++ забыл.

Клинит в самом начале с такими сообщениями об ошибке

Timer.hh: In member function 'void _timer_queue<_Tp, _Sequence, _Compare>::release(const _Tp&)': Timer.hh:101: error: 'c' was not declared in this scope Timer.hh:103: error: 'comp' was not declared in this scope

вот в этом отрезке кода #include <queue> #include <algorithm>

template <class _Tp, class _Sequence, class _Compare> class _timer_queue: public std::priority_queue<_Tp, _Sequence, _Compare> { public: typedef std::priority_queue<_Tp, _Sequence, _Compare> _Base;

_timer_queue(void): _Base() {} ~_timer_queue(void) {}

void release(const _Tp& value) { c.erase(std::remove(c.begin(), c.end(), value), c.end()); // after removing the item we need to make the heap again std::make_heap(c.begin(), c.end(), comp); }

компилирую стабильную openbox под убунтой 8.10. Сконфигурировалось без всяких яких, а вот где то клинит. Жалуется, что с не объявленно. Интернет в лице гугля ничего путного не выдает. Может версия STL у меня не та?

у меня не получается, свовсем уже C++ забыл. 

Клинит в самом начале с такими сообщениями об ошибке

Timer.hh: In member function 'void _timer_queue<_Tp, _Sequence, _Compare>::release(const _Tp&)':
Timer.hh:101: error: 'c' was not declared in this scope
Timer.hh:103: error: 'comp' was not declared in this scope

вот в этом отрезке кода
#include <queue>
#include <algorithm>

template <class _Tp, class _Sequence, class _Compare>
class _timer_queue: public std::priority_queue<_Tp, _Sequence, _Compare> {
public:
  typedef std::priority_queue<_Tp, _Sequence, _Compare> _Base;

  _timer_queue(void): _Base() {}
  ~_timer_queue(void) {}

  void release(const _Tp& value) {
    c.erase(std::remove(c.begin(), c.end(), value), c.end());
    // after removing the item we need to make the heap again
    std::make_heap(c.begin(), c.end(), comp);
  }


компилирую стабильную openbox под убунтой 8.10. Сконфигурировалось без всяких яких, а вот где то клинит. Жалуется, что с не объявленно. Интернет в лице гугля ничего путного не выдает. Может версия STL у меня не та? 

the_moon
() автор топика
Ответ на: комментарий от the_moon

google подсказывает, что раньше этот код выглядел так:

class _Tp, class _Sequence, class _Compare>
  class _timer_queue: protected std::priority_queue<_Tp, _Sequence, _Compare> {
  public:
    typedef std::priority_queue<_Tp, _Sequence, _Compare> _Base;

    inline _timer_queue(void)
      : _Base()
    { }
    inline ~_timer_queue(void)
    { }

    inline void release(const _Tp& value) {
      _Base::c.erase(std::remove(_Base::c.begin(), _Base::c.end(), value),
                     _Base::c.end());
      // after removing the item we need to make the heap again
      std::make_heap(_Base::c.begin(), _Base::c.end(), _Base::comp);
    }


т.е. c - мембер std::priority_queue
следовательно, у тебя версия stl не та.

anonymous
()
Ответ на: комментарий от anonymous

Ага, точно, как обычно. Моя ошибка.

поискал в инете openbox и нашел какой то древний сайт, на котором и скачал версию, поди-ка 2003-го года, openbox 2. Ясно, что уже не компилируется.

Потом догадался, глянул в убунте на версию openbox, оказалось три с чем то. Новая версия похоже вообще на Си написанна и компилируется.

the_moon
() автор топика
Ответ на: комментарий от the_moon

> Новая версия похоже вообще на Си написанна и компилируется.

вот, а вы спрашиваете в чем разница между программами на Cи и программами на C++

anonymous
()
Ответ на: комментарий от anonymous

Да вот дохтур, захотелось добавить фишку. По идее должно быть просто, может она там уже есть. Хочу добавить виртуальных экранчиков, как альтернативу tiling-у. Звучит гордо?

the_moon
() автор топика
Ответ на: комментарий от the_moon

>>Хочу добавить виртуальных экранчиков

рабочие столы? так они есть

alex_custov ★★★★★
()
Ответ на: комментарий от anonymous

>В смысле разделить рабочий стол на несколько частей?

Да, Должно получится то же самое, что и с xineram-ой - окно разворачивается при максимизации только на один их физических экранов. Я думал разбить один их экранов на несколько виртуальных и в них максимизировать свои окошки с маилами, с чатами. А на другом окне оставить все как есть.

Я пробовал всякие тайловые окноманагеры, но что то тяжко к ним привыкать. Хочется смеси из привычного оконного манагера и тайлового под гномом (в гноме у меня нужные мне плагины и один мой собственный для панели). У меня два монитора, на основном буду дальше как и работал, а на другом положить окошки, которые требуют постоянного внимания.

the_moon
() автор топика
Ответ на: комментарий от the_moon

Сижу вот ковыпяюсь в openbox,заметил, что они на каждый чих опрашивают xineram-у на счет физических мониторов и их размеров. Потому появился вопрос. А могут ли иксы без перезагрузки менять конфигурацию десктопа? Можно ли на ходу добавлять новые мониторы и расширять на них десктоп? Что если я один раз опрошу ксинераму, при загрузке и оставлю эту конфигурацию до перезагрузки openbox-а?

the_moon
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.