Резервное копирование iPod Nano 4-го поколения?

Поместите себя в положение компилятора: то, когда Вы вперед объявляете тип, весь компилятор знает, - то, что этот тип существует; это ничего не знает о своем размере, участниках или методах. Поэтому это звонило неполный тип . Поэтому Вы не можете использовать тип для объявления участника или базового класса, так как компилятор должен был бы знать расположение типа.

Принятие следующего предописания.

class X;

Вот то, что Вы можете и не можете сделать.

, Что можно сделать с неполным типом:

  • Объявляют, что участник указатель или ссылка на неполный тип:

    class Foo {
        X *p;
        X &r;
    };
    
  • Объявляют функции или методы, которые принимают/возвращают неполные типы:

    void f1(X);
    X    f2();
    
  • Определяют функции или методы, которые принимают/возвращают указатели/ссылки на неполный тип (но не используя его участников):

    void f3(X*, X&) {}
    X&   f4()       {}
    X*   f5()       {}
    

, Что Вы не можете сделать с неполным типом:

  • Использование это как Использование базового класса

    class Foo : X {} // compiler error!
    
  • это для объявления участника:

    class Foo {
        X m; // compiler error!
    };
    
  • Определяют функции или методы с помощью этого Использования типа

    void f1(X x) {} // compiler error!
    X    f2()    {} // compiler error!
    
  • его методы или поля, на самом деле пытаясь разыменовать переменную с неполным типом

    class Foo {
        X *m;            
        void method()            
        {
            m->someMethod();      // compiler error!
            int i = m->someField; // compiler error!
        }
    };
    

Когда дело доходит до шаблонов, нет никакого абсолютного правила: можно ли использовать неполный тип, поскольку шаблонный параметр зависит от пути, тип используется в шаблоне.

, Например, std::vector требует, чтобы его параметр был полным типом, в то время как boost::container::vector не делает. Иногда, полный тип требуется, только если Вы используете определенные функции членства; дело обстоит так для [1 110] , например.

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

1
задан 13.05.2020, 18:10

1 ответ

После этого довольно устаревшего руководства: , Как Скопировать Вашу Музыку iPod на Linux, я использовал gtkpod 2.1.1 в Ubuntu 12.04 для экспорта всех музыкальных файлов от iPod до резервной папки.

я имел к:

  • Подключение USB-кабель iPod
  • Монтирует, что iPod device в Thunar (использующий его левую панель)
  • Открывает gtkpod, затем выбирает iPod, тогда right-click в эти Playlist Tracks, область, тогда Select All
  • Или Tools > Export Tracks > To Filesystem или right-click > Copy > To Filesystem
  • Выбирают Export Destination Directory, совершают нападки Save
  • , Расслабляются и ослабляются, в то время как резервное копирование завершается

, можно проверить, подходили ли все путем рассмотрения number из файлов в целевом dir и size из файлов, содержавшихся, как отображено в эти Thunar status bar и перепроверки этого с [1 114] в [1 115]. У меня было несоответствие 11 объектов (1599 на iPod по сравнению с 1588 в резервном dir), но, о, хорошо, возможно, были некоторые дубликаты, лежащие вокруг.

См. также:

0
ответ дан 13.05.2020, 18:11

Теги

Похожие вопросы