• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
2<html>
3<head>
4<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
5<title>Class shared_library</title>
6<link rel="stylesheet" href="../../../../doc/src/boostbook.css" type="text/css">
7<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
8<link rel="home" href="../../index.html" title="The Boost C++ Libraries BoostBook Documentation Subset">
9<link rel="up" href="../../boost_dll/reference.html#header.boost.dll.shared_library_hpp" title="Header &lt;boost/dll/shared_library.hpp&gt;">
10<link rel="prev" href="program_location.html" title="Function program_location">
11<link rel="next" href="load_mode/type.html" title="Type type">
12</head>
13<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
14<table cellpadding="2" width="100%"><tr>
15<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../boost.png"></td>
16<td align="center"><a href="../../../../index.html">Home</a></td>
17<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
18<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
19<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
20<td align="center"><a href="../../../../more/index.htm">More</a></td>
21</tr></table>
22<hr>
23<div class="spirit-nav">
24<a accesskey="p" href="program_location.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../boost_dll/reference.html#header.boost.dll.shared_library_hpp"><img src="../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="load_mode/type.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a>
25</div>
26<div class="refentry">
27<a name="boost.dll.shared_library"></a><div class="titlepage"></div>
28<div class="refnamediv">
29<h2><span class="refentrytitle">Class shared_library</span></h2>
30<p>boost::dll::shared_library — This class can be used to load a Dynamic link libraries (DLL's) or Shared Libraries, also know as dynamic shared objects (DSO's) and get their exported symbols (functions and variables). </p>
31</div>
32<h2 xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv-title">Synopsis</h2>
33<div xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv"><pre class="synopsis"><span class="comment">// In header: &lt;<a class="link" href="../../boost_dll/reference.html#header.boost.dll.shared_library_hpp" title="Header &lt;boost/dll/shared_library.hpp&gt;">boost/dll/shared_library.hpp</a>&gt;
34
35</span>
36<span class="keyword">class</span> <a class="link" href="shared_library.html" title="Class shared_library">shared_library</a> <span class="special">{</span>
37<span class="keyword">public</span><span class="special">:</span>
38  <span class="comment">// types</span>
39  <span class="keyword">typedef</span> <span class="identifier">platform_specific</span> <a name="boost.dll.shared_library.native_handle_t"></a><span class="identifier">native_handle_t</span><span class="special">;</span>
40
41  <span class="comment">// <a class="link" href="shared_library.html#boost.dll.shared_libraryconstruct-copy-destruct">construct/copy/destruct</a></span>
42  <a class="link" href="shared_library.html#idm45168072559344-bb"><span class="identifier">shared_library</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span>
43  <a class="link" href="shared_library.html#idm45168072556736-bb"><span class="identifier">shared_library</span></a><span class="special">(</span><span class="keyword">const</span> <a class="link" href="shared_library.html" title="Class shared_library">shared_library</a> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
44  <a class="link" href="shared_library.html#idm45168072552528-bb"><span class="identifier">shared_library</span></a><span class="special">(</span><span class="keyword">const</span> <a class="link" href="shared_library.html" title="Class shared_library">shared_library</a> <span class="special">&amp;</span><span class="special">,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">dll</span><span class="special">::</span><span class="identifier">fs</span><span class="special">::</span><span class="identifier">error_code</span> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
45  <a class="link" href="shared_library.html#idm45168072546960-bb"><span class="identifier">shared_library</span></a><span class="special">(</span><a class="link" href="shared_library.html" title="Class shared_library">shared_library</a> <span class="special">&amp;&amp;</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span>
46  <span class="keyword">explicit</span> <a class="link" href="shared_library.html#idm45168072542896-bb"><span class="identifier">shared_library</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">dll</span><span class="special">::</span><span class="identifier">fs</span><span class="special">::</span><span class="identifier">path</span> <span class="special">&amp;</span><span class="special">,</span>
47                          <span class="identifier">load_mode</span><span class="special">::</span><span class="identifier">type</span> <span class="special">=</span> <span class="identifier">load_mode</span><span class="special">::</span><span class="identifier">default_mode</span><span class="special">)</span><span class="special">;</span>
48  <a class="link" href="shared_library.html#idm45168072537696-bb"><span class="identifier">shared_library</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">dll</span><span class="special">::</span><span class="identifier">fs</span><span class="special">::</span><span class="identifier">path</span> <span class="special">&amp;</span><span class="special">,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">dll</span><span class="special">::</span><span class="identifier">fs</span><span class="special">::</span><span class="identifier">error_code</span> <span class="special">&amp;</span><span class="special">,</span>
49                 <span class="identifier">load_mode</span><span class="special">::</span><span class="identifier">type</span> <span class="special">=</span> <span class="identifier">load_mode</span><span class="special">::</span><span class="identifier">default_mode</span><span class="special">)</span><span class="special">;</span>
50  <a class="link" href="shared_library.html#idm45168072531424-bb"><span class="identifier">shared_library</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">dll</span><span class="special">::</span><span class="identifier">fs</span><span class="special">::</span><span class="identifier">path</span> <span class="special">&amp;</span><span class="special">,</span> <span class="identifier">load_mode</span><span class="special">::</span><span class="identifier">type</span><span class="special">,</span>
51                 <span class="identifier">boost</span><span class="special">::</span><span class="identifier">dll</span><span class="special">::</span><span class="identifier">fs</span><span class="special">::</span><span class="identifier">error_code</span> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
52  <a class="link" href="shared_library.html" title="Class shared_library">shared_library</a> <span class="special">&amp;</span> <a class="link" href="shared_library.html#idm45168072528496-bb"><span class="keyword">operator</span><span class="special">=</span></a><span class="special">(</span><span class="keyword">const</span> <a class="link" href="shared_library.html" title="Class shared_library">shared_library</a> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
53  <a class="link" href="shared_library.html" title="Class shared_library">shared_library</a> <span class="special">&amp;</span> <a class="link" href="shared_library.html#idm45168072524112-bb"><span class="keyword">operator</span><span class="special">=</span></a><span class="special">(</span><a class="link" href="shared_library.html" title="Class shared_library">shared_library</a> <span class="special">&amp;&amp;</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span>
54  <a class="link" href="shared_library.html#idm45168072519440-bb"><span class="special">~</span><span class="identifier">shared_library</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span>
55
56  <span class="comment">// <a class="link" href="shared_library.html#idm45168072651536-bb">public member functions</a></span>
57  <a class="link" href="shared_library.html" title="Class shared_library">shared_library</a> <span class="special">&amp;</span>
58  <a class="link" href="shared_library.html#idm45168072650976-bb"><span class="identifier">assign</span></a><span class="special">(</span><span class="keyword">const</span> <a class="link" href="shared_library.html" title="Class shared_library">shared_library</a> <span class="special">&amp;</span><span class="special">,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">dll</span><span class="special">::</span><span class="identifier">fs</span><span class="special">::</span><span class="identifier">error_code</span> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
59  <a class="link" href="shared_library.html" title="Class shared_library">shared_library</a> <span class="special">&amp;</span> <a class="link" href="shared_library.html#idm45168072645024-bb"><span class="identifier">assign</span></a><span class="special">(</span><span class="keyword">const</span> <a class="link" href="shared_library.html" title="Class shared_library">shared_library</a> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
60  <span class="keyword">void</span> <a class="link" href="shared_library.html#idm45168072640416-bb"><span class="identifier">load</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">dll</span><span class="special">::</span><span class="identifier">fs</span><span class="special">::</span><span class="identifier">path</span> <span class="special">&amp;</span><span class="special">,</span>
61            <span class="identifier">load_mode</span><span class="special">::</span><span class="identifier">type</span> <span class="special">=</span> <span class="identifier">load_mode</span><span class="special">::</span><span class="identifier">default_mode</span><span class="special">)</span><span class="special">;</span>
62  <span class="keyword">void</span> <a class="link" href="shared_library.html#idm45168072634528-bb"><span class="identifier">load</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">dll</span><span class="special">::</span><span class="identifier">fs</span><span class="special">::</span><span class="identifier">path</span> <span class="special">&amp;</span><span class="special">,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">dll</span><span class="special">::</span><span class="identifier">fs</span><span class="special">::</span><span class="identifier">error_code</span> <span class="special">&amp;</span><span class="special">,</span>
63            <span class="identifier">load_mode</span><span class="special">::</span><span class="identifier">type</span> <span class="special">=</span> <span class="identifier">load_mode</span><span class="special">::</span><span class="identifier">default_mode</span><span class="special">)</span><span class="special">;</span>
64  <span class="keyword">void</span> <a class="link" href="shared_library.html#idm45168072627296-bb"><span class="identifier">load</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">dll</span><span class="special">::</span><span class="identifier">fs</span><span class="special">::</span><span class="identifier">path</span> <span class="special">&amp;</span><span class="special">,</span> <span class="identifier">load_mode</span><span class="special">::</span><span class="identifier">type</span><span class="special">,</span>
65            <span class="identifier">boost</span><span class="special">::</span><span class="identifier">dll</span><span class="special">::</span><span class="identifier">fs</span><span class="special">::</span><span class="identifier">error_code</span> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
66  <span class="keyword">void</span> <a class="link" href="shared_library.html#idm45168072623808-bb"><span class="identifier">unload</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span>
67  <span class="keyword">bool</span> <a class="link" href="shared_library.html#idm45168072620512-bb"><span class="identifier">is_loaded</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span>
68  <span class="keyword">bool</span> <a class="link" href="shared_library.html#idm45168072617376-bb"><span class="keyword">operator</span><span class="special">!</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span>
69  <span class="keyword">explicit</span> <a class="link" href="shared_library.html#idm45168072614240-bb"><span class="keyword">operator</span> <span class="keyword">bool</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span>
70  <span class="keyword">bool</span> <a class="link" href="shared_library.html#idm45168072610832-bb"><span class="identifier">has</span></a><span class="special">(</span><span class="keyword">const</span> <span class="keyword">char</span> <span class="special">*</span><span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span>
71  <span class="keyword">bool</span> <a class="link" href="shared_library.html#idm45168072606144-bb"><span class="identifier">has</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="special">&amp;</span><span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span>
72  <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> T<span class="special">&gt;</span>
73    <span class="identifier">boost</span><span class="special">::</span><span class="identifier">enable_if_c</span><span class="special">&lt;</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_member_pointer</span><span class="special">&lt;</span> <span class="identifier">T</span> <span class="special">&gt;</span><span class="special">::</span><span class="identifier">value</span><span class="special">||</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_reference</span><span class="special">&lt;</span> <span class="identifier">T</span> <span class="special">&gt;</span><span class="special">::</span><span class="identifier">value</span><span class="special">,</span> <span class="identifier">T</span> <span class="special">&gt;</span><span class="special">::</span><span class="identifier">type</span>
74    <a class="link" href="shared_library.html#idm45168072603792-bb"><span class="identifier">get</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="special">&amp;</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
75  <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> T<span class="special">&gt;</span>
76    <span class="identifier">boost</span><span class="special">::</span><span class="identifier">disable_if_c</span><span class="special">&lt;</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_member_pointer</span><span class="special">&lt;</span> <span class="identifier">T</span> <span class="special">&gt;</span><span class="special">::</span><span class="identifier">value</span><span class="special">||</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_reference</span><span class="special">&lt;</span> <span class="identifier">T</span> <span class="special">&gt;</span><span class="special">::</span><span class="identifier">value</span><span class="special">,</span> <span class="identifier">T</span> <span class="special">&amp;</span> <span class="special">&gt;</span><span class="special">::</span><span class="identifier">type</span>
77    <a class="link" href="shared_library.html#idm45168072595696-bb"><span class="identifier">get</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="special">&amp;</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
78  <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> T<span class="special">&gt;</span>
79    <span class="identifier">boost</span><span class="special">::</span><span class="identifier">enable_if_c</span><span class="special">&lt;</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_member_pointer</span><span class="special">&lt;</span> <span class="identifier">T</span> <span class="special">&gt;</span><span class="special">::</span><span class="identifier">value</span><span class="special">||</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_reference</span><span class="special">&lt;</span> <span class="identifier">T</span> <span class="special">&gt;</span><span class="special">::</span><span class="identifier">value</span><span class="special">,</span> <span class="identifier">T</span> <span class="special">&gt;</span><span class="special">::</span><span class="identifier">type</span>
80    <a class="link" href="shared_library.html#idm45168072592416-bb"><span class="identifier">get</span></a><span class="special">(</span><span class="keyword">const</span> <span class="keyword">char</span> <span class="special">*</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
81  <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> T<span class="special">&gt;</span>
82    <span class="identifier">boost</span><span class="special">::</span><span class="identifier">disable_if_c</span><span class="special">&lt;</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_member_pointer</span><span class="special">&lt;</span> <span class="identifier">T</span> <span class="special">&gt;</span><span class="special">::</span><span class="identifier">value</span><span class="special">||</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_reference</span><span class="special">&lt;</span> <span class="identifier">T</span> <span class="special">&gt;</span><span class="special">::</span><span class="identifier">value</span><span class="special">,</span> <span class="identifier">T</span> <span class="special">&amp;</span> <span class="special">&gt;</span><span class="special">::</span><span class="identifier">type</span>
83    <a class="link" href="shared_library.html#idm45168072589136-bb"><span class="identifier">get</span></a><span class="special">(</span><span class="keyword">const</span> <span class="keyword">char</span> <span class="special">*</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
84  <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> T<span class="special">&gt;</span> <span class="identifier">T</span> <span class="special">&amp;</span> <a class="link" href="shared_library.html#idm45168072585856-bb"><span class="identifier">get_alias</span></a><span class="special">(</span><span class="keyword">const</span> <span class="keyword">char</span> <span class="special">*</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
85  <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> T<span class="special">&gt;</span> <span class="identifier">T</span> <span class="special">&amp;</span> <a class="link" href="shared_library.html#idm45168072579472-bb"><span class="identifier">get_alias</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="special">&amp;</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
86  <span class="identifier">native_handle_t</span> <a class="link" href="shared_library.html#idm45168072576272-bb"><span class="identifier">native</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span>
87  <span class="identifier">boost</span><span class="special">::</span><span class="identifier">dll</span><span class="special">::</span><span class="identifier">fs</span><span class="special">::</span><span class="identifier">path</span> <a class="link" href="shared_library.html#idm45168072573824-bb"><span class="identifier">location</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
88  <span class="identifier">boost</span><span class="special">::</span><span class="identifier">dll</span><span class="special">::</span><span class="identifier">fs</span><span class="special">::</span><span class="identifier">path</span> <a class="link" href="shared_library.html#idm45168072569328-bb"><span class="identifier">location</span></a><span class="special">(</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">dll</span><span class="special">::</span><span class="identifier">fs</span><span class="special">::</span><span class="identifier">error_code</span> <span class="special">&amp;</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
89  <span class="keyword">void</span> <a class="link" href="shared_library.html#idm45168072563504-bb"><span class="identifier">swap</span></a><span class="special">(</span><a class="link" href="shared_library.html" title="Class shared_library">shared_library</a> <span class="special">&amp;</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span>
90
91  <span class="comment">// <a class="link" href="shared_library.html#idm45168072517136-bb">public static functions</a></span>
92  <span class="keyword">static</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">dll</span><span class="special">::</span><span class="identifier">fs</span><span class="special">::</span><span class="identifier">path</span> <a class="link" href="shared_library.html#idm45168072516576-bb"><span class="identifier">suffix</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span>
93  <span class="keyword">static</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">dll</span><span class="special">::</span><span class="identifier">fs</span><span class="special">::</span><span class="identifier">path</span> <a class="link" href="shared_library.html#idm45168072514032-bb"><span class="identifier">decorate</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">dll</span><span class="special">::</span><span class="identifier">fs</span><span class="special">::</span><span class="identifier">path</span> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
94<span class="special">}</span><span class="special">;</span></pre></div>
95<div class="refsect1">
96<a name="id-1.3.15.8.2.6.4.4"></a><h2>Description</h2>
97<p><a class="link" href="shared_library.html" title="Class shared_library">shared_library</a> instances share reference count to an actual loaded DLL/DSO, so it is safe and memory efficient to have multiple instances of <a class="link" href="shared_library.html" title="Class shared_library">shared_library</a> referencing the same DLL/DSO even if those instances were loaded using different paths (relative + absolute) referencing the same object.</p>
98<p>On Linux/POSIX link with library "dl". "-fvisibility=hidden" flag is also recommended for use on Linux/POSIX. </p>
99<div class="refsect2">
100<a name="id-1.3.15.8.2.6.4.4.4"></a><h3>
101<a name="boost.dll.shared_libraryconstruct-copy-destruct"></a><code class="computeroutput">shared_library</code>
102        public
103       construct/copy/destruct</h3>
104<div class="orderedlist"><ol class="orderedlist" type="1">
105<li class="listitem">
106<pre class="literallayout"><a name="idm45168072559344-bb"></a><span class="identifier">shared_library</span><span class="special">(</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre>
107<p>Creates in anstance that does not reference any DLL/DSO.</p>
108<p>
109
110</p>
111<div class="variablelist"><table border="0" class="variablelist compact">
112<colgroup>
113<col align="left" valign="top">
114<col>
115</colgroup>
116<tbody>
117<tr>
118<td><p><span class="term">Postconditions:</span></p></td>
119<td><p>this-&gt;is_loaded() returns false. </p></td>
120</tr>
121<tr>
122<td><p><span class="term">Throws:</span></p></td>
123<td>Nothing. </td>
124</tr>
125</tbody>
126</table></div>
127</li>
128<li class="listitem">
129<pre class="literallayout"><a name="idm45168072556736-bb"></a><span class="identifier">shared_library</span><span class="special">(</span><span class="keyword">const</span> <a class="link" href="shared_library.html" title="Class shared_library">shared_library</a> <span class="special">&amp;</span> lib<span class="special">)</span><span class="special">;</span></pre>
130<p>Copy constructor that increments the reference count of an underlying shared library. Same as calling constructor with <code class="computeroutput">lib.location()</code> parameter.</p>
131<p>
132
133
134</p>
135<div class="variablelist"><table border="0" class="variablelist compact">
136<colgroup>
137<col align="left" valign="top">
138<col>
139</colgroup>
140<tbody>
141<tr>
142<td><p><span class="term">Parameters:</span></p></td>
143<td><div class="variablelist"><table border="0" class="variablelist compact">
144<colgroup>
145<col align="left" valign="top">
146<col>
147</colgroup>
148<tbody><tr>
149<td><p><span class="term"><code class="computeroutput">lib</code></span></p></td>
150<td><p>A library to copy. </p></td>
151</tr></tbody>
152</table></div></td>
153</tr>
154<tr>
155<td><p><span class="term">Postconditions:</span></p></td>
156<td><p>lib == *this </p></td>
157</tr>
158<tr>
159<td><p><span class="term">Throws:</span></p></td>
160<td> </td>
161</tr>
162</tbody>
163</table></div>
164</li>
165<li class="listitem">
166<pre class="literallayout"><a name="idm45168072552528-bb"></a><span class="identifier">shared_library</span><span class="special">(</span><span class="keyword">const</span> <a class="link" href="shared_library.html" title="Class shared_library">shared_library</a> <span class="special">&amp;</span> lib<span class="special">,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">dll</span><span class="special">::</span><span class="identifier">fs</span><span class="special">::</span><span class="identifier">error_code</span> <span class="special">&amp;</span> ec<span class="special">)</span><span class="special">;</span></pre>
167<p>Copy constructor that increments the reference count of an underlying shared library. Same as calling constructor with <code class="computeroutput">lib.location(), ec</code> parameters.</p>
168<p>
169
170
171</p>
172<div class="variablelist"><table border="0" class="variablelist compact">
173<colgroup>
174<col align="left" valign="top">
175<col>
176</colgroup>
177<tbody>
178<tr>
179<td><p><span class="term">Parameters:</span></p></td>
180<td><div class="variablelist"><table border="0" class="variablelist compact">
181<colgroup>
182<col align="left" valign="top">
183<col>
184</colgroup>
185<tbody>
186<tr>
187<td><p><span class="term"><code class="computeroutput">ec</code></span></p></td>
188<td><p>Variable that will be set to the result of the operation. </p></td>
189</tr>
190<tr>
191<td><p><span class="term"><code class="computeroutput">lib</code></span></p></td>
192<td><p>A shared library to copy. </p></td>
193</tr>
194</tbody>
195</table></div></td>
196</tr>
197<tr>
198<td><p><span class="term">Postconditions:</span></p></td>
199<td><p>lib == *this </p></td>
200</tr>
201<tr>
202<td><p><span class="term">Throws:</span></p></td>
203<td>std::bad_alloc in case of insufficient memory. </td>
204</tr>
205</tbody>
206</table></div>
207</li>
208<li class="listitem">
209<pre class="literallayout"><a name="idm45168072546960-bb"></a><span class="identifier">shared_library</span><span class="special">(</span><a class="link" href="shared_library.html" title="Class shared_library">shared_library</a> <span class="special">&amp;&amp;</span> lib<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre>
210<p>Move constructor. Does not invalidate existing symbols and functions loaded from lib.</p>
211<p>
212
213
214</p>
215<div class="variablelist"><table border="0" class="variablelist compact">
216<colgroup>
217<col align="left" valign="top">
218<col>
219</colgroup>
220<tbody>
221<tr>
222<td><p><span class="term">Parameters:</span></p></td>
223<td><div class="variablelist"><table border="0" class="variablelist compact">
224<colgroup>
225<col align="left" valign="top">
226<col>
227</colgroup>
228<tbody><tr>
229<td><p><span class="term"><code class="computeroutput">lib</code></span></p></td>
230<td><p>A shared library to move from. </p></td>
231</tr></tbody>
232</table></div></td>
233</tr>
234<tr>
235<td><p><span class="term">Postconditions:</span></p></td>
236<td><p>lib.is_loaded() returns false, this-&gt;is_loaded() return true. </p></td>
237</tr>
238<tr>
239<td><p><span class="term">Throws:</span></p></td>
240<td>Nothing. </td>
241</tr>
242</tbody>
243</table></div>
244</li>
245<li class="listitem">
246<pre class="literallayout"><span class="keyword">explicit</span> <a name="idm45168072542896-bb"></a><span class="identifier">shared_library</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">dll</span><span class="special">::</span><span class="identifier">fs</span><span class="special">::</span><span class="identifier">path</span> <span class="special">&amp;</span> lib_path<span class="special">,</span>
247                        <span class="identifier">load_mode</span><span class="special">::</span><span class="identifier">type</span> mode <span class="special">=</span> <span class="identifier">load_mode</span><span class="special">::</span><span class="identifier">default_mode</span><span class="special">)</span><span class="special">;</span></pre>
248<p>Loads a library by specified path with a specified mode.</p>
249<p>
250
251</p>
252<div class="variablelist"><table border="0" class="variablelist compact">
253<colgroup>
254<col align="left" valign="top">
255<col>
256</colgroup>
257<tbody>
258<tr>
259<td><p><span class="term">Parameters:</span></p></td>
260<td><div class="variablelist"><table border="0" class="variablelist compact">
261<colgroup>
262<col align="left" valign="top">
263<col>
264</colgroup>
265<tbody>
266<tr>
267<td><p><span class="term"><code class="computeroutput">lib_path</code></span></p></td>
268<td><p>Library file name. Can handle std::string, const char*, std::wstring, const wchar_t* or <a class="link" href="fs/path.html" title="Type definition path">boost::dll::fs::path</a>. </p></td>
269</tr>
270<tr>
271<td><p><span class="term"><code class="computeroutput">mode</code></span></p></td>
272<td><p>A mode that will be used on library load. </p></td>
273</tr>
274</tbody>
275</table></div></td>
276</tr>
277<tr>
278<td><p><span class="term">Throws:</span></p></td>
279<td> </td>
280</tr>
281</tbody>
282</table></div>
283</li>
284<li class="listitem">
285<pre class="literallayout"><a name="idm45168072537696-bb"></a><span class="identifier">shared_library</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">dll</span><span class="special">::</span><span class="identifier">fs</span><span class="special">::</span><span class="identifier">path</span> <span class="special">&amp;</span> lib_path<span class="special">,</span>
286               <span class="identifier">boost</span><span class="special">::</span><span class="identifier">dll</span><span class="special">::</span><span class="identifier">fs</span><span class="special">::</span><span class="identifier">error_code</span> <span class="special">&amp;</span> ec<span class="special">,</span>
287               <span class="identifier">load_mode</span><span class="special">::</span><span class="identifier">type</span> mode <span class="special">=</span> <span class="identifier">load_mode</span><span class="special">::</span><span class="identifier">default_mode</span><span class="special">)</span><span class="special">;</span></pre>
288<p>Loads a library by specified path with a specified mode.</p>
289<p>
290
291</p>
292<div class="variablelist"><table border="0" class="variablelist compact">
293<colgroup>
294<col align="left" valign="top">
295<col>
296</colgroup>
297<tbody>
298<tr>
299<td><p><span class="term">Parameters:</span></p></td>
300<td><div class="variablelist"><table border="0" class="variablelist compact">
301<colgroup>
302<col align="left" valign="top">
303<col>
304</colgroup>
305<tbody>
306<tr>
307<td><p><span class="term"><code class="computeroutput">ec</code></span></p></td>
308<td><p>Variable that will be set to the result of the operation. </p></td>
309</tr>
310<tr>
311<td><p><span class="term"><code class="computeroutput">lib_path</code></span></p></td>
312<td><p>Library file name. Can handle std::string, const char*, std::wstring, const wchar_t* or <a class="link" href="fs/path.html" title="Type definition path">boost::dll::fs::path</a>. </p></td>
313</tr>
314<tr>
315<td><p><span class="term"><code class="computeroutput">mode</code></span></p></td>
316<td><p>A mode that will be used on library load. </p></td>
317</tr>
318</tbody>
319</table></div></td>
320</tr>
321<tr>
322<td><p><span class="term">Throws:</span></p></td>
323<td>std::bad_alloc in case of insufficient memory. </td>
324</tr>
325</tbody>
326</table></div>
327</li>
328<li class="listitem">
329<pre class="literallayout"><a name="idm45168072531424-bb"></a><span class="identifier">shared_library</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">dll</span><span class="special">::</span><span class="identifier">fs</span><span class="special">::</span><span class="identifier">path</span> <span class="special">&amp;</span> lib_path<span class="special">,</span> <span class="identifier">load_mode</span><span class="special">::</span><span class="identifier">type</span> mode<span class="special">,</span>
330               <span class="identifier">boost</span><span class="special">::</span><span class="identifier">dll</span><span class="special">::</span><span class="identifier">fs</span><span class="special">::</span><span class="identifier">error_code</span> <span class="special">&amp;</span> ec<span class="special">)</span><span class="special">;</span></pre>
331<p>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </p>
332</li>
333<li class="listitem">
334<pre class="literallayout"><a class="link" href="shared_library.html" title="Class shared_library">shared_library</a> <span class="special">&amp;</span> <a name="idm45168072528496-bb"></a><span class="keyword">operator</span><span class="special">=</span><span class="special">(</span><span class="keyword">const</span> <a class="link" href="shared_library.html" title="Class shared_library">shared_library</a> <span class="special">&amp;</span> lib<span class="special">)</span><span class="special">;</span></pre>
335<p>Assignment operator. If this-&gt;is_loaded() then calls this-&gt;unload(). Does not invalidate existing symbols and functions loaded from lib.</p>
336<p>
337
338
339</p>
340<div class="variablelist"><table border="0" class="variablelist compact">
341<colgroup>
342<col align="left" valign="top">
343<col>
344</colgroup>
345<tbody>
346<tr>
347<td><p><span class="term">Parameters:</span></p></td>
348<td><div class="variablelist"><table border="0" class="variablelist compact">
349<colgroup>
350<col align="left" valign="top">
351<col>
352</colgroup>
353<tbody><tr>
354<td><p><span class="term"><code class="computeroutput">lib</code></span></p></td>
355<td><p>A shared library to assign from. </p></td>
356</tr></tbody>
357</table></div></td>
358</tr>
359<tr>
360<td><p><span class="term">Postconditions:</span></p></td>
361<td><p>lib == *this </p></td>
362</tr>
363<tr>
364<td><p><span class="term">Throws:</span></p></td>
365<td> </td>
366</tr>
367</tbody>
368</table></div>
369</li>
370<li class="listitem">
371<pre class="literallayout"><a class="link" href="shared_library.html" title="Class shared_library">shared_library</a> <span class="special">&amp;</span> <a name="idm45168072524112-bb"></a><span class="keyword">operator</span><span class="special">=</span><span class="special">(</span><a class="link" href="shared_library.html" title="Class shared_library">shared_library</a> <span class="special">&amp;&amp;</span> lib<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre>
372<p>Move assignment operator. If this-&gt;is_loaded() then calls this-&gt;unload(). Does not invalidate existing symbols and functions loaded from lib.</p>
373<p>
374
375
376</p>
377<div class="variablelist"><table border="0" class="variablelist compact">
378<colgroup>
379<col align="left" valign="top">
380<col>
381</colgroup>
382<tbody>
383<tr>
384<td><p><span class="term">Parameters:</span></p></td>
385<td><div class="variablelist"><table border="0" class="variablelist compact">
386<colgroup>
387<col align="left" valign="top">
388<col>
389</colgroup>
390<tbody><tr>
391<td><p><span class="term"><code class="computeroutput">lib</code></span></p></td>
392<td><p>A library to move from. </p></td>
393</tr></tbody>
394</table></div></td>
395</tr>
396<tr>
397<td><p><span class="term">Postconditions:</span></p></td>
398<td><p>lib.is_loaded() returns false. </p></td>
399</tr>
400<tr>
401<td><p><span class="term">Throws:</span></p></td>
402<td>Nothing. </td>
403</tr>
404</tbody>
405</table></div>
406</li>
407<li class="listitem">
408<pre class="literallayout"><a name="idm45168072519440-bb"></a><span class="special">~</span><span class="identifier">shared_library</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre>
409<p>Destroys the object by calling <code class="computeroutput">unload()</code>. If library was loaded multiple times by different instances, the actual DLL/DSO won't be unloaded until there is at least one instance that references the DLL/DSO.</p>
410<p>
411</p>
412<div class="variablelist"><table border="0" class="variablelist compact">
413<colgroup>
414<col align="left" valign="top">
415<col>
416</colgroup>
417<tbody><tr>
418<td><p><span class="term">Throws:</span></p></td>
419<td>Nothing. </td>
420</tr></tbody>
421</table></div>
422</li>
423</ol></div>
424</div>
425<div class="refsect2">
426<a name="id-1.3.15.8.2.6.4.4.5"></a><h3>
427<a name="idm45168072651536-bb"></a><code class="computeroutput">shared_library</code> public member functions</h3>
428<div class="orderedlist"><ol class="orderedlist" type="1">
429<li class="listitem">
430<pre class="literallayout"><a class="link" href="shared_library.html" title="Class shared_library">shared_library</a> <span class="special">&amp;</span>
431<a name="idm45168072650976-bb"></a><span class="identifier">assign</span><span class="special">(</span><span class="keyword">const</span> <a class="link" href="shared_library.html" title="Class shared_library">shared_library</a> <span class="special">&amp;</span> lib<span class="special">,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">dll</span><span class="special">::</span><span class="identifier">fs</span><span class="special">::</span><span class="identifier">error_code</span> <span class="special">&amp;</span> ec<span class="special">)</span><span class="special">;</span></pre>
432<p>Makes *this share the same shared object as lib. If *this is loaded, then unloads it.</p>
433<p>
434
435
436</p>
437<div class="variablelist"><table border="0" class="variablelist compact">
438<colgroup>
439<col align="left" valign="top">
440<col>
441</colgroup>
442<tbody>
443<tr>
444<td><p><span class="term">Parameters:</span></p></td>
445<td><div class="variablelist"><table border="0" class="variablelist compact">
446<colgroup>
447<col align="left" valign="top">
448<col>
449</colgroup>
450<tbody>
451<tr>
452<td><p><span class="term"><code class="computeroutput">ec</code></span></p></td>
453<td><p>Variable that will be set to the result of the operation. </p></td>
454</tr>
455<tr>
456<td><p><span class="term"><code class="computeroutput">lib</code></span></p></td>
457<td><p>A library to copy. </p></td>
458</tr>
459</tbody>
460</table></div></td>
461</tr>
462<tr>
463<td><p><span class="term">Postconditions:</span></p></td>
464<td><p>lib.location() == this-&gt;location(), lib == *this </p></td>
465</tr>
466<tr>
467<td><p><span class="term">Throws:</span></p></td>
468<td>std::bad_alloc in case of insufficient memory. </td>
469</tr>
470</tbody>
471</table></div>
472</li>
473<li class="listitem">
474<pre class="literallayout"><a class="link" href="shared_library.html" title="Class shared_library">shared_library</a> <span class="special">&amp;</span> <a name="idm45168072645024-bb"></a><span class="identifier">assign</span><span class="special">(</span><span class="keyword">const</span> <a class="link" href="shared_library.html" title="Class shared_library">shared_library</a> <span class="special">&amp;</span> lib<span class="special">)</span><span class="special">;</span></pre>
475<p>Makes *this share the same shared object as lib. If *this is loaded, then unloads it.</p>
476<p>
477
478
479</p>
480<div class="variablelist"><table border="0" class="variablelist compact">
481<colgroup>
482<col align="left" valign="top">
483<col>
484</colgroup>
485<tbody>
486<tr>
487<td><p><span class="term">Parameters:</span></p></td>
488<td><div class="variablelist"><table border="0" class="variablelist compact">
489<colgroup>
490<col align="left" valign="top">
491<col>
492</colgroup>
493<tbody><tr>
494<td><p><span class="term"><code class="computeroutput">lib</code></span></p></td>
495<td><p>A library instance to assign from. </p></td>
496</tr></tbody>
497</table></div></td>
498</tr>
499<tr>
500<td><p><span class="term">Postconditions:</span></p></td>
501<td><p>lib.location() == this-&gt;location() </p></td>
502</tr>
503<tr>
504<td><p><span class="term">Throws:</span></p></td>
505<td> </td>
506</tr>
507</tbody>
508</table></div>
509</li>
510<li class="listitem">
511<pre class="literallayout"><span class="keyword">void</span> <a name="idm45168072640416-bb"></a><span class="identifier">load</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">dll</span><span class="special">::</span><span class="identifier">fs</span><span class="special">::</span><span class="identifier">path</span> <span class="special">&amp;</span> lib_path<span class="special">,</span>
512          <span class="identifier">load_mode</span><span class="special">::</span><span class="identifier">type</span> mode <span class="special">=</span> <span class="identifier">load_mode</span><span class="special">::</span><span class="identifier">default_mode</span><span class="special">)</span><span class="special">;</span></pre>
513<p>Loads a library by specified path with a specified mode.</p>
514<p>Note that if some library is already loaded in this instance, load will call unload() and then load the new provided library.</p>
515<p>
516
517</p>
518<div class="variablelist"><table border="0" class="variablelist compact">
519<colgroup>
520<col align="left" valign="top">
521<col>
522</colgroup>
523<tbody>
524<tr>
525<td><p><span class="term">Parameters:</span></p></td>
526<td><div class="variablelist"><table border="0" class="variablelist compact">
527<colgroup>
528<col align="left" valign="top">
529<col>
530</colgroup>
531<tbody>
532<tr>
533<td><p><span class="term"><code class="computeroutput">lib_path</code></span></p></td>
534<td><p>Library file name. Can handle std::string, const char*, std::wstring, const wchar_t* or <a class="link" href="fs/path.html" title="Type definition path">boost::dll::fs::path</a>. </p></td>
535</tr>
536<tr>
537<td><p><span class="term"><code class="computeroutput">mode</code></span></p></td>
538<td><p>A mode that will be used on library load. </p></td>
539</tr>
540</tbody>
541</table></div></td>
542</tr>
543<tr>
544<td><p><span class="term">Throws:</span></p></td>
545<td> </td>
546</tr>
547</tbody>
548</table></div>
549</li>
550<li class="listitem">
551<pre class="literallayout"><span class="keyword">void</span> <a name="idm45168072634528-bb"></a><span class="identifier">load</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">dll</span><span class="special">::</span><span class="identifier">fs</span><span class="special">::</span><span class="identifier">path</span> <span class="special">&amp;</span> lib_path<span class="special">,</span>
552          <span class="identifier">boost</span><span class="special">::</span><span class="identifier">dll</span><span class="special">::</span><span class="identifier">fs</span><span class="special">::</span><span class="identifier">error_code</span> <span class="special">&amp;</span> ec<span class="special">,</span>
553          <span class="identifier">load_mode</span><span class="special">::</span><span class="identifier">type</span> mode <span class="special">=</span> <span class="identifier">load_mode</span><span class="special">::</span><span class="identifier">default_mode</span><span class="special">)</span><span class="special">;</span></pre>
554<p>Loads a library by specified path with a specified mode.</p>
555<p>Note that if some library is already loaded in this instance, load will call unload() and then load the new provided library.</p>
556<p>
557
558</p>
559<div class="variablelist"><table border="0" class="variablelist compact">
560<colgroup>
561<col align="left" valign="top">
562<col>
563</colgroup>
564<tbody>
565<tr>
566<td><p><span class="term">Parameters:</span></p></td>
567<td><div class="variablelist"><table border="0" class="variablelist compact">
568<colgroup>
569<col align="left" valign="top">
570<col>
571</colgroup>
572<tbody>
573<tr>
574<td><p><span class="term"><code class="computeroutput">ec</code></span></p></td>
575<td><p>Variable that will be set to the result of the operation. </p></td>
576</tr>
577<tr>
578<td><p><span class="term"><code class="computeroutput">lib_path</code></span></p></td>
579<td><p>Library file name. Can handle std::string, const char*, std::wstring, const wchar_t* or <a class="link" href="fs/path.html" title="Type definition path">boost::dll::fs::path</a>. </p></td>
580</tr>
581<tr>
582<td><p><span class="term"><code class="computeroutput">mode</code></span></p></td>
583<td><p>A mode that will be used on library load. </p></td>
584</tr>
585</tbody>
586</table></div></td>
587</tr>
588<tr>
589<td><p><span class="term">Throws:</span></p></td>
590<td>std::bad_alloc in case of insufficient memory. </td>
591</tr>
592</tbody>
593</table></div>
594</li>
595<li class="listitem">
596<pre class="literallayout"><span class="keyword">void</span> <a name="idm45168072627296-bb"></a><span class="identifier">load</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">dll</span><span class="special">::</span><span class="identifier">fs</span><span class="special">::</span><span class="identifier">path</span> <span class="special">&amp;</span> lib_path<span class="special">,</span> <span class="identifier">load_mode</span><span class="special">::</span><span class="identifier">type</span> mode<span class="special">,</span>
597          <span class="identifier">boost</span><span class="special">::</span><span class="identifier">dll</span><span class="special">::</span><span class="identifier">fs</span><span class="special">::</span><span class="identifier">error_code</span> <span class="special">&amp;</span> ec<span class="special">)</span><span class="special">;</span></pre>
598<p>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </p>
599</li>
600<li class="listitem">
601<pre class="literallayout"><span class="keyword">void</span> <a name="idm45168072623808-bb"></a><span class="identifier">unload</span><span class="special">(</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre>
602<p>Unloads a shared library. If library was loaded multiple times by different instances, the actual DLL/DSO won't be unloaded until there is at least one instance that references the DLL/DSO.</p>
603<p>
604
605</p>
606<div class="variablelist"><table border="0" class="variablelist compact">
607<colgroup>
608<col align="left" valign="top">
609<col>
610</colgroup>
611<tbody>
612<tr>
613<td><p><span class="term">Postconditions:</span></p></td>
614<td><p>this-&gt;is_loaded() returns false. </p></td>
615</tr>
616<tr>
617<td><p><span class="term">Throws:</span></p></td>
618<td>Nothing. </td>
619</tr>
620</tbody>
621</table></div>
622</li>
623<li class="listitem">
624<pre class="literallayout"><span class="keyword">bool</span> <a name="idm45168072620512-bb"></a><span class="identifier">is_loaded</span><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span></pre>
625<p>Check if an library is loaded.</p>
626<p>
627
628</p>
629<div class="variablelist"><table border="0" class="variablelist compact">
630<colgroup>
631<col align="left" valign="top">
632<col>
633</colgroup>
634<tbody>
635<tr>
636<td><p><span class="term">Returns:</span></p></td>
637<td><p>true if a library has been loaded. </p></td>
638</tr>
639<tr>
640<td><p><span class="term">Throws:</span></p></td>
641<td>Nothing. </td>
642</tr>
643</tbody>
644</table></div>
645</li>
646<li class="listitem">
647<pre class="literallayout"><span class="keyword">bool</span> <a name="idm45168072617376-bb"></a><span class="keyword">operator</span><span class="special">!</span><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span></pre>
648<p>Check if an library is not loaded.</p>
649<p>
650
651</p>
652<div class="variablelist"><table border="0" class="variablelist compact">
653<colgroup>
654<col align="left" valign="top">
655<col>
656</colgroup>
657<tbody>
658<tr>
659<td><p><span class="term">Returns:</span></p></td>
660<td><p>true if a library has not been loaded. </p></td>
661</tr>
662<tr>
663<td><p><span class="term">Throws:</span></p></td>
664<td>Nothing. </td>
665</tr>
666</tbody>
667</table></div>
668</li>
669<li class="listitem">
670<pre class="literallayout"><span class="keyword">explicit</span> <a name="idm45168072614240-bb"></a><span class="keyword">operator</span> <span class="keyword">bool</span><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span></pre>
671<p>Check if an library is loaded.</p>
672<p>
673
674</p>
675<div class="variablelist"><table border="0" class="variablelist compact">
676<colgroup>
677<col align="left" valign="top">
678<col>
679</colgroup>
680<tbody>
681<tr>
682<td><p><span class="term">Returns:</span></p></td>
683<td><p>true if a library has been loaded. </p></td>
684</tr>
685<tr>
686<td><p><span class="term">Throws:</span></p></td>
687<td>Nothing. </td>
688</tr>
689</tbody>
690</table></div>
691</li>
692<li class="listitem">
693<pre class="literallayout"><span class="keyword">bool</span> <a name="idm45168072610832-bb"></a><span class="identifier">has</span><span class="special">(</span><span class="keyword">const</span> <span class="keyword">char</span> <span class="special">*</span> symbol_name<span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span></pre>
694<p>Search for a given symbol on loaded library. Works for all symbols, including alias names.</p>
695<p>
696
697
698</p>
699<div class="variablelist"><table border="0" class="variablelist compact">
700<colgroup>
701<col align="left" valign="top">
702<col>
703</colgroup>
704<tbody>
705<tr>
706<td><p><span class="term">Parameters:</span></p></td>
707<td><div class="variablelist"><table border="0" class="variablelist compact">
708<colgroup>
709<col align="left" valign="top">
710<col>
711</colgroup>
712<tbody><tr>
713<td><p><span class="term"><code class="computeroutput">symbol_name</code></span></p></td>
714<td><p>Null-terminated symbol name. Can handle std::string, char*, const char*. </p></td>
715</tr></tbody>
716</table></div></td>
717</tr>
718<tr>
719<td><p><span class="term">Returns:</span></p></td>
720<td><p><code class="computeroutput">true</code> if the loaded library contains a symbol with a given name. </p></td>
721</tr>
722<tr>
723<td><p><span class="term">Throws:</span></p></td>
724<td>Nothing. </td>
725</tr>
726</tbody>
727</table></div>
728</li>
729<li class="listitem">
730<pre class="literallayout"><span class="keyword">bool</span> <a name="idm45168072606144-bb"></a><span class="identifier">has</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="special">&amp;</span> symbol_name<span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span></pre>
731<p>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </p>
732</li>
733<li class="listitem">
734<pre class="literallayout"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> T<span class="special">&gt;</span>
735  <span class="identifier">boost</span><span class="special">::</span><span class="identifier">enable_if_c</span><span class="special">&lt;</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_member_pointer</span><span class="special">&lt;</span> <span class="identifier">T</span> <span class="special">&gt;</span><span class="special">::</span><span class="identifier">value</span><span class="special">||</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_reference</span><span class="special">&lt;</span> <span class="identifier">T</span> <span class="special">&gt;</span><span class="special">::</span><span class="identifier">value</span><span class="special">,</span> <span class="identifier">T</span> <span class="special">&gt;</span><span class="special">::</span><span class="identifier">type</span>
736  <a name="idm45168072603792-bb"></a><span class="identifier">get</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="special">&amp;</span> symbol_name<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre>
737<p>Returns reference to the symbol (function or variable) with the given name from the loaded library. This call will always succeed and throw nothing if call to <code class="computeroutput">has(const char* )</code> member function with the same symbol name returned <code class="computeroutput">true</code>.</p>
738<p><span class="bold"><strong>Example:</strong></span> </p>
739<pre class="programlisting"><span class="keyword">int</span><span class="special">&amp;</span> <span class="identifier">i0</span> <span class="special">=</span> <span class="identifier">lib</span><span class="special">.</span><span class="identifier">get</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&gt;</span><span class="special">(</span><span class="string">"integer_name"</span><span class="special">)</span><span class="special">;</span>
740<span class="keyword">int</span><span class="special">&amp;</span> <span class="identifier">i1</span> <span class="special">=</span> <span class="special">*</span><span class="identifier">lib</span><span class="special">.</span><span class="identifier">get</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">*</span><span class="special">&gt;</span><span class="special">(</span><span class="string">"integer_alias_name"</span><span class="special">)</span><span class="special">;</span>
741</pre>
742<p>
743
744
745
746</p>
747<div class="variablelist"><table border="0" class="variablelist compact">
748<colgroup>
749<col align="left" valign="top">
750<col>
751</colgroup>
752<tbody>
753<tr>
754<td><p><span class="term">Parameters:</span></p></td>
755<td><div class="variablelist"><table border="0" class="variablelist compact">
756<colgroup>
757<col align="left" valign="top">
758<col>
759</colgroup>
760<tbody><tr>
761<td><p><span class="term"><code class="computeroutput">symbol_name</code></span></p></td>
762<td><p>Null-terminated symbol name. Can handle std::string, char*, const char*. </p></td>
763</tr></tbody>
764</table></div></td>
765</tr>
766<tr>
767<td><p><span class="term">Template Parameters:</span></p></td>
768<td><div class="variablelist"><table border="0" class="variablelist compact">
769<colgroup>
770<col align="left" valign="top">
771<col>
772</colgroup>
773<tbody><tr>
774<td><p><span class="term"><code class="computeroutput">T</code></span></p></td>
775<td><p>Type of the symbol that we are going to import. Must be explicitly specified. </p></td>
776</tr></tbody>
777</table></div></td>
778</tr>
779<tr>
780<td><p><span class="term">Returns:</span></p></td>
781<td><p>Reference to the symbol. </p></td>
782</tr>
783<tr>
784<td><p><span class="term">Throws:</span></p></td>
785<td> </td>
786</tr>
787</tbody>
788</table></div>
789</li>
790<li class="listitem">
791<pre class="literallayout"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> T<span class="special">&gt;</span>
792  <span class="identifier">boost</span><span class="special">::</span><span class="identifier">disable_if_c</span><span class="special">&lt;</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_member_pointer</span><span class="special">&lt;</span> <span class="identifier">T</span> <span class="special">&gt;</span><span class="special">::</span><span class="identifier">value</span><span class="special">||</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_reference</span><span class="special">&lt;</span> <span class="identifier">T</span> <span class="special">&gt;</span><span class="special">::</span><span class="identifier">value</span><span class="special">,</span> <span class="identifier">T</span> <span class="special">&amp;</span> <span class="special">&gt;</span><span class="special">::</span><span class="identifier">type</span>
793  <a name="idm45168072595696-bb"></a><span class="identifier">get</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="special">&amp;</span> symbol_name<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre>
794<p>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </p>
795</li>
796<li class="listitem">
797<pre class="literallayout"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> T<span class="special">&gt;</span>
798  <span class="identifier">boost</span><span class="special">::</span><span class="identifier">enable_if_c</span><span class="special">&lt;</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_member_pointer</span><span class="special">&lt;</span> <span class="identifier">T</span> <span class="special">&gt;</span><span class="special">::</span><span class="identifier">value</span><span class="special">||</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_reference</span><span class="special">&lt;</span> <span class="identifier">T</span> <span class="special">&gt;</span><span class="special">::</span><span class="identifier">value</span><span class="special">,</span> <span class="identifier">T</span> <span class="special">&gt;</span><span class="special">::</span><span class="identifier">type</span>
799  <a name="idm45168072592416-bb"></a><span class="identifier">get</span><span class="special">(</span><span class="keyword">const</span> <span class="keyword">char</span> <span class="special">*</span> symbol_name<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre>
800<p>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </p>
801</li>
802<li class="listitem">
803<pre class="literallayout"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> T<span class="special">&gt;</span>
804  <span class="identifier">boost</span><span class="special">::</span><span class="identifier">disable_if_c</span><span class="special">&lt;</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_member_pointer</span><span class="special">&lt;</span> <span class="identifier">T</span> <span class="special">&gt;</span><span class="special">::</span><span class="identifier">value</span><span class="special">||</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_reference</span><span class="special">&lt;</span> <span class="identifier">T</span> <span class="special">&gt;</span><span class="special">::</span><span class="identifier">value</span><span class="special">,</span> <span class="identifier">T</span> <span class="special">&amp;</span> <span class="special">&gt;</span><span class="special">::</span><span class="identifier">type</span>
805  <a name="idm45168072589136-bb"></a><span class="identifier">get</span><span class="special">(</span><span class="keyword">const</span> <span class="keyword">char</span> <span class="special">*</span> symbol_name<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre>
806<p>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </p>
807</li>
808<li class="listitem">
809<pre class="literallayout"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> T<span class="special">&gt;</span> <span class="identifier">T</span> <span class="special">&amp;</span> <a name="idm45168072585856-bb"></a><span class="identifier">get_alias</span><span class="special">(</span><span class="keyword">const</span> <span class="keyword">char</span> <span class="special">*</span> alias_name<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre>
810<p>Returns a symbol (function or variable) from a shared library by alias name of the symbol.</p>
811<p><span class="bold"><strong>Example:</strong></span> </p>
812<pre class="programlisting"><span class="keyword">int</span><span class="special">&amp;</span> <span class="identifier">i</span> <span class="special">=</span> <span class="identifier">lib</span><span class="special">.</span><span class="identifier">get_alias</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&gt;</span><span class="special">(</span><span class="string">"integer_alias_name"</span><span class="special">)</span><span class="special">;</span>
813</pre>
814<p>
815
816
817</p>
818<div class="variablelist"><table border="0" class="variablelist compact">
819<colgroup>
820<col align="left" valign="top">
821<col>
822</colgroup>
823<tbody>
824<tr>
825<td><p><span class="term">Parameters:</span></p></td>
826<td><div class="variablelist"><table border="0" class="variablelist compact">
827<colgroup>
828<col align="left" valign="top">
829<col>
830</colgroup>
831<tbody><tr>
832<td><p><span class="term"><code class="computeroutput">alias_name</code></span></p></td>
833<td><p>Null-terminated alias symbol name. Can handle std::string, char*, const char*. </p></td>
834</tr></tbody>
835</table></div></td>
836</tr>
837<tr>
838<td><p><span class="term">Template Parameters:</span></p></td>
839<td><div class="variablelist"><table border="0" class="variablelist compact">
840<colgroup>
841<col align="left" valign="top">
842<col>
843</colgroup>
844<tbody><tr>
845<td><p><span class="term"><code class="computeroutput">T</code></span></p></td>
846<td><p>Type of the symbol that we are going to import. Must be explicitly specified.. </p></td>
847</tr></tbody>
848</table></div></td>
849</tr>
850<tr>
851<td><p><span class="term">Throws:</span></p></td>
852<td> </td>
853</tr>
854</tbody>
855</table></div>
856</li>
857<li class="listitem">
858<pre class="literallayout"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> T<span class="special">&gt;</span> <span class="identifier">T</span> <span class="special">&amp;</span> <a name="idm45168072579472-bb"></a><span class="identifier">get_alias</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="special">&amp;</span> alias_name<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre>
859<p>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </p>
860</li>
861<li class="listitem">
862<pre class="literallayout"><span class="identifier">native_handle_t</span> <a name="idm45168072576272-bb"></a><span class="identifier">native</span><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span></pre>
863<p>Returns the native handler of the loaded library.</p>
864<p>
865</p>
866<div class="variablelist"><table border="0" class="variablelist compact">
867<colgroup>
868<col align="left" valign="top">
869<col>
870</colgroup>
871<tbody><tr>
872<td><p><span class="term">Returns:</span></p></td>
873<td><p>Platform-specific handle. </p></td>
874</tr></tbody>
875</table></div>
876</li>
877<li class="listitem">
878<pre class="literallayout"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">dll</span><span class="special">::</span><span class="identifier">fs</span><span class="special">::</span><span class="identifier">path</span> <a name="idm45168072573824-bb"></a><span class="identifier">location</span><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre>
879<p>Returns full path and name of this shared object.</p>
880<p><span class="bold"><strong>Example:</strong></span> </p>
881<pre class="programlisting"><span class="identifier">shared_library</span> <span class="identifier">lib</span><span class="special">(</span><span class="string">"test_lib.dll"</span><span class="special">)</span><span class="special">;</span>
882<span class="identifier">filesystem</span><span class="special">::</span><span class="identifier">path</span> <span class="identifier">full_path</span> <span class="special">=</span> <span class="identifier">lib</span><span class="special">.</span><span class="identifier">location</span><span class="special">(</span><span class="special">)</span><span class="special">;</span> <span class="comment">// C:\Windows\System32\test_lib.dll</span>
883</pre>
884<p>
885
886</p>
887<div class="variablelist"><table border="0" class="variablelist compact">
888<colgroup>
889<col align="left" valign="top">
890<col>
891</colgroup>
892<tbody>
893<tr>
894<td><p><span class="term">Returns:</span></p></td>
895<td><p>Full path to the shared library. </p></td>
896</tr>
897<tr>
898<td><p><span class="term">Throws:</span></p></td>
899<td> </td>
900</tr>
901</tbody>
902</table></div>
903</li>
904<li class="listitem">
905<pre class="literallayout"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">dll</span><span class="special">::</span><span class="identifier">fs</span><span class="special">::</span><span class="identifier">path</span> <a name="idm45168072569328-bb"></a><span class="identifier">location</span><span class="special">(</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">dll</span><span class="special">::</span><span class="identifier">fs</span><span class="special">::</span><span class="identifier">error_code</span> <span class="special">&amp;</span> ec<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre>
906<p>Returns full path and name of shared module.</p>
907<p><span class="bold"><strong>Example:</strong></span> </p>
908<pre class="programlisting"><span class="identifier">shared_library</span> <span class="identifier">lib</span><span class="special">(</span><span class="string">"test_lib.dll"</span><span class="special">)</span><span class="special">;</span>
909<span class="identifier">filesystem</span><span class="special">::</span><span class="identifier">path</span> <span class="identifier">full_path</span> <span class="special">=</span> <span class="identifier">lib</span><span class="special">.</span><span class="identifier">location</span><span class="special">(</span><span class="special">)</span><span class="special">;</span> <span class="comment">// C:\Windows\System32\test_lib.dll</span>
910</pre>
911<p>
912
913
914</p>
915<div class="variablelist"><table border="0" class="variablelist compact">
916<colgroup>
917<col align="left" valign="top">
918<col>
919</colgroup>
920<tbody>
921<tr>
922<td><p><span class="term">Parameters:</span></p></td>
923<td><div class="variablelist"><table border="0" class="variablelist compact">
924<colgroup>
925<col align="left" valign="top">
926<col>
927</colgroup>
928<tbody><tr>
929<td><p><span class="term"><code class="computeroutput">ec</code></span></p></td>
930<td><p>Variable that will be set to the result of the operation. </p></td>
931</tr></tbody>
932</table></div></td>
933</tr>
934<tr>
935<td><p><span class="term">Returns:</span></p></td>
936<td><p>Full path to the shared library. </p></td>
937</tr>
938<tr>
939<td><p><span class="term">Throws:</span></p></td>
940<td>std::bad_alloc. </td>
941</tr>
942</tbody>
943</table></div>
944</li>
945<li class="listitem">
946<pre class="literallayout"><span class="keyword">void</span> <a name="idm45168072563504-bb"></a><span class="identifier">swap</span><span class="special">(</span><a class="link" href="shared_library.html" title="Class shared_library">shared_library</a> <span class="special">&amp;</span> rhs<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre>
947<p>Swaps two libraries. Does not invalidate existing symbols and functions loaded from libraries.</p>
948<p>
949
950</p>
951<div class="variablelist"><table border="0" class="variablelist compact">
952<colgroup>
953<col align="left" valign="top">
954<col>
955</colgroup>
956<tbody>
957<tr>
958<td><p><span class="term">Parameters:</span></p></td>
959<td><div class="variablelist"><table border="0" class="variablelist compact">
960<colgroup>
961<col align="left" valign="top">
962<col>
963</colgroup>
964<tbody><tr>
965<td><p><span class="term"><code class="computeroutput">rhs</code></span></p></td>
966<td><p>Library to swap with. </p></td>
967</tr></tbody>
968</table></div></td>
969</tr>
970<tr>
971<td><p><span class="term">Throws:</span></p></td>
972<td>Nothing. </td>
973</tr>
974</tbody>
975</table></div>
976</li>
977</ol></div>
978</div>
979<div class="refsect2">
980<a name="id-1.3.15.8.2.6.4.4.6"></a><h3>
981<a name="idm45168072517136-bb"></a><code class="computeroutput">shared_library</code> public static functions</h3>
982<div class="orderedlist"><ol class="orderedlist" type="1">
983<li class="listitem">
984<pre class="literallayout"><span class="keyword">static</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">dll</span><span class="special">::</span><span class="identifier">fs</span><span class="special">::</span><span class="identifier">path</span> <a name="idm45168072516576-bb"></a><span class="identifier">suffix</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre>
985<p>Returns suffix of shared module: in a call to load() or the constructor/load.</p>
986<p>
987</p>
988<div class="variablelist"><table border="0" class="variablelist compact">
989<colgroup>
990<col align="left" valign="top">
991<col>
992</colgroup>
993<tbody><tr>
994<td><p><span class="term">Returns:</span></p></td>
995<td><p>The suffix od shared module: ".dll" (Windows), ".so" (Unix/Linux/BSD), ".dylib" (MacOS/IOS) </p></td>
996</tr></tbody>
997</table></div>
998</li>
999<li class="listitem">
1000<pre class="literallayout"><span class="keyword">static</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">dll</span><span class="special">::</span><span class="identifier">fs</span><span class="special">::</span><span class="identifier">path</span> <a name="idm45168072514032-bb"></a><span class="identifier">decorate</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">dll</span><span class="special">::</span><span class="identifier">fs</span><span class="special">::</span><span class="identifier">path</span> <span class="special">&amp;</span> sl<span class="special">)</span><span class="special">;</span></pre>
1001<p>Returns the decorated path to a shared module name, i.e. with needed prefix/suffix added.</p>
1002<p><span class="bold"><strong>Recommendations:</strong></span> Use <code class="computeroutput">load</code> with <code class="computeroutput">load_mode::append_decorations</code> instead of constructing the decorated path via <code class="computeroutput">decorate()</code> and loading by it.</p>
1003<p>For instance, for a path like "path/to/boost" it returns :</p>
1004<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
1005<li class="listitem"><p>path/to/libboost.so on posix platforms</p></li>
1006<li class="listitem"><p>path/to/libboost.dylib on OSX</p></li>
1007<li class="listitem"><p>path/to/boost.dll on Windows</p></li>
1008</ul></div>
1009<p>
1010</p>
1011<p>Method handles both relative and absolute paths.</p>
1012<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
1013<li class="listitem"><p>Windows note: <code class="computeroutput">decorate()</code> does not prepend "lib" to the decorated path. Use <code class="computeroutput">load</code> with <code class="computeroutput">load_mode::append_decorations</code> for MinGW compatibility purpose.</p></li>
1014<li class="listitem"><p>Posix note: if the initial module name is already prepended with lib, only the suffix() is appended to the path</p></li>
1015</ul></div>
1016<p>
1017</p>
1018<p>
1019
1020</p>
1021<div class="variablelist"><table border="0" class="variablelist compact">
1022<colgroup>
1023<col align="left" valign="top">
1024<col>
1025</colgroup>
1026<tbody>
1027<tr>
1028<td><p><span class="term">Parameters:</span></p></td>
1029<td><div class="variablelist"><table border="0" class="variablelist compact">
1030<colgroup>
1031<col align="left" valign="top">
1032<col>
1033</colgroup>
1034<tbody><tr>
1035<td><p><span class="term"><code class="computeroutput">sl</code></span></p></td>
1036<td><p>the module name and path to decorate - for instance : /usr/lib/boost</p></td>
1037</tr></tbody>
1038</table></div></td>
1039</tr>
1040<tr>
1041<td><p><span class="term">Returns:</span></p></td>
1042<td><p>The decorated unportable path that may not exists in the filesystem or could be wrong due to platform specifics. </p></td>
1043</tr>
1044</tbody>
1045</table></div>
1046</li>
1047</ol></div>
1048</div>
1049</div>
1050</div>
1051<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
1052<td align="left"></td>
1053<td align="right"><div class="copyright-footer">Copyright © 2014 Renato Tegon Forti, Antony Polukhin<br>Copyright © 2015 Antony Polukhin<br>Copyright © 2016 Antony Polukhin, Klemens Morgenstern<br>Copyright © 2017-2019 Antony Polukhin<p>
1054        Distributed under the Boost Software License, Version 1.0. (See accompanying
1055        file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
1056      </p>
1057</div></td>
1058</tr></table>
1059<hr>
1060<div class="spirit-nav">
1061<a accesskey="p" href="program_location.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../boost_dll/reference.html#header.boost.dll.shared_library_hpp"><img src="../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="load_mode/type.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a>
1062</div>
1063</body>
1064</html>
1065