Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
Разработка программного обеспечения

Class template imported_class

Boost , The Boost C++ Libraries BoostBook Documentation Subset , Reference

Boost C++ Libraries

...one of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

PrevUpHomeNext

Class template imported_class

boost::dll::experimental::imported_class

Synopsis

// In header: <boost/dll/import_class.hpp>
template<typename T> 
class imported_class {
public:
  // types
  typedef imported_class< T > base_t;
  // construct/copy/destruct
  template<typename... Args> 
    imported_class(unspecified, const smart_library &, Args...);
  template<typename... Args> 
    imported_class(unspecified, const smart_library &, std::size_t, Args...);
  template<typename... Args> 
    imported_class(unspecified, smart_library &&, Args...);
  template<typename... Args> 
    imported_class(unspecified, smart_library &&, std::size_t, Args...);
  imported_class() = delete;
  imported_class(imported_class &) = delete;
  imported_class(imported_class &&) = default;
  imported_class & operator=(imported_class &) = delete;
  imported_class & operator=(imported_class &&) = default;
  // private member functions
  template<typename... Args> 
    unspecified make_data(const smart_library &, Args...);
  template<typename... Args> 
    unspecified make_data(const smart_library &, std::size_t, Args...);
  // public static functions
  template<typename... Args> 
    static imported_class< T > make(smart_library &&, Args...);
  template<typename... Args> 
    static imported_class< T > make(smart_library &&, std::size_t, Args...);
  template<typename... Args> 
    static imported_class< T > make(const smart_library &, Args...);
  template<typename... Args> 
    static imported_class< T > 
    make(const smart_library &, std::size_t, Args...);
  // public member functions
  T * get();
  bool is_move_constructible();
  bool is_move_assignable();
  bool is_copy_constructible();
  bool is_copy_assignable();
  imported_class< T > copy() const;
  imported_class< T > move();
  void copy_assign(const imported_class< T > &) const;
  void move_assign(imported_class< T > &);
  explicit operator bool() const;
  const std::type_info & get_type_info();
  template<typename Signature> unspecified call(const std::string &);
  template<typename Tin, typename Signature, 
           typename  = boost::enable_if<detail::unqalified_is_same<T, Tin>> > 
    unspecified call(const std::string &);
  template<typename Tin, typename T2> unspecified operator->*(unspecified);
  template<class... Args> unspecified import(const std::string &);
};

Description

Этот класс представляет собой импортный класс.

[Note] Note

Он должен быть построен с помощью boost::dll::import_class (const smart_library& lib, std::size_t, Args...)

imported_class public construct/copy/destruct

  1. <
    template<typename...Args>
     imported_class(unspecified,constsmart_library&lib,Args...args);
    >
  2. <
    template<typename...Args>
     imported_class(unspecified,constsmart_library&lib,std::size_tsize,
                    Args...args);
    >
  3. <
    template<typename...Args>
     imported_class(unspecified,smart_library&&lib,Args...args);
    >
  4. <
    template<typename...Args>
     imported_class(unspecified,smart_library&&lib,std::size_tsize,
                    Args...args);
    >
  5. <
    imported_class()=delete;
    >
  6. <
    imported_class(imported_class&)=delete;
    >
  7. <
    imported_class(imported_class&&)=default;
    >Переместить конструктор.
  8. <
    imported_class&operator=(imported_class&)=delete;
    >
  9. <
    imported_class&operator=(imported_class&&)=default;
    >Перемещать ассигнования.

imported_class private member functions

  1. <
    template<typename...Args>
     unspecifiedmake_data(constsmart_library&lib,Args...args);
    >
  2. <
    template<typename...Args>
     unspecifiedmake_data(constsmart_library&lib,std::size_tsize,
                           Args...args);
    >

imported_class public static functions

  1. <
    template<typename...Args>
     staticimported_class<T>make(smart_library&&lib,Args...args);
    >
  2. <
    template<typename...Args>
     staticimported_class<T>
     make(smart_library&&lib,std::size_tsize,Args...args);
    >
  3. <
    template<typename...Args>
     staticimported_class<T>make(constsmart_library&lib,Args...args);
    >
  4. <
    template<typename...Args>
     staticimported_class<T>
     make(constsmart_library&lib,std::size_tsize,Args...args);
    >

imported_class public member functions

  1. <
    T*get();
    >Возвращает указатель на основной класс.
  2. <
    boolis_move_constructible();
    >Проверьте, является ли импортируемый класс подвижным.
  3. <
    boolis_move_assignable();
    >Проверьте, является ли импортируемый класс подвижным.
  4. <
    boolis_copy_constructible();
    >Проверьте, является ли импортируемый класс копируемым.
  5. <
    boolis_copy_assignable();
    >Проверьте, является ли импортируемый класс поддающимся копированию.
  6. <
    imported_class<T>copy()const;
    >Обратитесь к конструктору копий.
    [Note]Примечание

    Неопределенное поведение, если импортируемый объект не является копируемым.

  7. <
    imported_class<T>move();
    >Назовите конструктор движения.
    [Note]Примечание

    Неопределенное поведение, если импортируемый объект не является конструируемым.

  8. <
    voidcopy_assign(constimported_class<T>&lhs)const;
    >Ссылка на копию.
    [Note]Примечание

    Неопределенное поведение, если импортируемый объект не поддается копированию.

  9. <
    voidmove_assign(imported_class<T>&lhs);
    >Призовите задание на переезд.
    [Note]Примечание

    Неопределенное поведение, если импортируемый объект не может перемещаться.

  10. <
    explicitoperatorbool()const;
    >Проверьте, загружен ли класс.
  11. <
    conststd::type_info&get_type_info();
    >Получить ссылку на std::type_info.
  12. <
    template<typenameSignature>unspecifiedcall(conststd::string&name);
    >

    Вызовите функцию члена. Это возвращает прокси к функции. Механик-посредник необходим, поэтому сигнал можно передать.

    Пример

    <
    im_class.call<void(constchar*)>("function_name")("MyString");
    
    >

  13. <
    template<typenameTin,typenameSignature,
            typename=boost::enable_if<detail::unqalified_is_same<T,Tin>>>
     unspecifiedcall(conststd::string&name);
    >

    Назовите квалифицированную функцию члена, т.е. конст и или летучую.

    Пример

    <
    im_class.call<consttype_alias,void(constchar*)>("function_name")("MyString");
    
    >

  14. <
    template<typenameTin,typenameT2>unspecifiedoperator->*(unspecifiedmn);
    >Перегрузка ->* для импортного метода.
  15. <
    template<class...Args>unspecifiedimport(conststd::string&name);
    >Импортировать метод класса.

PrevUpHomeNext

Статья Class template imported_class раздела The Boost C++ Libraries BoostBook Documentation Subset Reference может быть полезна для разработчиков на c++ и boost.




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



:: Главная :: Reference ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-08-30 11:47:00
2025-07-05 02:19:13/0.005173921585083/0