Как распечатать содержимое в векторе <unique_ptr> с помощью gdb в Mac OS X

Я пытаюсь использовать функцию C ++ 11 в Mac OS X. Я скачал g ++ 4.8.1 с портом.

Это тестовый код.

class A
{
    int x;
public:
    A() {}
    ~A() {}
    A(A& a) {}
    A(int x) {this->x = x;}
    int get() {return x;}
};

int main()
{
    vector v;
    auto a = new A(10);
    unique_ptr<a> pa(a);
    v.push_back(move(pa)); // move(pa);
    for (auto& i: v)
    {
        cout < i->get();
    }
}
</a>
 pepper_chico23 июн. 2013 г., 04:15
Вы можете попробовать использовать виртуальную машину Ubuntu, у меня есть MacBook Pro, но я почти прекратил разработку для C ++. Я помещаю экземпляр Parallels Ubuntu в полноэкранный режим и забываю об OS X :-). Какие'удивительно, я получил лучшее отображение шрифтов от Ubuntu VM, чем родная OS X (не сетчатки)imgur.com/a/2DAvL
 kennytm22 июн. 2013 г., 09:18
Ты пытался($8)->get()? Кажется, 8 долларов - это указатель на уникальный указатель ...
 Ciro Santilli 新疆改造中心996ICU六四事件24 сент. 2017 г., 14:01
 prosseek22 июн. 2013 г., 12:33
@ Кенни ТМ: Да, у меня есть: "Попытка извлечь компонент значения, которое не является структурой или объединением " это сообщение об ошибке
 prosseek23 июн. 2013 г., 04:17
@chico - я думаю, что по умолчанию у Mac есть stdc ++:stackoverflow.com/questions/14972425/...

Ответы на вопрос(2)

Используйте принтеры Python для GDBВаши принтеры кажутся устаревшими:

 prosseek23 июн. 2013 г., 03:44
Это нет работать (то же печатное сообщение) с моимGNU gdb (GDB) 7.5 установить из порта. Я также тестировал с установкой GDB 7.6 от Brew, но он также нет работа. Я скопировал .gdbinit в каталог отладки, чтобы убедиться, что он прочитан.
 pepper_chico23 июн. 2013 г., 04:04
@ prosseek, это победило 'работать с libc ++, так как ваша среда OS X, яя не уверен, что тыиспользую это. Красивые принтеры GCC Python поддерживают libstdc ++.
Решение Вопроса

Я мог бы использовать Xcode; Lldb отлично работает на Xcode.

 pepper_chico29 июн. 2013 г., 16:09
Да, это отлично работает, но этодалеки от красивой печати содержимого STL ...

Ваш ответ на вопрос