Imported Upstream version 1.72.0
[platform/upstream/boost.git] / doc / html / boost / dll / shared_library.html
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=US-ASCII">
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 &#8212; 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#idm46262974659136-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#idm46262974656528-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#idm46262974652320-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#idm46262974646752-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#idm46262974642688-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#idm46262974637488-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#idm46262974631216-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#idm46262974628288-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#idm46262974623904-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#idm46262974619232-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#idm46262974751328-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#idm46262974750768-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#idm46262974744816-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#idm46262974740208-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#idm46262974734320-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#idm46262974727088-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#idm46262974723600-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#idm46262974720304-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#idm46262974717168-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#idm46262974714032-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#idm46262974710624-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#idm46262974705936-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#idm46262974703584-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#idm46262974695488-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#idm46262974692208-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#idm46262974688928-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#idm46262974685648-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#idm46262974679264-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#idm46262974676064-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#idm46262974673616-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#idm46262974669120-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#idm46262974663296-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#idm46262974616928-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#idm46262974616368-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#idm46262974613824-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="idm46262974659136-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="idm46262974656528-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="idm46262974652320-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="idm46262974646752-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="idm46262974642688-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="idm46262974637488-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="idm46262974631216-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="idm46262974628288-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="idm46262974623904-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="idm46262974619232-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="idm46262974751328-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="idm46262974750768-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="idm46262974744816-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="idm46262974740208-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="idm46262974734320-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="idm46262974727088-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="idm46262974723600-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="idm46262974720304-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="idm46262974717168-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="idm46262974714032-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="idm46262974710624-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="idm46262974705936-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="idm46262974703584-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="idm46262974695488-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="idm46262974692208-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="idm46262974688928-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="idm46262974685648-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="idm46262974679264-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="idm46262974676064-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="idm46262974673616-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="idm46262974669120-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="idm46262974663296-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="idm46262974616928-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="idm46262974616368-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="idm46262974613824-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 &#169; 2014 Renato Tegon Forti, Antony Polukhin<br>Copyright &#169; 2015 Antony Polukhin<br>Copyright &#169; 2016 Antony Polukhin, Klemens Morgenstern<br>Copyright &#169; 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>