Import Upstream version 2.10.3

This commit is contained in:
luoyaoming 2022-09-15 10:41:43 +08:00
commit 046230e84b
818 changed files with 224134 additions and 0 deletions

8
AUTHORS Normal file
View File

@ -0,0 +1,8 @@
Martin Schulze <mschulze@cvs.gnome.org>
Murray Cumming <murrayc@murrayc.com>
Cedric Gustin <cedric.gustin@swing.be> (win32 support)
Timothy M. Shead <tshead@k-3d.com> and James Lin <jameslin@vmware.com> (MSVC support)
Damien Carbery <Damien.Carbery@Sun.COM> (Sun FORTE C++ support)
Takashi Takekawa <takekawa@users.sourceforge.jp> (Intel C++ support)
Andreas Rottmann <rottmann@users.sourceforge.net> (make system)
Karl Einar Nelson <kenelson@ece.ucdavis.edu> (initial version 1.9.4)

515
COPYING Normal file
View File

@ -0,0 +1,515 @@
GNU LESSER GENERAL PUBLIC LICENSE
Version 2.1, February 1999
Copyright (C) 1991, 1999 Free Software Foundation, Inc.
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
[This is the first released version of the Lesser GPL. It also counts
as the successor of the GNU Library Public License, version 2, hence
the version number 2.1.]
Preamble
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
Licenses are intended to guarantee your freedom to share and change
free software--to make sure the software is free for all its users.
This license, the Lesser General Public License, applies to some
specially designated software packages--typically libraries--of the
Free Software Foundation and other authors who decide to use it. You
can use it too, but we suggest you first think carefully about whether
this license or the ordinary General Public License is the better
strategy to use in any particular case, based on the explanations
below.
When we speak of free software, we are referring to freedom of use,
not price. Our General Public Licenses are designed to make sure that
you have the freedom to distribute copies of free software (and charge
for this service if you wish); that you receive source code or can get
it if you want it; that you can change the software and use pieces of
it in new free programs; and that you are informed that you can do
these things.
To protect your rights, we need to make restrictions that forbid
distributors to deny you these rights or to ask you to surrender these
rights. These restrictions translate to certain responsibilities for
you if you distribute copies of the library or if you modify it.
For example, if you distribute copies of the library, whether gratis
or for a fee, you must give the recipients all the rights that we gave
you. You must make sure that they, too, receive or can get the source
code. If you link other code with the library, you must provide
complete object files to the recipients, so that they can relink them
with the library after making changes to the library and recompiling
it. And you must show them these terms so they know their rights.
We protect your rights with a two-step method: (1) we copyright the
library, and (2) we offer you this license, which gives you legal
permission to copy, distribute and/or modify the library.
To protect each distributor, we want to make it very clear that
there is no warranty for the free library. Also, if the library is
modified by someone else and passed on, the recipients should know
that what they have is not the original version, so that the original
author's reputation will not be affected by problems that might be
introduced by others.
^L
Finally, software patents pose a constant threat to the existence of
any free program. We wish to make sure that a company cannot
effectively restrict the users of a free program by obtaining a
restrictive license from a patent holder. Therefore, we insist that
any patent license obtained for a version of the library must be
consistent with the full freedom of use specified in this license.
Most GNU software, including some libraries, is covered by the
ordinary GNU General Public License. This license, the GNU Lesser
General Public License, applies to certain designated libraries, and
is quite different from the ordinary General Public License. We use
this license for certain libraries in order to permit linking those
libraries into non-free programs.
When a program is linked with a library, whether statically or using
a shared library, the combination of the two is legally speaking a
combined work, a derivative of the original library. The ordinary
General Public License therefore permits such linking only if the
entire combination fits its criteria of freedom. The Lesser General
Public License permits more lax criteria for linking other code with
the library.
We call this license the "Lesser" General Public License because it
does Less to protect the user's freedom than the ordinary General
Public License. It also provides other free software developers Less
of an advantage over competing non-free programs. These disadvantages
are the reason we use the ordinary General Public License for many
libraries. However, the Lesser license provides advantages in certain
special circumstances.
For example, on rare occasions, there may be a special need to
encourage the widest possible use of a certain library, so that it
becomes
a de-facto standard. To achieve this, non-free programs must be
allowed to use the library. A more frequent case is that a free
library does the same job as widely used non-free libraries. In this
case, there is little to gain by limiting the free library to free
software only, so we use the Lesser General Public License.
In other cases, permission to use a particular library in non-free
programs enables a greater number of people to use a large body of
free software. For example, permission to use the GNU C Library in
non-free programs enables many more people to use the whole GNU
operating system, as well as its variant, the GNU/Linux operating
system.
Although the Lesser General Public License is Less protective of the
users' freedom, it does ensure that the user of a program that is
linked with the Library has the freedom and the wherewithal to run
that program using a modified version of the Library.
The precise terms and conditions for copying, distribution and
modification follow. Pay close attention to the difference between a
"work based on the library" and a "work that uses the library". The
former contains code derived from the library, whereas the latter must
be combined with the library in order to run.
^L
GNU LESSER GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License Agreement applies to any software library or other
program which contains a notice placed by the copyright holder or
other authorized party saying it may be distributed under the terms of
this Lesser General Public License (also called "this License").
Each licensee is addressed as "you".
A "library" means a collection of software functions and/or data
prepared so as to be conveniently linked with application programs
(which use some of those functions and data) to form executables.
The "Library", below, refers to any such software library or work
which has been distributed under these terms. A "work based on the
Library" means either the Library or any derivative work under
copyright law: that is to say, a work containing the Library or a
portion of it, either verbatim or with modifications and/or translated
straightforwardly into another language. (Hereinafter, translation is
included without limitation in the term "modification".)
"Source code" for a work means the preferred form of the work for
making modifications to it. For a library, complete source code means
all the source code for all modules it contains, plus any associated
interface definition files, plus the scripts used to control
compilation
and installation of the library.
Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope. The act of
running a program using the Library is not restricted, and output from
such a program is covered only if its contents constitute a work based
on the Library (independent of the use of the Library in a tool for
writing it). Whether that is true depends on what the Library does
and what the program that uses the Library does.
1. You may copy and distribute verbatim copies of the Library's
complete source code as you receive it, in any medium, provided that
you conspicuously and appropriately publish on each copy an
appropriate copyright notice and disclaimer of warranty; keep intact
all the notices that refer to this License and to the absence of any
warranty; and distribute a copy of this License along with the
Library.
You may charge a fee for the physical act of transferring a copy,
and you may at your option offer warranty protection in exchange for a
fee.
2. You may modify your copy or copies of the Library or any portion
of it, thus forming a work based on the Library, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:
a) The modified work must itself be a software library.
b) You must cause the files modified to carry prominent notices
stating that you changed the files and the date of any change.
c) You must cause the whole of the work to be licensed at no
charge to all third parties under the terms of this License.
d) If a facility in the modified Library refers to a function or a
table of data to be supplied by an application program that uses
the facility, other than as an argument passed when the facility
is invoked, then you must make a good faith effort to ensure that,
in the event an application does not supply such function or
table, the facility still operates, and performs whatever part of
its purpose remains meaningful.
(For example, a function in a library to compute square roots has
a purpose that is entirely well-defined independent of the
application. Therefore, Subsection 2d requires that any
application-supplied function or table used by this function must
be optional: if the application does not supply it, the square
root function must still compute square roots.)
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Library,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works. But when you
distribute the same sections as part of a whole which is a work based
on the Library, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote
it.
Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Library.
In addition, mere aggregation of another work not based on the Library
with the Library (or with a work based on the Library) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.
3. You may opt to apply the terms of the ordinary GNU General Public
License instead of this License to a given copy of the Library. To do
this, you must alter all the notices that refer to this License, so
that they refer to the ordinary GNU General Public License, version 2,
instead of to this License. (If a newer version than version 2 of the
ordinary GNU General Public License has appeared, then you can specify
that version instead if you wish.) Do not make any other change in
these notices.
^L
Once this change is made in a given copy, it is irreversible for
that copy, so the ordinary GNU General Public License applies to all
subsequent copies and derivative works made from that copy.
This option is useful when you wish to copy part of the code of
the Library into a program that is not a library.
4. You may copy and distribute the Library (or a portion or
derivative of it, under Section 2) in object code or executable form
under the terms of Sections 1 and 2 above provided that you accompany
it with the complete corresponding machine-readable source code, which
must be distributed under the terms of Sections 1 and 2 above on a
medium customarily used for software interchange.
If distribution of object code is made by offering access to copy
from a designated place, then offering equivalent access to copy the
source code from the same place satisfies the requirement to
distribute the source code, even though third parties are not
compelled to copy the source along with the object code.
5. A program that contains no derivative of any portion of the
Library, but is designed to work with the Library by being compiled or
linked with it, is called a "work that uses the Library". Such a
work, in isolation, is not a derivative work of the Library, and
therefore falls outside the scope of this License.
However, linking a "work that uses the Library" with the Library
creates an executable that is a derivative of the Library (because it
contains portions of the Library), rather than a "work that uses the
library". The executable is therefore covered by this License.
Section 6 states terms for distribution of such executables.
When a "work that uses the Library" uses material from a header file
that is part of the Library, the object code for the work may be a
derivative work of the Library even though the source code is not.
Whether this is true is especially significant if the work can be
linked without the Library, or if the work is itself a library. The
threshold for this to be true is not precisely defined by law.
If such an object file uses only numerical parameters, data
structure layouts and accessors, and small macros and small inline
functions (ten lines or less in length), then the use of the object
file is unrestricted, regardless of whether it is legally a derivative
work. (Executables containing this object code plus portions of the
Library will still fall under Section 6.)
Otherwise, if the work is a derivative of the Library, you may
distribute the object code for the work under the terms of Section 6.
Any executables containing that work also fall under Section 6,
whether or not they are linked directly with the Library itself.
^L
6. As an exception to the Sections above, you may also combine or
link a "work that uses the Library" with the Library to produce a
work containing portions of the Library, and distribute that work
under terms of your choice, provided that the terms permit
modification of the work for the customer's own use and reverse
engineering for debugging such modifications.
You must give prominent notice with each copy of the work that the
Library is used in it and that the Library and its use are covered by
this License. You must supply a copy of this License. If the work
during execution displays copyright notices, you must include the
copyright notice for the Library among them, as well as a reference
directing the user to the copy of this License. Also, you must do one
of these things:
a) Accompany the work with the complete corresponding
machine-readable source code for the Library including whatever
changes were used in the work (which must be distributed under
Sections 1 and 2 above); and, if the work is an executable linked
with the Library, with the complete machine-readable "work that
uses the Library", as object code and/or source code, so that the
user can modify the Library and then relink to produce a modified
executable containing the modified Library. (It is understood
that the user who changes the contents of definitions files in the
Library will not necessarily be able to recompile the application
to use the modified definitions.)
b) Use a suitable shared library mechanism for linking with the
Library. A suitable mechanism is one that (1) uses at run time a
copy of the library already present on the user's computer system,
rather than copying library functions into the executable, and (2)
will operate properly with a modified version of the library, if
the user installs one, as long as the modified version is
interface-compatible with the version that the work was made with.
c) Accompany the work with a written offer, valid for at
least three years, to give the same user the materials
specified in Subsection 6a, above, for a charge no more
than the cost of performing this distribution.
d) If distribution of the work is made by offering access to copy
from a designated place, offer equivalent access to copy the above
specified materials from the same place.
e) Verify that the user has already received a copy of these
materials or that you have already sent this user a copy.
For an executable, the required form of the "work that uses the
Library" must include any data and utility programs needed for
reproducing the executable from it. However, as a special exception,
the materials to be distributed need not include anything that is
normally distributed (in either source or binary form) with the major
components (compiler, kernel, and so on) of the operating system on
which the executable runs, unless that component itself accompanies
the executable.
It may happen that this requirement contradicts the license
restrictions of other proprietary libraries that do not normally
accompany the operating system. Such a contradiction means you cannot
use both them and the Library together in an executable that you
distribute.
^L
7. You may place library facilities that are a work based on the
Library side-by-side in a single library together with other library
facilities not covered by this License, and distribute such a combined
library, provided that the separate distribution of the work based on
the Library and of the other library facilities is otherwise
permitted, and provided that you do these two things:
a) Accompany the combined library with a copy of the same work
based on the Library, uncombined with any other library
facilities. This must be distributed under the terms of the
Sections above.
b) Give prominent notice with the combined library of the fact
that part of it is a work based on the Library, and explaining
where to find the accompanying uncombined form of the same work.
8. You may not copy, modify, sublicense, link with, or distribute
the Library except as expressly provided under this License. Any
attempt otherwise to copy, modify, sublicense, link with, or
distribute the Library is void, and will automatically terminate your
rights under this License. However, parties who have received copies,
or rights, from you under this License will not have their licenses
terminated so long as such parties remain in full compliance.
9. You are not required to accept this License, since you have not
signed it. However, nothing else grants you permission to modify or
distribute the Library or its derivative works. These actions are
prohibited by law if you do not accept this License. Therefore, by
modifying or distributing the Library (or any work based on the
Library), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Library or works based on it.
10. Each time you redistribute the Library (or any work based on the
Library), the recipient automatically receives a license from the
original licensor to copy, distribute, link with or modify the Library
subject to these terms and conditions. You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties with
this License.
^L
11. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Library at all. For example, if a patent
license would not permit royalty-free redistribution of the Library by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Library.
If any portion of this section is held invalid or unenforceable under
any particular circumstance, the balance of the section is intended to
apply, and the section as a whole is intended to apply in other
circumstances.
It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system which is
implemented by public license practices. Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
impose that choice.
This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.
12. If the distribution and/or use of the Library is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Library under this License
may add an explicit geographical distribution limitation excluding those
countries, so that distribution is permitted only in or among
countries not thus excluded. In such case, this License incorporates
the limitation as if written in the body of this License.
13. The Free Software Foundation may publish revised and/or new
versions of the Lesser General Public License from time to time.
Such new versions will be similar in spirit to the present version,
but may differ in detail to address new problems or concerns.
Each version is given a distinguishing version number. If the Library
specifies a version number of this License which applies to it and
"any later version", you have the option of following the terms and
conditions either of that version or of any later version published by
the Free Software Foundation. If the Library does not specify a
license version number, you may choose any version ever published by
the Free Software Foundation.
^L
14. If you wish to incorporate parts of the Library into other free
programs whose distribution conditions are incompatible with these,
write to the author to ask for permission. For software which is
copyrighted by the Free Software Foundation, write to the Free
Software Foundation; we sometimes make exceptions for this. Our
decision will be guided by the two goals of preserving the free status
of all derivatives of our free software and of promoting the sharing
and reuse of software generally.
NO WARRANTY
15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
DAMAGES.
END OF TERMS AND CONDITIONS
^L
How to Apply These Terms to Your New Libraries
If you develop a new library, and you want it to be of the greatest
possible use to the public, we recommend making it free software that
everyone can redistribute and change. You can do so by permitting
redistribution under these terms (or, alternatively, under the terms
of the ordinary General Public License).
To apply these terms, attach the following notices to the library.
It is safest to attach them to the start of each source file to most
effectively convey the exclusion of warranty; and each file should
have at least the "copyright" line and a pointer to where the full
notice is found.
<one line to give the library's name and a brief idea of what it
does.>
Copyright (C) <year> <name of author>
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
Also add information on how to contact you by electronic and paper
mail.
You should also get your employer (if you work as a programmer) or
your
school, if any, to sign a "copyright disclaimer" for the library, if
necessary. Here is a sample; alter the names:
Yoyodyne, Inc., hereby disclaims all copyright interest in the
library `Frob' (a library for tweaking knobs) written by James
Random Hacker.
<signature of Ty Coon>, 1 April 1990
Ty Coon, President of Vice
That's all there is to it!

5921
ChangeLog Normal file

File diff suppressed because it is too large Load Diff

368
INSTALL Normal file
View File

@ -0,0 +1,368 @@
Installation Instructions
*************************
Copyright (C) 1994-1996, 1999-2002, 2004-2016 Free Software
Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
notice and this notice are preserved. This file is offered as-is,
without warranty of any kind.
Basic Installation
==================
Briefly, the shell command './configure && make && make install'
should configure, build, and install this package. The following
more-detailed instructions are generic; see the 'README' file for
instructions specific to this package. Some packages provide this
'INSTALL' file but do not implement all of the features documented
below. The lack of an optional feature in a given package is not
necessarily a bug. More recommendations for GNU packages can be found
in *note Makefile Conventions: (standards)Makefile Conventions.
The 'configure' shell script attempts to guess correct values for
various system-dependent variables used during compilation. It uses
those values to create a 'Makefile' in each directory of the package.
It may also create one or more '.h' files containing system-dependent
definitions. Finally, it creates a shell script 'config.status' that
you can run in the future to recreate the current configuration, and a
file 'config.log' containing compiler output (useful mainly for
debugging 'configure').
It can also use an optional file (typically called 'config.cache' and
enabled with '--cache-file=config.cache' or simply '-C') that saves the
results of its tests to speed up reconfiguring. Caching is disabled by
default to prevent problems with accidental use of stale cache files.
If you need to do unusual things to compile the package, please try
to figure out how 'configure' could check whether to do them, and mail
diffs or instructions to the address given in the 'README' so they can
be considered for the next release. If you are using the cache, and at
some point 'config.cache' contains results you don't want to keep, you
may remove or edit it.
The file 'configure.ac' (or 'configure.in') is used to create
'configure' by a program called 'autoconf'. You need 'configure.ac' if
you want to change it or regenerate 'configure' using a newer version of
'autoconf'.
The simplest way to compile this package is:
1. 'cd' to the directory containing the package's source code and type
'./configure' to configure the package for your system.
Running 'configure' might take a while. While running, it prints
some messages telling which features it is checking for.
2. Type 'make' to compile the package.
3. Optionally, type 'make check' to run any self-tests that come with
the package, generally using the just-built uninstalled binaries.
4. Type 'make install' to install the programs and any data files and
documentation. When installing into a prefix owned by root, it is
recommended that the package be configured and built as a regular
user, and only the 'make install' phase executed with root
privileges.
5. Optionally, type 'make installcheck' to repeat any self-tests, but
this time using the binaries in their final installed location.
This target does not install anything. Running this target as a
regular user, particularly if the prior 'make install' required
root privileges, verifies that the installation completed
correctly.
6. You can remove the program binaries and object files from the
source code directory by typing 'make clean'. To also remove the
files that 'configure' created (so you can compile the package for
a different kind of computer), type 'make distclean'. There is
also a 'make maintainer-clean' target, but that is intended mainly
for the package's developers. If you use it, you may have to get
all sorts of other programs in order to regenerate files that came
with the distribution.
7. Often, you can also type 'make uninstall' to remove the installed
files again. In practice, not all packages have tested that
uninstallation works correctly, even though it is required by the
GNU Coding Standards.
8. Some packages, particularly those that use Automake, provide 'make
distcheck', which can by used by developers to test that all other
targets like 'make install' and 'make uninstall' work correctly.
This target is generally not run by end users.
Compilers and Options
=====================
Some systems require unusual options for compilation or linking that
the 'configure' script does not know about. Run './configure --help'
for details on some of the pertinent environment variables.
You can give 'configure' initial values for configuration parameters
by setting variables in the command line or in the environment. Here is
an example:
./configure CC=c99 CFLAGS=-g LIBS=-lposix
*Note Defining Variables::, for more details.
Compiling For Multiple Architectures
====================================
You can compile the package for more than one kind of computer at the
same time, by placing the object files for each architecture in their
own directory. To do this, you can use GNU 'make'. 'cd' to the
directory where you want the object files and executables to go and run
the 'configure' script. 'configure' automatically checks for the source
code in the directory that 'configure' is in and in '..'. This is known
as a "VPATH" build.
With a non-GNU 'make', it is safer to compile the package for one
architecture at a time in the source code directory. After you have
installed the package for one architecture, use 'make distclean' before
reconfiguring for another architecture.
On MacOS X 10.5 and later systems, you can create libraries and
executables that work on multiple system types--known as "fat" or
"universal" binaries--by specifying multiple '-arch' options to the
compiler but only a single '-arch' option to the preprocessor. Like
this:
./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
CPP="gcc -E" CXXCPP="g++ -E"
This is not guaranteed to produce working output in all cases, you
may have to build one architecture at a time and combine the results
using the 'lipo' tool if you have problems.
Installation Names
==================
By default, 'make install' installs the package's commands under
'/usr/local/bin', include files under '/usr/local/include', etc. You
can specify an installation prefix other than '/usr/local' by giving
'configure' the option '--prefix=PREFIX', where PREFIX must be an
absolute file name.
You can specify separate installation prefixes for
architecture-specific files and architecture-independent files. If you
pass the option '--exec-prefix=PREFIX' to 'configure', the package uses
PREFIX as the prefix for installing programs and libraries.
Documentation and other data files still use the regular prefix.
In addition, if you use an unusual directory layout you can give
options like '--bindir=DIR' to specify different values for particular
kinds of files. Run 'configure --help' for a list of the directories
you can set and what kinds of files go in them. In general, the default
for these options is expressed in terms of '${prefix}', so that
specifying just '--prefix' will affect all of the other directory
specifications that were not explicitly provided.
The most portable way to affect installation locations is to pass the
correct locations to 'configure'; however, many packages provide one or
both of the following shortcuts of passing variable assignments to the
'make install' command line to change installation locations without
having to reconfigure or recompile.
The first method involves providing an override variable for each
affected directory. For example, 'make install
prefix=/alternate/directory' will choose an alternate location for all
directory configuration variables that were expressed in terms of
'${prefix}'. Any directories that were specified during 'configure',
but not in terms of '${prefix}', must each be overridden at install time
for the entire installation to be relocated. The approach of makefile
variable overrides for each directory variable is required by the GNU
Coding Standards, and ideally causes no recompilation. However, some
platforms have known limitations with the semantics of shared libraries
that end up requiring recompilation when using this method, particularly
noticeable in packages that use GNU Libtool.
The second method involves providing the 'DESTDIR' variable. For
example, 'make install DESTDIR=/alternate/directory' will prepend
'/alternate/directory' before all installation names. The approach of
'DESTDIR' overrides is not required by the GNU Coding Standards, and
does not work on platforms that have drive letters. On the other hand,
it does better at avoiding recompilation issues, and works well even
when some directory options were not specified in terms of '${prefix}'
at 'configure' time.
Optional Features
=================
If the package supports it, you can cause programs to be installed
with an extra prefix or suffix on their names by giving 'configure' the
option '--program-prefix=PREFIX' or '--program-suffix=SUFFIX'.
Some packages pay attention to '--enable-FEATURE' options to
'configure', where FEATURE indicates an optional part of the package.
They may also pay attention to '--with-PACKAGE' options, where PACKAGE
is something like 'gnu-as' or 'x' (for the X Window System). The
'README' should mention any '--enable-' and '--with-' options that the
package recognizes.
For packages that use the X Window System, 'configure' can usually
find the X include and library files automatically, but if it doesn't,
you can use the 'configure' options '--x-includes=DIR' and
'--x-libraries=DIR' to specify their locations.
Some packages offer the ability to configure how verbose the
execution of 'make' will be. For these packages, running './configure
--enable-silent-rules' sets the default to minimal output, which can be
overridden with 'make V=1'; while running './configure
--disable-silent-rules' sets the default to verbose, which can be
overridden with 'make V=0'.
Particular systems
==================
On HP-UX, the default C compiler is not ANSI C compatible. If GNU CC
is not installed, it is recommended to use the following options in
order to use an ANSI C compiler:
./configure CC="cc -Ae -D_XOPEN_SOURCE=500"
and if that doesn't work, install pre-built binaries of GCC for HP-UX.
HP-UX 'make' updates targets which have the same time stamps as their
prerequisites, which makes it generally unusable when shipped generated
files such as 'configure' are involved. Use GNU 'make' instead.
On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot
parse its '<wchar.h>' header file. The option '-nodtk' can be used as a
workaround. If GNU CC is not installed, it is therefore recommended to
try
./configure CC="cc"
and if that doesn't work, try
./configure CC="cc -nodtk"
On Solaris, don't put '/usr/ucb' early in your 'PATH'. This
directory contains several dysfunctional programs; working variants of
these programs are available in '/usr/bin'. So, if you need '/usr/ucb'
in your 'PATH', put it _after_ '/usr/bin'.
On Haiku, software installed for all users goes in '/boot/common',
not '/usr/local'. It is recommended to use the following options:
./configure --prefix=/boot/common
Specifying the System Type
==========================
There may be some features 'configure' cannot figure out
automatically, but needs to determine by the type of machine the package
will run on. Usually, assuming the package is built to be run on the
_same_ architectures, 'configure' can figure that out, but if it prints
a message saying it cannot guess the machine type, give it the
'--build=TYPE' option. TYPE can either be a short name for the system
type, such as 'sun4', or a canonical name which has the form:
CPU-COMPANY-SYSTEM
where SYSTEM can have one of these forms:
OS
KERNEL-OS
See the file 'config.sub' for the possible values of each field. If
'config.sub' isn't included in this package, then this package doesn't
need to know the machine type.
If you are _building_ compiler tools for cross-compiling, you should
use the option '--target=TYPE' to select the type of system they will
produce code for.
If you want to _use_ a cross compiler, that generates code for a
platform different from the build platform, you should specify the
"host" platform (i.e., that on which the generated programs will
eventually be run) with '--host=TYPE'.
Sharing Defaults
================
If you want to set default values for 'configure' scripts to share,
you can create a site shell script called 'config.site' that gives
default values for variables like 'CC', 'cache_file', and 'prefix'.
'configure' looks for 'PREFIX/share/config.site' if it exists, then
'PREFIX/etc/config.site' if it exists. Or, you can set the
'CONFIG_SITE' environment variable to the location of the site script.
A warning: not all 'configure' scripts look for a site script.
Defining Variables
==================
Variables not defined in a site shell script can be set in the
environment passed to 'configure'. However, some packages may run
configure again during the build, and the customized values of these
variables may be lost. In order to avoid this problem, you should set
them in the 'configure' command line, using 'VAR=value'. For example:
./configure CC=/usr/local2/bin/gcc
causes the specified 'gcc' to be used as the C compiler (unless it is
overridden in the site shell script).
Unfortunately, this technique does not work for 'CONFIG_SHELL' due to an
Autoconf limitation. Until the limitation is lifted, you can use this
workaround:
CONFIG_SHELL=/bin/bash ./configure CONFIG_SHELL=/bin/bash
'configure' Invocation
======================
'configure' recognizes the following options to control how it
operates.
'--help'
'-h'
Print a summary of all of the options to 'configure', and exit.
'--help=short'
'--help=recursive'
Print a summary of the options unique to this package's
'configure', and exit. The 'short' variant lists options used only
in the top level, while the 'recursive' variant lists options also
present in any nested packages.
'--version'
'-V'
Print the version of Autoconf used to generate the 'configure'
script, and exit.
'--cache-file=FILE'
Enable the cache: use and save the results of the tests in FILE,
traditionally 'config.cache'. FILE defaults to '/dev/null' to
disable caching.
'--config-cache'
'-C'
Alias for '--cache-file=config.cache'.
'--quiet'
'--silent'
'-q'
Do not print messages saying which checks are being made. To
suppress all normal output, redirect it to '/dev/null' (any error
messages will still be shown).
'--srcdir=DIR'
Look for the package's source code in directory DIR. Usually
'configure' can determine that directory automatically.
'--prefix=DIR'
Use DIR as the installation prefix. *note Installation Names:: for
more details, including other options available for fine-tuning the
installation locations.
'--no-create'
'-n'
Run the configure checks, but stop before creating any output
files.
'configure' also accepts some other, not widely useful, options. Run
'configure --help' for more details.

57
MSVC_NMake/Makefile.vc Normal file
View File

@ -0,0 +1,57 @@
# NMake Makefile for building libsigc++ on Windows using Visual Studio
# The items below this line should not be changed, unless one is maintaining
# the NMake Makefiles. Customizations can be done in the following NMake Makefile
# portions (please see comments in the these files to see what can be customized):
#
# detectenv-msvc.mak
# config-msvc.mak
!include detectenv-msvc.mak
# Include the Makefile portions with the source listings
!include ..\sigc++\filelist.am
# Include the Makefile portion that enables features based on user input
!include config-msvc.mak
!if "$(VALID_CFGSET)" == "TRUE"
# We need Visual Studio 2013 or later
!if $(VSVER) < 12
VALID_MSC = FALSE
!else
VALID_MSC = TRUE
!endif
!if "$(VALID_MSC)" == "TRUE"
# Include the Makefile portion to convert the source and header lists
# into the lists we need for compilation and introspection
!include create-lists-msvc.mak
all: $(LIBSIGC_LIB) $(libsigc_ex) all-build-info
tests: $(libsigc_tests) all-build-info
benchmark: all $(libsigc_bench) all-build-info
# Include the build rules for sources, DLLs and executables
!include generate-msvc.mak
!include build-rules-msvc.mak
!include install.mak
!else # "$(VALID_MSC)" == "TRUE"
all:
@echo You need Visual Studio 2013 or later.
!endif # "$(VALID_MSC)" == "TRUE"
!else # "$(VALID_CFGSET)" == "TRUE"
all: help
@echo You need to specify a valid configuration, via
@echo CFG=release or CFG=debug
!endif # "$(VALID_CFGSET)" == "TRUE"
!include info-msvc.mak

47
MSVC_NMake/README.txt Normal file
View File

@ -0,0 +1,47 @@
Instructions for building libsigc++ on Visual Studio
====================================================
Building the libsigc++ on Windows is now supported using Visual Studio
versions 2013 or later in both 32-bit and 64-bit (x64) flavors,
via NMake Makefiles. Due to C++-11 usage, Visual Studio 2012 or
earlier is not supported.
libsigc++ itself has no external dependencies, but building the
benchmark test program will require an installation of the Boost
C++ libraries.
The following describes what items are built with the following
targets:
-all (or no target specified): The libsigc++ DLL and the example programs.
-test: The libsigc++ DLL and the test programs.
-benchmark: The libsigc++ DLL and the benchmark program.
The following are instructions for performing such a build. A 'clean' target is
provided-it is recommended that one cleans the build and redo the build if any
configuration option changed. An
'install' target is also provided to copy the built items in their appropriate
locations under $(PREFIX), which is described below.
Invoke the build by issuing the command:
nmake /f Makefile.vc CFG=[release|debug] [PREFIX=...] <option1=1 option2=1 ...>
where:
CFG: Required. Choose from a release or debug build. Note that
all builds generate a .pdb file for each .dll and .exe built--this refers
to the C/C++ runtime that the build uses.
PREFIX: Optional. Base directory of where the third-party headers, libraries
and needed tools can be found, i.e. headers in $(PREFIX)\include,
libraries in $(PREFIX)\lib and tools in $(PREFIX)\bin. If not
specified, $(PREFIX) is set as $(srcroot)\..\vs$(X)\$(platform), where
$(platform) is win32 for 32-bit builds or x64 for 64-bit builds, and
$(X) is the short version of the Visual Studio used, as follows:
2017: 15
Explanation of options, set by <option>=1:
------------------------------------------
BOOST_DLL: When building the benchmark, link to a DLL build of the Boost
libraries. Required if your installation of the Boost libraries
are built as DLLs. Note that debug builds must link to debug
builds of Boost and release builds must link to releease builds
of Boost.

View File

@ -0,0 +1,102 @@
# NMake Makefile portion for compilation rules
# Items in here should not need to be edited unless
# one is maintaining the NMake build files. The format
# of NMake Makefiles here are different from the GNU
# Makefiles. Please see the comments about these formats.
# Inference rules for compiling the .obj files.
# Used for libs and programs with more than a single source file.
# Format is as follows
# (all dirs must have a trailing '\'):
#
# {$(srcdir)}.$(srcext){$(destdir)}.obj::
# $(CC)|$(CXX) $(cflags) /Fo$(destdir) /c @<<
# $<
# <<
{..\sigc++\}.cc{vs$(VSVER)\$(CFG)\$(PLAT)\libsigcpp\}.obj:
$(CXX) $(LIBSIGCPP_CFLAGS) /Fo$(@D)\ /Fd$(@D)\ /c @<<
$<
<<
{..\sigc++\adaptors\lambda\}.cc{vs$(VSVER)\$(CFG)\$(PLAT)\libsigcpp\}.obj:
$(CXX) $(LIBSIGCPP_CFLAGS) /Fo$(@D)\ /Fd$(@D)\ /c @<<
$<
<<
{..\sigc++\functors\}.cc{vs$(VSVER)\$(CFG)\$(PLAT)\libsigcpp\}.obj:
$(CXX) $(LIBSIGCPP_CFLAGS) /Fo$(@D)\ /Fd$(@D)\ /c @<<
$<
<<
{..\untracked\sigc++\adaptors\lambda\}.cc{vs$(VSVER)\$(CFG)\$(PLAT)\libsigcpp\}.obj:
$(CXX) $(LIBSIGCPP_CFLAGS) /Fo$(@D)\ /Fd$(@D)\ /c @<<
$<
<<
vs$(VSVER)\$(CFG)\$(PLAT)\libsigcpp-tests\testutilities.obj: vs$(VSVER)\$(CFG)\$(PLAT)\libsigcpp-tests ..\tests\testutilities.cc
$(CXX) $(SIGCPP_CFLAGS) /Fo$@ /Fd$(@D)\ /c ..\tests\testutilities.cc
# Rules for building .lib files
$(LIBSIGC_LIB): $(LIBSIGC_DLL)
{.}.rc{vs$(VSVER)\$(CFG)\$(PLAT)\libsigcpp\}.res:
rc /fo$@ $<
{..\untracked\MSVC_NMake\}.rc{vs$(VSVER)\$(CFG)\$(PLAT)\libsigcpp\}.res:
rc /fo$@ $<
# Rules for linking DLLs
# Format is as follows (the mt command is needed for MSVC 2005/2008 builds):
# $(dll_name_with_path): $(dependent_libs_files_objects_and_items)
# link /DLL [$(linker_flags)] [$(dependent_libs)] [/def:$(def_file_if_used)] [/implib:$(lib_name_if_needed)] -out:$@ @<<
# $(dependent_objects)
# <<
# @-if exist $@.manifest mt /manifest $@.manifest /outputresource:$@;2
$(LIBSIGC_DLL): vs$(VSVER)\$(CFG)\$(PLAT)\libsigcpp $(libsigcpp_dll_OBJS)
link /DLL $(LDFLAGS) /implib:$(LIBSIGC_LIB) -out:$@ @<<
$(libsigcpp_dll_OBJS)
<<
@-if exist $@.manifest mt /manifest $@.manifest /outputresource:$@;2
# Rules for linking Executables
# Format is as follows (the mt command is needed for MSVC 2005/2008 builds):
# $(dll_name_with_path): $(dependent_libs_files_objects_and_items)
# link [$(linker_flags)] [$(dependent_libs)] -out:$@ @<<
# $(dependent_objects)
# <<
# @-if exist $@.manifest mt /manifest $@.manifest /outputresource:$@;1
{..\examples\}.cc{vs$(VSVER)\$(CFG)\$(PLAT)\}.exe:
@if not exist vs$(VSVER)\$(CFG)\$(PLAT)\libsigcpp-ex $(MAKE) -f Makefile.vc CFG=$(CFG) vs$(VSVER)\$(CFG)\$(PLAT)\libsigcpp-ex
@if not exist $(LIBSIGC_LIB) $(MAKE) -f Makefile.vc CFG=$(CFG) $(LIBSIGC_LIB)
$(CXX) $(SIGCPP_CFLAGS) /Fo$(@D)\libsigcpp-ex\ /Fd$(@D)\libsigcpp-ex\ $< /Fe$@ /link $(LDFLAGS) $(LIBSIGC_LIB)
@-if exist $@.manifest mt /manifest $@.manifest /outputresource:$@;1
{..\tests\}.cc{vs$(VSVER)\$(CFG)\$(PLAT)\}.exe:
@if not exist $(LIBSIGC_LIB) $(MAKE) -f Makefile.vc CFG=$(CFG) $(LIBSIGC_LIB)
@if not exist vs$(VSVER)\$(CFG)\$(PLAT)\libsigcpp-tests\testutilities.obj $(MAKE) -f Makefile.vc CFG=$(CFG) vs$(VSVER)\$(CFG)\$(PLAT)\libsigcpp-tests\testutilities.obj
$(CXX) $(SIGCPP_CFLAGS) /Fo$(@D)\libsigcpp-tests\ /Fd$(@D)\libsigcpp-tests\ $< /Fe$@ /link $(LDFLAGS) $(LIBSIGC_LIB) vs$(VSVER)\$(CFG)\$(PLAT)\libsigcpp-tests\testutilities.obj
@-if exist $@.manifest mt /manifest $@.manifest /outputresource:$@;1
vs$(VSVER)\$(CFG)\$(PLAT)\libsigc++-benchmark.exe: ..\tests\benchmark.cc
@if not exist $(LIBSIGC_LIB) $(MAKE) -f Makefile.vc CFG=$(CFG) $(LIBSIGC_LIB)
@if not exist vs$(VSVER)\$(CFG)\$(PLAT)\libsigcpp-tests\testutilities.obj $(MAKE) -f Makefile.vc CFG=$(CFG) vs$(VSVER)\$(CFG)\$(PLAT)\libsigcpp-tests\testutilities.obj
$(CXX) $(SIGCPP_BENCHMARK_CFLAGS) /Fo$(@D)\libsigcpp-tests\ /Fd$(@D)\libsigcpp-tests\ ..\tests\benchmark.cc /Fe$@ /link $(LDFLAGS) $(LIBSIGC_LIB) vs$(VSVER)\$(CFG)\$(PLAT)\libsigcpp-tests\testutilities.obj
@-if exist $@.manifest mt /manifest $@.manifest /outputresource:$@;1
clean:
@-del /f /q vs$(VSVER)\$(CFG)\$(PLAT)\*.exe
@-del /f /q vs$(VSVER)\$(CFG)\$(PLAT)\*.dll
@-del /f /q vs$(VSVER)\$(CFG)\$(PLAT)\*.pdb
@-del /f /q vs$(VSVER)\$(CFG)\$(PLAT)\*.ilk
@-del /f /q vs$(VSVER)\$(CFG)\$(PLAT)\*.exp
@-del /f /q vs$(VSVER)\$(CFG)\$(PLAT)\*.lib
@-if exist vs$(VSVER)\$(CFG)\$(PLAT)\libsigcpp-tests del /f /q vs$(VSVER)\$(CFG)\$(PLAT)\libsigcpp-tests\*.obj
@-if exist vs$(VSVER)\$(CFG)\$(PLAT)\libsigcpp-tests del /f /q vs$(VSVER)\$(CFG)\$(PLAT)\libsigcpp-tests\*.pdb
@-del /f /q vs$(VSVER)\$(CFG)\$(PLAT)\libsigcpp-ex\*.obj
@-del /f /q vs$(VSVER)\$(CFG)\$(PLAT)\libsigcpp-ex\*.pdb
@-del /f /q vs$(VSVER)\$(CFG)\$(PLAT)\libsigcpp\*.res
@-del /f /q vs$(VSVER)\$(CFG)\$(PLAT)\libsigcpp\*.obj
@-del /f /q vs$(VSVER)\$(CFG)\$(PLAT)\libsigcpp\*.pdb
@-if exist vs$(VSVER)\$(CFG)\$(PLAT)\libsigcpp-tests rd vs$(VSVER)\$(CFG)\$(PLAT)\libsigcpp-tests
@-rd vs$(VSVER)\$(CFG)\$(PLAT)\libsigcpp-ex
@-rd vs$(VSVER)\$(CFG)\$(PLAT)\libsigcpp

View File

@ -0,0 +1,43 @@
# NMake Makefile portion for enabling features for Windows builds
# These are the base minimum libraries required for building libsigc++.
BASE_INCLUDES = /I$(PREFIX)\include
# Please do not change anything beneath this line unless maintaining the NMake Makefiles
LIBSIGC_MAJOR_VERSION = 2
LIBSIGC_MINOR_VERSION = 0
!if "$(CFG)" == "debug" || "$(CFG)" == "Debug"
LIBSIGC_DEBUG_SUFFIX = -d
!else
LIBSIGC_DEBUG_SUFFIX =
!endif
LIBSIGCPP_DEFINES = /DSIGC_BUILD /D_WINDLL
SIGCPP_BASE_CFLAGS = /I.. /I. /I..\untracked /I..\MSVC_NMake /wd4530 /EHsc $(CFLAGS)
LIBSIGC_INT_SOURCES = $(sigc_sources_cc:/=\)
LIBSIGC_INT_HDRS = $(sigc_public_h:/=\)
SIGCPP_CFLAGS = $(SIGCPP_BASE_CFLAGS) $(CFLAGS)
LIBSIGCPP_CFLAGS = $(SIGCPP_CFLAGS) $(LIBSIGCPP_DEFINES)
# We build sigc-vc$(PDBVER)0-$(LIBSIGC_MAJOR_VERSION)_$(LIBSIGC_MINOR_VERSION).dll or
# sigc-vc$(PDBVER)0d-$(LIBSIGC_MAJOR_VERSION)_$(LIBSIGC_MINOR_VERSION).dll at least
LIBSIGC_LIBNAME = sigc-vc$(PDBVER)0$(LIBSIGC_DEBUG_SUFFIX)-$(LIBSIGC_MAJOR_VERSION)_$(LIBSIGC_MINOR_VERSION)
LIBSIGC_DLL = vs$(VSVER)\$(CFG)\$(PLAT)\$(LIBSIGC_LIBNAME).dll
LIBSIGC_LIB = vs$(VSVER)\$(CFG)\$(PLAT)\$(LIBSIGC_LIBNAME).lib
# Note that building the benchmark requires Boost!
libsigc_bench = vs$(VSVER)\$(CFG)\$(PLAT)\libsigc++-benchmark.exe
# If your Boost libraries are built as DLLs, use BOOST_DLL=1 in your NMake command line
!ifdef BOOST_DLL
SIGCPP_BENCHMARK_CFLAGS = $(SIGCPP_BASE_CFLAGS) /DBOOST_ALL_DYN_LINK
!else
SIGCPP_BENCHMARK_CFLAGS = $(SIGCPP_BASE_CFLAGS)
!endif

View File

@ -0,0 +1,73 @@
# Convert the source listing to object (.obj) listing in
# another NMake Makefile module, include it, and clean it up.
# This is a "fact-of-life" regarding NMake Makefiles...
# This file does not need to be changed unless one is maintaining the NMake Makefiles
# For those wanting to add things here:
# To add a list, do the following:
# # $(description_of_list)
# if [call create-lists.bat header $(makefile_snippet_file) $(variable_name)]
# endif
#
# if [call create-lists.bat file $(makefile_snippet_file) $(file_name)]
# endif
#
# if [call create-lists.bat footer $(makefile_snippet_file)]
# endif
# ... (repeat the if [call ...] lines in the above order if needed)
# !include $(makefile_snippet_file)
#
# (add the following after checking the entries in $(makefile_snippet_file) is correct)
# (the batch script appends to $(makefile_snippet_file), you will need to clear the file unless the following line is added)
#!if [del /f /q $(makefile_snippet_file)]
#!endif
# In order to obtain the .obj filename that is needed for NMake Makefiles to build DLLs/static LIBs or EXEs, do the following
# instead when doing 'if [call create-lists.bat file $(makefile_snippet_file) $(file_name)]'
# (repeat if there are multiple $(srcext)'s in $(source_list), ignore any headers):
# !if [for %c in ($(source_list)) do @if "%~xc" == ".$(srcext)" @call create-lists.bat file $(makefile_snippet_file) $(intdir)\%~nc.obj]
#
# $(intdir)\%~nc.obj needs to correspond to the rules added in build-rules-msvc.mak
# %~xc gives the file extension of a given file, %c in this case, so if %c is a.cc, %~xc means .cc
# %~nc gives the file name of a given file without extension, %c in this case, so if %c is a.cc, %~nc means a
NULL=
# For libsigc++
!if [call create-lists.bat header libsigcpp.mak libsigcpp_dll_OBJS]
!endif
!if [for %c in ($(sigc_sources_cc)) do @if "%~xc" == ".cc" @call create-lists.bat file libsigcpp.mak vs^$(VSVER)\^$(CFG)\^$(PLAT)\libsigcpp\%~nc.obj]
!endif
!if [@call create-lists.bat file libsigcpp.mak vs^$(VSVER)\^$(CFG)\^$(PLAT)\libsigcpp\sigc.res]
!endif
!if [call create-lists.bat footer libsigcpp.mak]
!endif
!if [call create-lists.bat header libsigcpp.mak libsigc_ex]
!endif
!if [for %s in (..\examples\*.cc) do @call create-lists.bat file libsigcpp.mak vs^$(VSVER)\^$(CFG)\^$(PLAT)\%~ns.exe]
!endif
!if [call create-lists.bat footer libsigcpp.mak]
!endif
!if [call create-lists.bat header libsigcpp.mak libsigc_tests]
!endif
# Skipping testutilities.cc: Not to be built as a .exe, but is a common dependency for the tests
# benchmark: Not built on default; requires Boost
!if [for %s in (..\tests\*.cc) do @if not "%~ns" == "testutilities" if not "%~ns" == "benchmark" @call create-lists.bat file libsigcpp.mak vs^$(VSVER)\^$(CFG)\^$(PLAT)\%~ns.exe]
!endif
!if [call create-lists.bat footer libsigcpp.mak]
!endif
!include libsigcpp.mak
!if [del /f /q libsigcpp.mak]
!endif

View File

@ -0,0 +1,42 @@
@echo off
rem Simple .bat script for creating the NMake Makefile snippets.
if not "%1" == "header" if not "%1" == "file" if not "%1" == "footer" goto :error_cmd
if "%2" == "" goto error_no_destfile
if "%1" == "header" goto :header
if "%1" == "file" goto :addfile
if "%1" == "footer" goto :footer
:header
if "%3" == "" goto error_var
echo %3 = \>>%2
goto done
:addfile
if "%3" == "" goto error_file
echo. %3 \>>%2
goto done
:footer
echo. $(NULL)>>%2
echo.>>%2
goto done
:error_cmd
echo Specified command '%1' was invalid. Valid commands are: header file footer.
goto done
:error_no_destfile
echo Destination NMake snippet file must be specified
goto done
:error_var
echo A name must be specified for using '%1'.
goto done
:error_file
echo A file must be specified for using '%1'.
goto done
:done

View File

@ -0,0 +1,146 @@
# Change this (or specify PREFIX= when invoking this NMake Makefile) if
# necessary, so that the libs and headers of the dependent third-party
# libraries can be located. For instance, if building from GLib's
# included Visual Studio projects, this should be able to locate the GLib
# build out-of-the-box if they were not moved. GLib's headers will be
# found in $(GLIB_PREFIX)\include\glib-2.0 and
# $(GLIB_PREFIX)\lib\glib-2.0\include and its import library will be found
# in $(GLIB_PREFIX)\lib.
!if "$(PREFIX)" == ""
PREFIX = ..\..\vs$(VSVER)\$(PLAT)
!endif
# Location of the PERL interpreter, for running glib-mkenums. glib-mkenums
# needs to be found in $(PREFIX)\bin. Using either a 32-bit or x64 PERL
# interpreter are supported for either a 32-bit or x64 build.
!if "$(PERL)" == ""
PERL = perl
!endif
# Location of the Python interpreter, for building introspection. The complete set
# of Python Modules for introspection (the giscanner Python scripts and the _giscanner.pyd
# compiled module) needs to be found in $(PREFIX)\lib\gobject-introspection\giscanner, and
# the g-ir-scanner Python script and g-ir-compiler utility program needs to be found
# in $(PREFIX)\bin, together with any DLLs they will depend on, if those DLLs are not already
# in your PATH.
# Note that the Python interpreter and the introspection modules and utility progam must
# correspond to the build type (i.e. 32-bit Release for 32-bit Release builds, and so on).
#
# For introspection, currently only Python 2.7.x is supported. This may change when Python 3.x
# support is added upstream in gobject-introspection--when this happens, the _giscanner.pyd must
# be the one that is built against the release series of Python that is used here.
!if "$(PYTHON)" == ""
PYTHON = python
!endif
# Location of the pkg-config utility program, for building introspection. It needs to be able
# to find the pkg-config (.pc) files so that the correct libraries and headers for the needed libraries
# can be located, using PKG_CONFIG_PATH. Using either a 32-bit or x64 pkg-config are supported for
# either a 32-bit or x64 build.
!if "$(PKG_CONFIG)" == ""
PKG_CONFIG = pkg-config
!endif
# The items below this line should not be changed, unless one is maintaining
# the NMake Makefiles. The exception is for the CFLAGS_ADD line(s) where one
# could use his/her desired compiler optimization flags, if he/she knows what is
# being done.
# Check to see we are configured to build with MSVC (MSDEVDIR, MSVCDIR or
# VCINSTALLDIR) or with the MS Platform SDK (MSSDK or WindowsSDKDir)
!if !defined(VCINSTALLDIR) && !defined(WINDOWSSDKDIR)
MSG = ^
This Makefile is only for Visual Studio 2008 and later.^
You need to ensure that the Visual Studio Environment is properly set up^
before running this Makefile.
!error $(MSG)
!endif
ERRNUL = 2>NUL
_HASH=^#
!if ![echo VCVERSION=_MSC_VER > vercl.x] \
&& ![echo $(_HASH)if defined(_M_IX86) >> vercl.x] \
&& ![echo PLAT=Win32 >> vercl.x] \
&& ![echo $(_HASH)elif defined(_M_AMD64) >> vercl.x] \
&& ![echo PLAT=x64 >> vercl.x] \
&& ![echo $(_HASH)endif >> vercl.x] \
&& ![cl -nologo -TC -P vercl.x $(ERRNUL)]
!include vercl.i
!if ![echo VCVER= ^\> vercl.vc] \
&& ![set /a $(VCVERSION) / 100 - 6 >> vercl.vc]
!include vercl.vc
!endif
!endif
!if ![del $(ERRNUL) /q/f vercl.x vercl.i vercl.vc]
!endif
!if $(VCVERSION) > 1499 && $(VCVERSION) < 1600
VSVER = 9
!elseif $(VCVERSION) > 1599 && $(VCVERSION) < 1700
VSVER = 10
!elseif $(VCVERSION) > 1699 && $(VCVERSION) < 1800
VSVER = 11
!elseif $(VCVERSION) > 1799 && $(VCVERSION) < 1900
VSVER = 12
!elseif $(VCVERSION) > 1899 && $(VCVERSION) < 1910
VSVER = 14
!elseif $(VCVERSION) > 1909 && $(VCVERSION) < 2000
VSVER = 15
!else
VSVER = 0
!endif
!if "$(VSVER)" == "0"
MSG = ^
This NMake Makefile set supports Visual Studio^
9 (2008) through 15 (2017). Your Visual Studio^
version is not supported.
!error $(MSG)
!else
!if $(VSVER) < 15
PDBVER = $(VSVER)
!else
PDBVER = 14
!endif
!endif
VALID_CFGSET = FALSE
!if "$(CFG)" == "release" || "$(CFG)" == "Release" || "$(CFG)" == "debug" || "$(CFG)" == "Debug"
VALID_CFGSET = TRUE
!endif
# One may change these items, but be sure to test
# the resulting binaries
!if "$(CFG)" == "release" || "$(CFG)" == "Release"
CFLAGS_ADD = /MD /O2 /GL /MP
!if "$(VSVER)" != "9"
CFLAGS_ADD = $(CFLAGS_ADD) /d2Zi+
!endif
!else
CFLAGS_ADD = /MDd /Od
!endif
!if "$(PLAT)" == "x64"
LDFLAGS_ARCH = /machine:x64
!else
LDFLAGS_ARCH = /machine:x86
!endif
!if "$(VALID_CFGSET)" == "TRUE"
CFLAGS = $(CFLAGS_ADD) /W3 /Zi
LDFLAGS_BASE = $(LDFLAGS_ARCH) /libpath:$(PREFIX)\lib /DEBUG
!if "$(CFG)" == "debug" || "$(CFG)" == "Debug"
ARFLAGS = $(LDFLAGS_ARCH)
LDFLAGS = $(LDFLAGS_BASE)
!else
ARFLAGS = $(LDFLAGS_ARCH) /LTCG
LDFLAGS = $(LDFLAGS_BASE) /LTCG /opt:ref
!endif
!endif

15
MSVC_NMake/filelist.am Normal file
View File

@ -0,0 +1,15 @@
## This file is part of libsigc++.
msvc_nmake_data = \
build-rules-msvc.mak \
config-msvc.mak \
create-lists.bat \
create-lists-msvc.mak \
detectenv-msvc.mak \
generate-msvc.mak \
info-msvc.mak \
install.mak \
Makefile.vc \
README.txt \
sigc++config.h \
sigc.rc

View File

@ -0,0 +1,10 @@
# NMake Makefile portion for code generation and
# intermediate build directory creation
# Items in here should not need to be edited unless
# one is maintaining the NMake build files.
# Create the build directories
vs$(VSVER)\$(CFG)\$(PLAT)\libsigcpp \
vs$(VSVER)\$(CFG)\$(PLAT)\libsigcpp-ex \
vs$(VSVER)\$(CFG)\$(PLAT)\libsigcpp-tests:
@-mkdir $@

40
MSVC_NMake/info-msvc.mak Normal file
View File

@ -0,0 +1,40 @@
# NMake Makefile portion for displaying config info
all-build-info:
@echo.
@echo ----------
@echo Build info
@echo ---------
@echo Build Type: $(CFG)
help:
@echo.
@echo ==============================
@echo Building libsigc++ Using NMake
@echo ==============================
@echo nmake /f Makefile.vc CFG=[release^|debug] ^<PREFIX=PATH^>
@echo.
@echo Where:
@echo ------
@echo CFG: Required, use CFG=release for an optimized build and CFG=debug
@echo for a debug build. PDB files are generated for all builds.
@echo.
@echo PREFIX: Optional, the path where dependent libraries and tools may be
@echo found, default is ^$(srcrootdir)\..\vs^$(short_vs_ver)\^$(platform),
@echo where ^$(short_vs_ver) is 12 for VS 2013 and 14 for VS 2015 and so on;
@echo and ^$(platform) is Win32 for 32-bit builds and x64 for x64 builds.
@echo.
@echo ======
@echo A 'clean' target is supported to remove all generated files, intermediate
@echo object files and binaries for the specified configuration.
@echo.
@echo An 'install' target is supported to copy the build (DLLs, LIBs, along with
@echo the header files) to appropriate locations under ^$(PREFIX).
@echo.
@echo A 'tests' target is supported to build the test programs, and a 'benchmark'
@echo target is supported to build the benchmarking program. Note that the
@echo benchmarking program requires the Boost C++ libraries to build, and you need
@echo to pass in BOOST_DLL=1 to the NMake command line if your Boost libraries are
@echo built as DLLs.
@echo ======
@echo.

20
MSVC_NMake/install.mak Normal file
View File

@ -0,0 +1,20 @@
# NMake Makefile snippet for copying the built libraries, utilities and headers to
# a path under $(PREFIX).
install: all
@if not exist $(PREFIX)\bin\ mkdir $(PREFIX)\bin
@if not exist $(PREFIX)\lib\sigc++-$(LIBSIGC_MAJOR_VERSION).$(LIBSIGC_MINOR_VERSION)\include\ mkdir $(PREFIX)\lib\sigc++-$(LIBSIGC_MAJOR_VERSION).$(LIBSIGC_MINOR_VERSION)\include
@if not exist $(PREFIX)\include\sigc++-$(LIBSIGC_MAJOR_VERSION).$(LIBSIGC_MINOR_VERSION)\sigc++\adaptors\lambda\ @mkdir $(PREFIX)\include\sigc++-$(LIBSIGC_MAJOR_VERSION).$(LIBSIGC_MINOR_VERSION)\sigc++\adaptors\lambda
@if not exist $(PREFIX)\include\sigc++-$(LIBSIGC_MAJOR_VERSION).$(LIBSIGC_MINOR_VERSION)\sigc++\functors\ @mkdir $(PREFIX)\include\sigc++-$(LIBSIGC_MAJOR_VERSION).$(LIBSIGC_MINOR_VERSION)\sigc++\functors
@if not exist $(PREFIX)\include\sigc++-$(LIBSIGC_MAJOR_VERSION).$(LIBSIGC_MINOR_VERSION)\sigc++\tuple-utils\ @mkdir $(PREFIX)\include\sigc++-$(LIBSIGC_MAJOR_VERSION).$(LIBSIGC_MINOR_VERSION)\sigc++\tuple-utils
@copy /b vs$(VSVER)\$(CFG)\$(PLAT)\$(LIBSIGC_LIBNAME).dll $(PREFIX)\bin
@copy /b vs$(VSVER)\$(CFG)\$(PLAT)\$(LIBSIGC_LIBNAME).pdb $(PREFIX)\bin
@copy /b vs$(VSVER)\$(CFG)\$(PLAT)\$(LIBSIGC_LIBNAME).lib $(PREFIX)\lib
@copy "..\sigc++\sigc++.h" "$(PREFIX)\include\sigc++-$(LIBSIGC_MAJOR_VERSION).$(LIBSIGC_MINOR_VERSION)\sigc++\"
@for %h in ($(LIBSIGC_INT_HDRS)) do @copy "..\sigc++\%h" "$(PREFIX)\include\sigc++-$(LIBSIGC_MAJOR_VERSION).$(LIBSIGC_MINOR_VERSION)\sigc++\%h"
@for %d in (sigc++ untracked\sigc++) do @(for %h in ($(base_built_h)) do @if exist ..\%d\%h copy "..\%d\%h" "$(PREFIX)\include\sigc++-$(LIBSIGC_MAJOR_VERSION).$(LIBSIGC_MINOR_VERSION)\sigc++\%h")
@for %d in (sigc++ untracked\sigc++) do @(for %h in ($(functors_built_h)) do @if exist ..\%d\functors\%h copy "..\%d\functors\%h" "$(PREFIX)\include\sigc++-$(LIBSIGC_MAJOR_VERSION).$(LIBSIGC_MINOR_VERSION)\sigc++\functors\%h")
@for %d in (sigc++ untracked\sigc++) do @(for %h in ($(adaptors_built_h)) do @if exist ..\%d\adaptors\%h copy "..\%d\adaptors\%h" "$(PREFIX)\include\sigc++-$(LIBSIGC_MAJOR_VERSION).$(LIBSIGC_MINOR_VERSION)\sigc++\adaptors\%h")
@for %d in (sigc++ untracked\sigc++) do @(for %h in ($(lambda_built_h)) do @if exist ..\%d\adaptors\lambda\%h copy "..\%d\adaptors\lambda\%h" "$(PREFIX)\include\sigc++-$(LIBSIGC_MAJOR_VERSION).$(LIBSIGC_MINOR_VERSION)\sigc++\adaptors\lambda\%h")
@if exist sigc++config.h copy "sigc++config.h" "$(PREFIX)\lib\sigc++-$(LIBSIGC_MAJOR_VERSION).$(LIBSIGC_MINOR_VERSION)\include\"
@if exist ..\untracked\MSVC_NMake\sigc++config.h copy "..\untracked\MSVC_NMake\sigc++config.h" "$(PREFIX)\lib\sigc++-$(LIBSIGC_MAJOR_VERSION).$(LIBSIGC_MINOR_VERSION)\include\"

35
MSVC_NMake/meson.build Normal file
View File

@ -0,0 +1,35 @@
# MSVC_NMake
# Input: pkg_conf_data, project_build_root, python3
# Output: -
sigc_rc = configure_file(
input: 'sigc.rc.in',
output: '@BASENAME@',
configuration: pkg_conf_data,
)
generated_sigc_config_h_orig = project_build_root / 'sigc++config.h'
# Copy the generated configuration header into the MSVC project directory.
cmd_py = '''
import shutil
shutil.copy2("@0@", "@1@")
'''.format(generated_sigc_config_h_orig, project_build_root / 'MSVC_NMake')
meson.add_postconf_script(python3.path(), '-c', cmd_py)
untracked_msvc_nmake = 'untracked' / 'MSVC_NMake'
handle_built_files = project_source_root / 'tools' / 'handle-built-files.py'
if not meson.is_subproject()
# Distribute built files.
# (add_dist_script() is not allowed in a subproject)
meson.add_dist_script(
python3.path(), dist_cmd,
python3.path(), handle_built_files, 'dist_gen_msvc_files',
meson.current_build_dir(),
untracked_msvc_nmake,
generated_sigc_config_h_orig, meson.current_build_dir() / 'sigc.rc',
)
endif

85
MSVC_NMake/sigc++config.h Normal file
View File

@ -0,0 +1,85 @@
/* sigc++config.h. Generated from sigc++config.h.in by configure. */
/* Define to omit deprecated API from the library. */
/* #undef SIGCXX_DISABLE_DEPRECATED */
/* Major version number of sigc++. */
#define SIGCXX_MAJOR_VERSION 2
/* Micro version number of sigc++. */
#define SIGCXX_MICRO_VERSION 3
/* Minor version number of sigc++. */
#define SIGCXX_MINOR_VERSION 10
/* Detect Win32 platform */
#ifdef _WIN32
# if defined(_MSC_VER)
# define SIGC_MSC 1
# define SIGC_WIN32 1
# define SIGC_DLL 1
# elif defined(__CYGWIN__)
# define SIGC_CONFIGURE 1
# elif defined(__MINGW32__)
# define SIGC_WIN32 1
# define SIGC_CONFIGURE 1
# else
# error "libsigc++ config: Unknown win32 architecture (send me gcc --dumpspecs or equiv)"
# endif
#else /* !_WIN32 */
# define SIGC_CONFIGURE 1
#endif /* !_WIN32 */
#ifdef SIGC_MSC
/*
* MS VC7 Warning 4251 says that the classes to any member objects in an
* exported class must also be exported. Some of the libsigc++
* template classes contain std::list members. MS KB article 168958 says
* that it's not possible to export a std::list instantiation due to some
* wacky class nesting issues, so our only options are to ignore the
* warning or to modify libsigc++ to remove the std::list dependency.
* AFAICT, the std::list members are used internally by the library code
* and don't need to be used from the outside, and ignoring the warning
* seems to have no adverse effects, so that seems like a good enough
* solution for now.
*/
# pragma warning(disable:4251)
# define SIGC_MSVC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD 1
# define SIGC_NEW_DELETE_IN_LIBRARY_ONLY 1 /* To keep ABI compatibility */
# define SIGC_PRAGMA_PUSH_POP_MACRO 1
#if (_MSC_VER < 1900) && !defined (noexcept)
#define _ALLOW_KEYWORD_MACROS 1
#define noexcept _NOEXCEPT
#endif
#else /* SIGC_MSC */
/* does the C++ compiler support the use of a particular specialization when
calling operator() template methods. */
# define SIGC_GCC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD 1
/* Define if the non-standard Sun reverse_iterator must be used. */
/* # undef SIGC_HAVE_SUN_REVERSE_ITERATOR */
/* does the C++ compiler support the use of a particular specialization when
calling operator() template methods omitting the template keyword. */
# define SIGC_MSVC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD 1
/* does the C++ preprocessor support pragma push_macro() and pop_macro(). */
# define SIGC_PRAGMA_PUSH_POP_MACRO 1
#endif /* !SIGC_MSC */
#ifdef SIGC_DLL
# if defined(SIGC_BUILD) && defined(_WINDLL)
# define SIGC_API __declspec(dllexport)
# elif !defined(SIGC_BUILD)
# define SIGC_API __declspec(dllimport)
# else
# define SIGC_API
# endif
#else /* !SIGC_DLL */
# define SIGC_API
#endif /* !SIGC_DLL */

30
MSVC_NMake/sigc.rc Normal file
View File

@ -0,0 +1,30 @@
#include <winver.h>
VS_VERSION_INFO VERSIONINFO
FILEVERSION 2,10,3,1
PRODUCTVERSION 2,10,3,1
FILEFLAGSMASK 0
FILEFLAGS 0x0L
FILEOS VOS__WINDOWS32
FILETYPE VFT_DLL
FILESUBTYPE VFT2_UNKNOWN
BEGIN
BLOCK "StringFileInfo"
BEGIN
BLOCK "040904b0"
BEGIN
VALUE "CompanyName", "The libsigc++ development team (see AUTHORS)"
VALUE "FileDescription", "The Typesafe Callback Framework for C++"
VALUE "FileVersion", "2.10.3"
VALUE "LegalCopyright", "Distribution is under the LGPL (see COPYING)"
VALUE "OriginalFilename", "sigc-2.0.dll"
VALUE "ProductName", "libsigc++"
VALUE "ProductVersion", "2.10.3"
END
END
BLOCK "VarFileInfo"
BEGIN
VALUE "Translation", 0x409, 1200
END
END

30
MSVC_NMake/sigc.rc.in Normal file
View File

@ -0,0 +1,30 @@
#include <winver.h>
VS_VERSION_INFO VERSIONINFO
FILEVERSION @SIGCXX_MAJOR_VERSION@,@SIGCXX_MINOR_VERSION@,@SIGCXX_MICRO_VERSION@,1
PRODUCTVERSION @SIGCXX_MAJOR_VERSION@,@SIGCXX_MINOR_VERSION@,@SIGCXX_MICRO_VERSION@,1
FILEFLAGSMASK 0
FILEFLAGS 0x0L
FILEOS VOS__WINDOWS32
FILETYPE VFT_DLL
FILESUBTYPE VFT2_UNKNOWN
BEGIN
BLOCK "StringFileInfo"
BEGIN
BLOCK "040904b0"
BEGIN
VALUE "CompanyName", "The libsigc++ development team (see AUTHORS)"
VALUE "FileDescription", "The Typesafe Callback Framework for C++"
VALUE "FileVersion", "@PACKAGE_VERSION@"
VALUE "LegalCopyright", "Distribution is under the LGPL (see COPYING)"
VALUE "OriginalFilename", "sigc-@SIGCXX_API_VERSION@.dll"
VALUE "ProductName", "libsigc++"
VALUE "ProductVersion", "@PACKAGE_VERSION@"
END
END
BLOCK "VarFileInfo"
BEGIN
VALUE "Translation", 0x409, 1200
END
END

63
Makefile.am Normal file
View File

@ -0,0 +1,63 @@
## Copyright (c) 2009 Openismus GmbH <http://www.openismus.com/>
##
## This file is part of libsigc++.
##
## libsigc++ is free software: you can redistribute it and/or modify it
## under the terms of the GNU Lesser General Public License as published
## by the Free Software Foundation, either version 2.1 of the License,
## or (at your option) any later version.
##
## libsigc++ is distributed in the hope that it will be useful, but
## WITHOUT ANY WARRANTY; without even the implied warranty of
## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
## See the GNU Lesser General Public License for more details.
##
## You should have received a copy of the GNU Lesser General Public License
## along with this library. If not, see <http://www.gnu.org/licenses/>.
ACLOCAL_AMFLAGS = -I build ${ACLOCAL_FLAGS}
if ENABLE_DOCUMENTATION
doc_subdirs = docs
else
doc_subdirs =
endif
SUBDIRS = sigc++ tests examples $(doc_subdirs)
sigc_configdir = $(libdir)/$(SIGCXX_MODULE_NAME)/include
nodist_sigc_config_HEADERS = sigc++config.h
pkgconfigdir = $(libdir)/pkgconfig
nodist_pkgconfig_DATA = $(SIGCXX_MODULE_NAME).pc
noinst_DATA = $(SIGCXX_MODULE_NAME)-uninstalled.pc
dist_noinst_SCRIPTS = autogen.sh
include $(srcdir)/MSVC_NMake/filelist.am
dist_noinst_DATA = $(addprefix MSVC_NMake/,$(msvc_nmake_data))
DISTCLEANFILES = MSVC_NMake/sigc++config.h
# Distribute files needed when building libsigc++ with meson.
EXTRA_DIST = \
meson.build \
meson_options.txt \
sigc++config.h.meson \
MSVC_NMake/meson.build \
docs/manual/meson.build \
docs/reference/meson.build \
examples/meson.build \
sigc++/meson.build \
tests/meson.build \
tools/dist-cmd.py \
tools/handle-built-files.py \
tools/tutorial-custom-cmd.py \
tools/gcc_template_specialization_operator_overload.cc \
tools/have_sun_reverse_iterator.cc \
tools/msvc_template_specialization_operator_overload.cc \
tools/pragma_push_pop_macro.cc \
untracked/README
# Optional: auto-generate the ChangeLog file from the git log on make dist
include $(top_srcdir)/build/dist-changelog.am

1037
Makefile.in Normal file

File diff suppressed because it is too large Load Diff

764
NEWS Normal file
View File

@ -0,0 +1,764 @@
2.10.3 (stable)
Build:
* Add Meson build, alongside the existing Autotools build.
(Kjell Ahlstedt, Chun-Wei Fan) Pull request #47, #50
* Improve MSVC builds on Windows
(Chun-Wei Fan) Pull request #50
* meson.build: Check if .git is a directory or file
(Kjell Ahlstedt) Merge request pangomm!8 (Ting-Wei Lan)
* docs/reference/meson.build: Check if perl is found
(Kjell Ahlstedt) Issue #53 (Rasmus Thomsen)
* README: Describe building with Meson and Autotools
(Kjell Ahlstedt)
Tests:
* Make test_track_obj.cc compile with clang++
(Kjell Ahlstedt)
2.10.2: (stable)
This release is identical to 2.10.1, except for:
* Reference docs generated by Doxygen 1.8.11.
Hopefully it will show up at
https://developer.gnome.org/libsigc++/stable/
2.10.1: (stable)
* signal_impl::clear(): Don't clear the slot list during signal emission,
to prevent a segfault. And add a test for this.
(Kjell Ahlstedt) Bug #784550 (Andrejs Hanins)
* slot_base::set_parent(): Create a dummy slot_rep if necessary
(Kjell Ahlstedt) Bug #167714 (Gerald Britton)
* Avoid compiler warnings from function pointer conversions
(Kjell Ahlstedt) Issue #1 (sharkcz)
(Kjell Ahlstedt) Issue #8 (db0451)
Build:
* Make --disable-benchmark work.
(Christophe Lermytte) Bug #774732
* Replace the Visual Studio project files with MSVC NMake project files
Add MSVC_NMake/README.txt for Visual Studio builds
(Chun-wei Fan) Pull request #11
Documentation:
* signal_base: Warn against deletion during emission
(Kjell Ahlstedt) Bug #167714 (Gerald Britton)
* Update links in README, configure.ac, libsigcplusplus.doap
(Kjell Ahlstedt)
2.10.0 (stable):
* Build: Fix silent builds.
(Kjell Ahlstedt) Bug #768797
2.9.3 (unstable):
* signal:
Deprecate slots().
Please tell us if you really need this.
(Murray Cumming)
Deprecate emit_reverse().
Please tell us if you really need this.
(Murray Cumming)
* Benchmark: Update it and use boost::timer, and actually build it,
but not built by default.
(Murray Cumming)
Build:
* Fix the build on MSVC++ 2013 and 2015.
(Chun-wei Fan) Bug #767777
2.9.2 (unstable):
* Minor documentation improvements.
(Murray Cumming)
* Some more minor uses of C++11 syntax.
(Murray Cumming)
2.9.1 (unstable):
* slot: Allow sigc::slot<R(Args...)> syntax, like std::function,
deprecating the sigc::slot<R, Args...> syntax.
(Murray Cumming, Kjell Ahlstedt) Bug #763393
* signal: Allow sigc::signal<R(Args...)> syntax, like std::function,
deprecating the sigc::signal<R, Args...> syntax.
(Murray Cumming, Kjell Ahlstedt) Bug #763393
2.8.0 (stable):
* Documentation: Mention use with CMake.
2.7.2 (unstable):
* Deprecate sigc::ref() and sigc::reference_wrapper(),
adding support instead for std::ref(), std::cref(),
and std::reference_wrapper().
(Murray Cumming)
* mem_fun(): Deprecate mem_fun(pointer, func).
Leaving just mem_fun(reference, func).
Please let us know if you disagree strongly with this.
(Murray Cumming) Bug #763215
* Make all operator bool() explicit. (A C++11 feature.)
(Murray Cumming)
* Build: Remove some now-unnecessary configure checks.
But please let us know if this causes problems for you.
(Murray Cumming) Bug #762065 (Kjell Ahlstedt)
* Build: Update MSVC project.
(Chun-wei Fan)
* Documentation: Improve the documentation of mem_fun(), making it clear that
mem_fun() does not return a slot.
(Kjell Ahlstedt)
2.7.1 (unstable):
* signal: Add a moving connect() method, taking an rvalue reference
to a slot.
(Kjell Ahlstedt) Bug #756484
* can_deduce_result_type_with_decltype: Rename the check() methods to
checksize(). check() is a preprocessor macro in Mac OS X.
(Kjell Ahlstedt) Bug #759315 (David Otto)
* Temporarily undefine the nil macro, if it's defined.
nil is a preprocessor macro in Objective-C++ and Mac OS X.
(Kjell Ahlstedt) Bug #695235
* Correct the mem_functor<> declarations.
Murray Cumming
2.6.2 (stable):
* slot: Handle auto-disconnection when a slot contains a slot
(Kjell Ahlstedt) Bug #755003 (Ryan Beasley)
* slot and signal: Correct move constructors and move assignments.
(Kjell Ahlstedt) Bug #756484.
* trackable, slot_base, signal_base, connection: Add some noexcept specs
(Kjell Ahlstedt) Bug #756484.
* trackable, slot, signal: Remove noexcept from move operations.
(Kjell Ahlstedt) Bug #756484.
* slot and signal: Add missing move constructors and move assignments
(Kjell Ahlstedt) Bug #756484.
* signal_impl: =delete copy and move operations.
(Murray Cumming, Kjell Ahlstedt) Bug #756484
* typed_slot_rep: =delete unimplemented copy and move operations.
(Murray Cumming, Kjell Ahlstedt) Bug #756484
* slot_rep: =delete copy and move operations.
(Murray Cumming, Kjell Ahlstedt) Bug #756484
2.6.1 (stable):
* Add back deprecated adaptors/lambda API to avoid an unintented ABI break.
(Kjell Ahlstedt) Bug #755550 (Michael Biebl)
* sigc::trackable: Move operations: Don't move the callback list
(Kjell Ahlstedt) Bug #755393 (Tom Schoonjans)
2.6.0 (stable):
* C++11: deduce_result_type: Simplify with C++11 variadic template.
(Murray Cumming, Marcin Kolny) Bug #753612
* Fix the build with MSVC.
(Chun-wei Fan) Bug #754082
* Update the website.
(Kjell Ahlstedt)
2.5.4 (unstable):
* slot_base::operator=(const &): Copy the blocked too,
so the destionation is blocked if the source is blocked,
regardless of whether the destionation was previously
blocked, because this seems to be what we should expect.
(Murray Cumming)
* C++11: slot_base, slot*, signal_base, signal*, trackable:
Add move operations.
(Murray Cumming)
* Update MSVC Projects, requiring at least MSVC++ .Net 2013
for C++11 support.
(Chun-wei Fan)
2.5.3 (unstable):
* Use C++11 "using" aliases to simplify code that uses type traits.
(Murray Cumming) Bug #753580
2.5.2 (unstable):
* Remove useless headers:
sigc++/class_slot.h
sigc++/hide.h
sigc++/method_slot.h
sigc++/object.h
sigc++/object_slot.h
sigc++/retype.h
Some of these still have equivalents in sigc++/adaptors/
(Kjell Ahlstedt, Murray Cumming) Bug #752560
* C++11: Replace deprecated std::auto_ptr by std::unique_ptr.
(Kjell Ahlstedt)
* C++11: Use std::is_base_of<> instead of our sigc::is_base_and_derived<>,
removing sigc::is_base_and_derived<>.
(Kjell Ahlstedt, Murray Cumming) Bug #752560
* C++11: Use of range-based for loops.
(Murray Cumming)
* C++11: Use of the auto keyword.
(Murray Cumming)
* C++11: Use of nullptr instead of 0.
(Murray Cumming)
* sigc++/slot.h: Use a regular .h file instead of generating it
from an .m4 file. Bug #752560
(Kjell Ahlstedt)
* Visual Studio Builds: Move 2010 Projects to 2012 to support C++11.
(Chun-wei Fan)
* Use -Wformat-security and -Wshadow with --enable-warnings=fatal.
(Murray Cumming)
2.5.1 (unstable):
* Use (and require) C++11
(Kjell Ahlstedt)
* Using C++11 lambda functions to create sigc::slots:
Avoid the need for SIGC_FUNCTORS_DEDUCE_RESULT_TYPE_WITH_DECLTYPE.
(Kjell Ahlstedt)
* Remove the already-deprecated sigc::lambda (and sigc::group) API.
This is an API change but should not be an ABI change, so it should
only affect you when rebuilding applications, if you use this API.
(Murray Cumming, Kjell Ahlstedt)
2.4.1 (stable):
* A slot's functor is destroyed when an empty slot is assigned to the slot.
(Kjell Ahlstedt) Bug #738602 (James Lin)
* test_disconnect_during_emit tests that the slot is really disconnected
during signal emission.
(Kjell Ahlstedt)
2.4.0 (stable):
Note: API/ABI is the same as in release 2.3.2. Compared to stable
releases 2.2.x, the API has been broken regarding visit_each() functions.
See the NEWS entry for libsigc++ 2.3.2.
* Fix the test_lambda test case for MS Visual C++ 2013 and other
C++11-compliant compilers.
(Kjell Ahlstedt) Bug #734368 (Ryan Beasley)
* Add a missing #include in limit_reference.h.
(Kjell Ahlstedt)
* Documentation:
- Use doxygen-extra.css from the mm-common package.
Requires mm-common 0.9.7 when configured to use maintainer-mode.
(Kjell Ahlstedt)
2.3.2 (unstable):
Note: The implementation of bug #724496 breaks API for some users,
but it does not break ABI.
Only users who have added their own visit_each() overloads are affected by
the API break. Their programs will still compile, but there will be run-time
errors, if they rely on auto-disconnection of slots.
Updated instructions for users who implement their own adaptors are found
in the description of sigc::adapts<>.
* Replace visit_each() overloads by struct visitor<>.
Add the test_visit_each test case.
(Ryan Beasley, Kjell Ahlstedt) Bug #724496
* signal_impl::notify(): Don't delete signal_impl during erase().
(Kjell Ahlstedt) Bug #564005 (Alexander Shaduri)
* Fix 'make check' with clang++ 3.4 and --enable-warnings=fatal
(Kjell Ahlstedt) Bug #724496 (Ryan Beasley)
* Fix test_cpp11_lambda for gcc 4.8
(Kjell Ahlstedt)
* Speed up disconnection of slots.
(Kjell Ahlstedt) Bug #167714 (Neal E. Coombes)
* Auto-generate the ChangeLog from the git log for 'make dist'.
(José Alburquerque)
* Don't use __file__ in the FIREWALL m4 macro.
(Kjell Ahlstedt) Bug #699168 (John Ralls)
* Add the track_obj() adaptor and test_track_obj test case.
Deprecate libsigc++ lambdas, sigc::group() and sigc::var().
Use C++11 lambda expressions instead.
(Kjell Ahlstedt) Bug #672555
* Documentation:
- Emphasize that signals are reference counted.
(Kjell Ahlstedt) Bug #611941 (Jonathon Jongsma)
- Mention std::function<> and std::bind() where appropriate.
(Kjell Ahlstedt, Chris Vine)
- Use DOXYGEN_SHOULD_SKIP_THIS consistently to exclude internal
functions from the reference documentation.
(Kjell Ahlstedt)
* Windows:
- Enable C++11 lambda expressions with MS Visual Studio 2012 and later
(Ryan Beasley) Bug #733752
- Update MSVC_Net2010
(Kjell Ahlstedt) Bug #724496 (Ryan Beasley)
2.3.1 (unstable):
* signal_base: Add blocked(), block(), unblock().
(Kjell Ahlstedt) Bug #153780
2.2.11 (stable):
* Fix comma operator in libsigc++ lambda expressions.
Andris Pavenis) Bug #342911
* Added SIGC_FUNCTORS_DEDUCE_RESULT_TYPE_WITH_DECLTYPE.
This allows most uses of libsigc++'s lambda expressions to be
replaced by standard C++11 lambda expressions.
(Kjell Ahlstedt) Bug #672555.
Thanks to Chow Loong Jin, who posted similar code on libsigc-list.
* Use std::size_t and std::ptrdiff_t instead
(Kjell Ahlstedt)
* Fix 'make check' with gcc 4.7.
(Kjell Ahlstedt)
* Enable test_lambda in 'make check'.
(Kjell Ahlstedt) Bug #669128.
2.2.10:
* slot_rep: Avoid access to deleted object in notify(),
and test case.
(Kjell Ahlstedt ) Bug #564005 (Alexander Shaduri)
* Mention visit_each() in the documentation of sigc::adapts.
(Thomas Rydzynski)
2.2.9:
* trackable: Avoid calling the same callback function twice, fixing some
memory corruption.
(Kjell Ahlstedt) Bug #589202
* Minor documentation corrections.
(David King)
* Fix the build with GCC 4.6
(Kalev Lember)
* Windows build fixes for MSVC++ .Net 2005 and 2010
(Armin Burgmeier)
2.2.8:
Nothing interesting. Just a small change for library.gnome.org.
2.2.7:
* Documentation:
- Added main page text with doxygen.
(David King, Murray Cumming)
- Fix the functors Doxygen group.
(David King)
- Tutorial: Removed outdated marshallers section that had no working example.
(Murray Cumming) Bug #417924 (Michael Ekstrand)
2.2.6:
* Slight documentation changes.
(Murray Cumming) Bug #614741 (Armin Burgmeier)
2.2.5:
* Accumulators: Allow return types that are different to the signal's.
(Krzysztof Kosiński)
* Documentation:
- Disable collaboration graphs in documentation
- Use non-blurry font for graph labels.
(Daniel Elstner)
- sigc::hide() correction: It always only hides one signal argument.
(Michael Hasselmann)
* Fix the MSVC++ build.
(Armin Burgmeier)
2.2.4.2 (stable):
* Namespace sigc is now documented, in order to make large chunks of the
reference reappear. (Daniel Elstner)
* The shipped reference documentation has been regenerated using Doxygen
1.6.1, so that the document type is now XHTML 1.0. (Daniel Elstner)
* The shipped Devhelp file has been generated with a newer version of the
XSLT script in mm-common, so that documentation groups no longer appear
as namespace prefixes in the keyword list. (Daniel Elstner)
2.2.4.1 (stable):
* Reenable the per-class hierarchy graphs in the reference documentation.
(Daniel Elstner)
* Drop the custom HTML header and footer, and use the shared doxygen.css
file from mm-common. (Daniel Elstner)
2.2.4 (stable):
* New build system based on mm-common. The mm-common module is now
required for building from the git repository, but not for builds
of release archives. (Daniel Elstner)
* The public reference documentation is now hosted on library.gnome.org.
(Frédéric Péters, Daniel Elstner)
2.2.3 (stable):
* Windows:
- Added project files (and property sheets) for
MSVC++ 2005 and 2008.
(Armin Burgmeier)
- Removed unnecessary dependency on afxrefs.h, so it builds
with MSVC++ Express editions.
(Cedric Gustin)
2.2.2 (stable):
* Added an include of functors/slot.h that was mistakenly removed
during the 2.1 series.
(Deng Xiyue) Bug #521418.
2.2.1 (stable):
* Really fix the build with Sun CC.
(Elaine Xiong. Bug #302098)
2.2.0 (stable):
* Build fixes when using gcc 4.3 pre-releases.
(Ryan Hill, Vladimir Marek)
2.1.1 (unstable):
WARNING: This is an unstable release and should not yet be
packaged by distributions unless libsigc++ 2.0.x does not
build for some reason (Please report such bugs).
* Removed the SigC:: namespace and other compatibility API,
to fix the build with some versions of some compilers,
such as the SUN Forte C++ CC compiler.
See bug #302098, for instance
(Murray Cumming)
* sigc::signal<>:
- Added Added typedefs for
value_type, reference, and pointer, so that these
iterators are more like standard C++ iterators, so they can
be used with standard C++ algorithms.
(Michael Elkstrand) (Bug #417926).
- Added emit_reverse().
(John Profic)
2.0.17:
* slot::disconnect(): Make this work.
sigc::connection::disconnect() already worked.
(James Lin, Murray Cumming)
* visit_each compilation problem fixed.
(Philipp Berndt)
2.0.16:
* Fixed build for SUN Forte C++ 5.5
* Fixed build for MSVC++ 7.1
* Fixed crash when using --no-inline with g++.
2.0.15:
* g++ 3.2 (and Mac OS X g++ 3.3) build fix.
(Paul Pogonyshev)
* Compose: Fix slot lifetime regression introduced in
2.0.9. (Philip Langdale)
* tests: Small ISO C++ correctness fix (Marek Rouchal)
* Don't specify unused function parameter names.
(Andris Pavenis)
2.0.14:
* SUN Forte 5.7 build fix for ambiguity when using
inner template class. However, you still need the
patch in bug #302098 to finish the build.
2.0.13:
* signal_emit::emit(): Ensure the correct order of
destruction of the member variables, to avoid a leak.
(Andreas Ames, bug #306249)
* Allow recursive signal emission again.
(Neal E. Coombes, bug #303896)
* SUN Forte CC 5.5 build fixes:
- test_compatibility minor fix.
- visit_each() template specializations:
Mention the bool I_derives_trackable template type,
(Friedemann Kleint, bug #305647)
- Check for the non-standard SUN reverse_iterator,
and use alternative code if necessary.
(Murray Cumming)
2.0.12:
* Fixes crashes when using virtual inheritance, particularly
with bound by-reference parameters, caused by casting
from derived to base when the derived destructor has run.
(Régis Duchesne)
This might affect non-g++ compilers, so do tell us about
any problems.
2.0.11:
* Build fixes for SUN Forte, Tru64
(Murray Cumming), and MSVC++ (Cedric Gustin).
2.0.10:
* tests: Include <new> to avoid unresolved symbols on Tru64.
(Tim Mooney)
* When signal handlers are connected made during an emit
of the same signal, prevent them from being called in the
same emit, to prevent infinite loops.
(Neal E. Coombes)
* Performance improvement in a corner case.
(Neal E. Coombes).
2.0.9:
* sigc::bind() now works with the AIX and Tru64 compilers.
See the comments in sigc++/visit_each.h: visit_each_type()
if you have compilation problems.
(Murray Cumming)
* sigc::var() is now documented. (Roger Ferrer Ibáñez)
2.0.8:
* Maybe avoid (incorrect) warning with g++ 3.3.5.
(Murray Cumming)
* Fix namespace ambiguity when using multiple
major versions of libsigc++. (Liza Klerck)
2.0.7:
* Now builds with the following compilers, in addition to
the existing GNU g++, SUN Forte CC 5.5, MSVC++ .Net 2003,
and Intel compilers:
- IBM AIX xlC v7
- Tru64 C++ V6.5-042
- IRIX MIPSpro 7.4.2m
(Older versions of all these compilers might also work.)
(Murray Cumming, www.thewrittenword.com)
* MSVC++ .Net 2003 build improvements.
(Cedric Gustin, Timothy M. Shead)
* Replace C-style casts with reinterpret_cast<> and
static_cast<>. (e97_far at e.kth.se).
* Documentation: Added manual, based on the manual in
libsigc++ 1.2, but updated for the new API.
(Murray Cumming)
2.0.6:
* Fixed a memory leak in sigc::slot.
* Fixed compilation for gcc-3.4.
* Fixed compilation for Intel C++ compiler (upgraded libtool).
* Fixed project files for MSVC .Net (Timothy M. Shead).
* Fixed segfaults when compiled with MSVC .Net 2003 (moved
all calls to new and delete into non-inline library code).
* In the compatibility module use correct bound_mem_functor
variants for const (volatile) methods when creating a slot.
* Minor documentation fix.
* Resolved bugs: #152327 #148744 #152323 #151404 #153143
2.0.5:
* Distribute pregenerated configuration header for MSVC .Net.
2.0.4:
* Fixed warnings and compiler errors in the test cases.
* Added a new test case (Murray Cumming).
* Fixed 'hello_world' example.
* Don't test optional features that fail with the Sun FORTE.
* Fixes for the Sun FORTE to compile out-of-the-box
(Damien Carbery, Murray Cumming, Martin Schulze).
* Fixes for MSVC to build a DLL out-of-the-box (James Lin).
* Improved compiler specific configuration during 'configure'.
* Added rmp description file libsigc++-2.0.spec (Eric Bourque).
* Minor documentation improvements (Murray Cumming).
* Resolved bugs: #147311 #147313 #147391 #144846 #145541
2.0.3:
* Fix segfault on emission of unconnected signal.
* Test emission of unconnected signals in the test case.
* Suppress compiler warning at dynamic_cast<>-test for good.
(Help from Christof Petig and Timothy M. Shead.)
2.0.2:
* Suppress compiler warning in compatibility module at
dynamic_cast<>-test (fix suggested by Timothy M. Shead).
* If a custom accumulator is specified invoke it on signal
emission even if the signal's slot list is empty. (This used
to be the case in libsigc++-1.2 as pointed out by Timothy.)
2.0.1:
* Fixed serious bug in reference counting in sigc::signal_base::impl().
* Fixed SigC::Object-derivation check in SigC::slot() compatibility module.
* Fixed compilation on Apple gcc 3.3 (assisted by Spundun Bhatt).
* Fixed configure check for gcc 3.4 (Murray Cumming).
2.0.0:
* Implemented sigc::connection::blocked() (Murray Cumming).
* Added the scripts directory to the make dist target (Murray Cumming).
* Added more documentation (Martin Schulze).
1.9.16:
* Fixed compiler warning in sigc::connection (Alexander Nedotsukov, Murray Cumming).
* Fixed examples and made them part of the regular build (Murray Cumming).
* Added header sigc++config.h for configure time checks (Murray Cumming).
* Added configure time checks to determine the correct syntax
for explicit template method specializations (Murray Cumming).
* Removed code using partial specializations of overloaded template methods
from test cases. SUN Forte doesn't support this feature (Martin Schulze).
* Fixed compilation for gcc 3.4 (Murray Cumming).
1.9.15:
API additions:
* Add numbered slot# templates.
* Allow for methods of the object's base types to be passed into sigc::mem_fun().
Other fixes and cleanups:
* Make is_base_and_derived template compatible with the SUN Forte.
* Non-template code moved from .m4 macro source to .h/.cc files (Murray Cumming).
* Implementation moved to .cc files (Murray Cumming).
* More fixes for the SUN Forte. Make some more ctors explicit.
1.9.14:
* Added sigc::slot_base::operator bool() (Murray Cumming).
* Build docs directory by default (Murray Cumming).
* Fixed minor doxygen issues (Murray Cumming).
* Fixed compiler warning in signal.h (Murray Cumming).
1.9.13:
* Fixed passing references through sigc::slot (Reported by Jeff Franks).
* Enabled binding of objects to method slots through sigc::bind().
* Reworked sigc::bind() API: Made the template argument for the
parameter position zero-based and optional. Added overloads for
binding of up to 7 arguments at a time when no position is specified.
* Reworked sigc::hide() API: Made the template argument for the
parameter position zero-based and optional.
* Fixed compilation problems with MSVC .Net 2003 (Roel Vanhout).
* Distribute MSVC .Net 2003 project files in the tarballs.
* Improved and extended documentation.
* Minor cleanups.
1.9.12:
* Added adaptor retype(). With this final API addition all adaptors
are in place that are available in libsigc++-1.2.
* Added negation lambda operator. Use STL names for lambda actions.
* Remove formerly disabled support for gcc extension typeof().
* Added project files for MS Visual Studio .Net 2003. (Roel Vanhout)
* Make libsigc++2 compile with .Net 2003. (Roel Vanhout, Martin Schulze)
* Build shared version of libsigc++2 by default. (Cedric Gustin)
* Add support for win32 platform. (Cedric Gustin)
* Install .m4 files. (requested by Ron Steinke)
* Cleaned up functors.
* Restructured and completed documentation of the core library parts.
1.9.11:
API Additions and important bug fixes:
* Compatibility module completed. libsigc++-1.2 filenames are preserved.
* Fixed critical bug in auto-disconnection: don't defer detaching
of a slot from all referred trackables during signal emission.
* Reduced size of slots significantly.
* Fixed support for sigc::ref() in adaptors.
* Fixed sigc::visit_each(): only hit targets that are passed by
reference; pass bound members in bound_member_functor by reference.
* Add lambda actions sigc::{reinterpret,static,dynamic}_cast_
to support explicit parameter conversion.
* Add adaptors sigc::retype_return<>() and sigc::hide_return().
Minor fixes:
* Fixed return type deduction for bind<0>.
libsigc++-1.9.11 should compile with gcc-3.3.
* Fixed copy constructor and operator=() of slot template.
* Fixed a compiler warning in signal_emit#<>::emit().
* Improved test case.
1.9.10:
* Fix compiler issues with gcc-3.3.2 (patch from Jeff Franks).
* Remove compiler check for the gcc extension typeof().
* Simplify bind_functor templates.
* Move definition of struct nil into functor_trait.h.
1.9.9:
* Add a constructor to sigc::connection that takes a slot_base&
to support user defined slot lists like they are used in gtkmm.
* Fix compiler issues with gcc-3.3.2 (reported by Jeff Franks).
1.9.8:
* Add compatibility module that defines namespace SigC.
namespace SigC should be API compatible to libsigc++-1.2.
Currently only the core parts of the library are supported.
Adaptors are still to follow.
* Fix connection::operator=(). Include connection.h in sigc++.h.
* Get rid of namespace functor.
* Rename dependency to destroy_notify_callback.
* Rename trackable::clear() to trackable::notify_callbacks().
* Move slot_base, signal_base, slot_iterator[_buf], slot_list
out of namespace internal. They are public API.
* Add reference counter to signal_impl enabling signals
to share the underlying information.
* Add convenience function signal#::make_slot().
* Get rid of one-letter-parameter-names.
* Get rid of "using namespace ..." in the test cases.
* Add lambda operators subscript ([]) and assign (=).
* Fix is_base_and_derived<> for const types.
* New and updated documentation.
* Add previous announces to file NEWS.
1.9.7:
* Added sigc++/sigc++.h. (Murray Cumming)
* Added member_method example. (Murray Cumming)
* Renamed closure to slot.
* Fixed issues with gcc-3.3. (Adreas Rottmann)
* Removed unnecessary void specializations.
* Made adaptors' operator()() (overload with no arguments) return a value.
* Made visit_each() support adaptors.
* Overhauled return type deduction to make it work without typeof().
* Added convinience macros SIGC_FUNCTORS_HAVE_RESULT_TYPE and
SIGC_FUNCTOR_TRAIT(T_functor, T_result) to make return type deduction system
support 3rd-party funtors.
* Changed syntax of group adaptor from "[functor] % grp([lambdas])" to "group
([functor], [lambdas])".
* Made many fixes to lambda functionality.
* Added var() and constant() lambda creators.
* Added many lambda operators.
* Added ref() which creates a reference wrapper to enable storage of
references in bind and group adaptors.
* Expanded test suite.
* Added documentation. (Corrections by Murray Cumming)
1.9.6:
* First public release of the unstable 2.0 generation.
libsigc++ 2.0 uses modern C++ mechanisms to achieve a highly
flexible, yet typesafe callback system. It supports all features of
libsigc++ 1.2 and improves upon it by:
- No need to specify the number of arguments in signal definitions.
- Connection of any compatible (=implicitly convertable) functor
to a signal.
- Implicit type conversions of parameters during signal emission.
- Lambda adaptor for complete restructuring of functor parameter
lists in one line (subject to changes).
- Signal has a fully featured stl style list interface.
- A convinient accumulator API (replacing the old marshaller API).
- Removal of unnecessary memory management functionality.
- Lightweight class "trackable" for use as base class of your
class hierarchy replaces class "Object".

120
README Normal file
View File

@ -0,0 +1,120 @@
libsigc++ -- The Typesafe Callback Framework for C++
General information:
libsigc++ implements a typesafe callback system for standard C++. It
allows you to define signals and to connect those signals to any
callback function, either global or a member function, regardless of
whether it is static or virtual.
libsigc++ is used by gtkmm to wrap the GTK+ signal system. It does not
depend on GTK+ or gtkmm.
Further information is available on the libsigc++ project home page:
https://libsigcplusplus.github.io/libsigcplusplus/
License information:
Distribution of library and components is under the LGPL as listed in the
file COPYING. Examples and tests are Public Domain.
Contact information:
Maillist: mailto: libsigc-list@gnome.org
Homepage: https://libsigcplusplus.github.io/libsigcplusplus/
Online reference documentation: https://developer.gnome.org/libsigc++/unstable/
Download: http://ftp.gnome.org/pub/GNOME/sources/libsigc++/
https://download.gnome.org/sources/libsigc++/
Git: https://github.com/libsigcplusplus/libsigcplusplus
Bug reports: https://github.com/libsigcplusplus/libsigcplusplus/issues
Compatibility:
Compatible compilers must support C++11, such as the decltype() specifier.
All releases are tested with the gcc (g++) compiler.
# Building
Whenever possible, you should use the official binary packages approved by the
supplier of your operating system, such as your Linux distribution.
## Building on Windows
See MSVC_NMake/README.txt.
## Building from a release tarball
It's easiest to build with Meson, if the tarball was made with Meson,
and to build with Autotools, if the tarball was made with Autotools.
Then you don't have to use maintainer-mode.
How do you know how the tarball was made? If it was made with Meson,
it contains files in untracked/build_scripts/, untracked/docs/ and possibly
other subdirectories of untracked/.
### Building from a tarball with Meson
Don't call the builddir 'build'. There is a directory called 'build' with
files used by Autotools.
If the tarball was made with Autotools, you must enable maintainer-mode:
$ meson --prefix=/some_directory --libdir=lib -Dmaintainer-mode=true your_builddir .
If the tarball was made with Meson:
$ meson --prefix=/some_directory --libdir=lib your_builddir .
Then
$ cd your_builddir
$ ninja
$ ninja install
You can run the tests like so:
$ ninja test
### Building from a tarball with Autotools
If the tarball was made with Autotools:
$ ./configure --prefix=/some_directory
If the tarball was made with Meson, you must enable maintainer-mode:
$ ./autogen.sh --prefix=/some_directory
Then
$ make
$ make install
You can build the examples and tests, and run the tests, like so:
$ make check
## Building from git
Building from git can be difficult so you should prefer building from
a release tarball unless you need to work on the libsigc++ code itself.
jhbuild can be a good help
https://gitlab.gnome.org/GNOME/jhbuild
https://wiki.gnome.org/Projects/Jhbuild
### Building from git with Meson
Maintainer-mode is enabled by default when you build from a git clone.
Don't call the builddir 'build'. There is a directory called 'build' with
files used by Autotools.
$ meson --prefix=/some_directory --libdir=lib your_builddir .
$ cd your_builddir
$ ninja
$ ninja install
You can run the tests like so:
$ ninja test
You can create a tarball like so:
$ ninja dist
### Building from git with Autotools
$ ./autogen.sh --prefix=/some_directory
$ make
$ make install
You can build the examples and tests, and run the tests, like so:
$ make check
You can create a tarball like so:
$ make distcheck
or
$ make dist

2841
aclocal.m4 vendored Normal file

File diff suppressed because it is too large Load Diff

7
autogen.sh Executable file
View File

@ -0,0 +1,7 @@
#! /bin/sh -e
test -n "$srcdir" || srcdir=`dirname "$0"`
test -n "$srcdir" || srcdir=.
mm-common-prepare --copy --force "$srcdir"
autoreconf --force --install --verbose --warnings=all "$srcdir"
test -n "$NOCONFIGURE" || "$srcdir/configure" --enable-maintainer-mode "$@"

285
build/ax_boost_base.m4 Normal file
View File

@ -0,0 +1,285 @@
# ===========================================================================
# http://www.gnu.org/software/autoconf-archive/ax_boost_base.html
# ===========================================================================
#
# SYNOPSIS
#
# AX_BOOST_BASE([MINIMUM-VERSION], [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])
#
# DESCRIPTION
#
# Test for the Boost C++ libraries of a particular version (or newer)
#
# If no path to the installed boost library is given the macro searchs
# under /usr, /usr/local, /opt and /opt/local and evaluates the
# $BOOST_ROOT environment variable. Further documentation is available at
# <http://randspringer.de/boost/index.html>.
#
# This macro calls:
#
# AC_SUBST(BOOST_CPPFLAGS) / AC_SUBST(BOOST_LDFLAGS)
#
# And sets:
#
# HAVE_BOOST
#
# LICENSE
#
# Copyright (c) 2008 Thomas Porschberg <thomas@randspringer.de>
# Copyright (c) 2009 Peter Adolphs
#
# Copying and distribution of this file, with or without modification, are
# permitted in any medium without royalty provided the copyright notice
# and this notice are preserved. This file is offered as-is, without any
# warranty.
#serial 26
AC_DEFUN([AX_BOOST_BASE],
[
AC_ARG_WITH([boost],
[AS_HELP_STRING([--with-boost@<:@=ARG@:>@],
[use Boost library from a standard location (ARG=yes),
from the specified location (ARG=<path>),
or disable it (ARG=no)
@<:@ARG=yes@:>@ ])],
[
if test "$withval" = "no"; then
want_boost="no"
elif test "$withval" = "yes"; then
want_boost="yes"
ac_boost_path=""
else
want_boost="yes"
ac_boost_path="$withval"
fi
],
[want_boost="yes"])
AC_ARG_WITH([boost-libdir],
AS_HELP_STRING([--with-boost-libdir=LIB_DIR],
[Force given directory for boost libraries. Note that this will override library path detection, so use this parameter only if default library detection fails and you know exactly where your boost libraries are located.]),
[
if test -d "$withval"
then
ac_boost_lib_path="$withval"
else
AC_MSG_ERROR(--with-boost-libdir expected directory name)
fi
],
[ac_boost_lib_path=""]
)
if test "x$want_boost" = "xyes"; then
boost_lib_version_req=ifelse([$1], ,1.20.0,$1)
boost_lib_version_req_shorten=`expr $boost_lib_version_req : '\([[0-9]]*\.[[0-9]]*\)'`
boost_lib_version_req_major=`expr $boost_lib_version_req : '\([[0-9]]*\)'`
boost_lib_version_req_minor=`expr $boost_lib_version_req : '[[0-9]]*\.\([[0-9]]*\)'`
boost_lib_version_req_sub_minor=`expr $boost_lib_version_req : '[[0-9]]*\.[[0-9]]*\.\([[0-9]]*\)'`
if test "x$boost_lib_version_req_sub_minor" = "x" ; then
boost_lib_version_req_sub_minor="0"
fi
WANT_BOOST_VERSION=`expr $boost_lib_version_req_major \* 100000 \+ $boost_lib_version_req_minor \* 100 \+ $boost_lib_version_req_sub_minor`
AC_MSG_CHECKING(for boostlib >= $boost_lib_version_req)
succeeded=no
dnl On 64-bit systems check for system libraries in both lib64 and lib.
dnl The former is specified by FHS, but e.g. Debian does not adhere to
dnl this (as it rises problems for generic multi-arch support).
dnl The last entry in the list is chosen by default when no libraries
dnl are found, e.g. when only header-only libraries are installed!
libsubdirs="lib"
ax_arch=`uname -m`
case $ax_arch in
x86_64)
libsubdirs="lib64 libx32 lib lib64"
;;
ppc64|s390x|sparc64|aarch64|ppc64le)
libsubdirs="lib64 lib lib64 ppc64le"
;;
esac
dnl allow for real multi-arch paths e.g. /usr/lib/x86_64-linux-gnu. Give
dnl them priority over the other paths since, if libs are found there, they
dnl are almost assuredly the ones desired.
AC_REQUIRE([AC_CANONICAL_HOST])
libsubdirs="lib/${host_cpu}-${host_os} $libsubdirs"
case ${host_cpu} in
i?86)
libsubdirs="lib/i386-${host_os} $libsubdirs"
;;
esac
dnl first we check the system location for boost libraries
dnl this location ist chosen if boost libraries are installed with the --layout=system option
dnl or if you install boost with RPM
if test "$ac_boost_path" != ""; then
BOOST_CPPFLAGS="-I$ac_boost_path/include"
for ac_boost_path_tmp in $libsubdirs; do
if test -d "$ac_boost_path"/"$ac_boost_path_tmp" ; then
BOOST_LDFLAGS="-L$ac_boost_path/$ac_boost_path_tmp"
break
fi
done
elif test "$cross_compiling" != yes; then
for ac_boost_path_tmp in /usr /usr/local /opt /opt/local ; do
if test -d "$ac_boost_path_tmp/include/boost" && test -r "$ac_boost_path_tmp/include/boost"; then
for libsubdir in $libsubdirs ; do
if ls "$ac_boost_path_tmp/$libsubdir/libboost_"* >/dev/null 2>&1 ; then break; fi
done
BOOST_LDFLAGS="-L$ac_boost_path_tmp/$libsubdir"
BOOST_CPPFLAGS="-I$ac_boost_path_tmp/include"
break;
fi
done
fi
dnl overwrite ld flags if we have required special directory with
dnl --with-boost-libdir parameter
if test "$ac_boost_lib_path" != ""; then
BOOST_LDFLAGS="-L$ac_boost_lib_path"
fi
CPPFLAGS_SAVED="$CPPFLAGS"
CPPFLAGS="$CPPFLAGS $BOOST_CPPFLAGS"
export CPPFLAGS
LDFLAGS_SAVED="$LDFLAGS"
LDFLAGS="$LDFLAGS $BOOST_LDFLAGS"
export LDFLAGS
AC_REQUIRE([AC_PROG_CXX])
AC_LANG_PUSH(C++)
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
@%:@include <boost/version.hpp>
]], [[
#if BOOST_VERSION >= $WANT_BOOST_VERSION
// Everything is okay
#else
# error Boost version is too old
#endif
]])],[
AC_MSG_RESULT(yes)
succeeded=yes
found_system=yes
],[
])
AC_LANG_POP([C++])
dnl if we found no boost with system layout we search for boost libraries
dnl built and installed without the --layout=system option or for a staged(not installed) version
if test "x$succeeded" != "xyes"; then
CPPFLAGS="$CPPFLAGS_SAVED"
LDFLAGS="$LDFLAGS_SAVED"
BOOST_CPPFLAGS=
BOOST_LDFLAGS=
_version=0
if test "$ac_boost_path" != ""; then
if test -d "$ac_boost_path" && test -r "$ac_boost_path"; then
for i in `ls -d $ac_boost_path/include/boost-* 2>/dev/null`; do
_version_tmp=`echo $i | sed "s#$ac_boost_path##" | sed 's/\/include\/boost-//' | sed 's/_/./'`
V_CHECK=`expr $_version_tmp \> $_version`
if test "$V_CHECK" = "1" ; then
_version=$_version_tmp
fi
VERSION_UNDERSCORE=`echo $_version | sed 's/\./_/'`
BOOST_CPPFLAGS="-I$ac_boost_path/include/boost-$VERSION_UNDERSCORE"
done
dnl if nothing found search for layout used in Windows distributions
if test -z "$BOOST_CPPFLAGS"; then
if test -d "$ac_boost_path/boost" && test -r "$ac_boost_path/boost"; then
BOOST_CPPFLAGS="-I$ac_boost_path"
fi
fi
fi
else
if test "$cross_compiling" != yes; then
for ac_boost_path in /usr /usr/local /opt /opt/local ; do
if test -d "$ac_boost_path" && test -r "$ac_boost_path"; then
for i in `ls -d $ac_boost_path/include/boost-* 2>/dev/null`; do
_version_tmp=`echo $i | sed "s#$ac_boost_path##" | sed 's/\/include\/boost-//' | sed 's/_/./'`
V_CHECK=`expr $_version_tmp \> $_version`
if test "$V_CHECK" = "1" ; then
_version=$_version_tmp
best_path=$ac_boost_path
fi
done
fi
done
VERSION_UNDERSCORE=`echo $_version | sed 's/\./_/'`
BOOST_CPPFLAGS="-I$best_path/include/boost-$VERSION_UNDERSCORE"
if test "$ac_boost_lib_path" = ""; then
for libsubdir in $libsubdirs ; do
if ls "$best_path/$libsubdir/libboost_"* >/dev/null 2>&1 ; then break; fi
done
BOOST_LDFLAGS="-L$best_path/$libsubdir"
fi
fi
if test "x$BOOST_ROOT" != "x"; then
for libsubdir in $libsubdirs ; do
if ls "$BOOST_ROOT/stage/$libsubdir/libboost_"* >/dev/null 2>&1 ; then break; fi
done
if test -d "$BOOST_ROOT" && test -r "$BOOST_ROOT" && test -d "$BOOST_ROOT/stage/$libsubdir" && test -r "$BOOST_ROOT/stage/$libsubdir"; then
version_dir=`expr //$BOOST_ROOT : '.*/\(.*\)'`
stage_version=`echo $version_dir | sed 's/boost_//' | sed 's/_/./g'`
stage_version_shorten=`expr $stage_version : '\([[0-9]]*\.[[0-9]]*\)'`
V_CHECK=`expr $stage_version_shorten \>\= $_version`
if test "$V_CHECK" = "1" -a "$ac_boost_lib_path" = "" ; then
AC_MSG_NOTICE(We will use a staged boost library from $BOOST_ROOT)
BOOST_CPPFLAGS="-I$BOOST_ROOT"
BOOST_LDFLAGS="-L$BOOST_ROOT/stage/$libsubdir"
fi
fi
fi
fi
CPPFLAGS="$CPPFLAGS $BOOST_CPPFLAGS"
export CPPFLAGS
LDFLAGS="$LDFLAGS $BOOST_LDFLAGS"
export LDFLAGS
AC_LANG_PUSH(C++)
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
@%:@include <boost/version.hpp>
]], [[
#if BOOST_VERSION >= $WANT_BOOST_VERSION
// Everything is okay
#else
# error Boost version is too old
#endif
]])],[
AC_MSG_RESULT(yes)
succeeded=yes
found_system=yes
],[
])
AC_LANG_POP([C++])
fi
if test "$succeeded" != "yes" ; then
if test "$_version" = "0" ; then
AC_MSG_NOTICE([[We could not detect the boost libraries (version $boost_lib_version_req_shorten or higher). If you have a staged boost library (still not installed) please specify \$BOOST_ROOT in your environment and do not give a PATH to --with-boost option. If you are sure you have boost installed, then check your version number looking in <boost/version.hpp>. See http://randspringer.de/boost for more documentation.]])
else
AC_MSG_NOTICE([Your boost libraries seems to old (version $_version).])
fi
# execute ACTION-IF-NOT-FOUND (if present):
ifelse([$3], , :, [$3])
else
AC_SUBST(BOOST_CPPFLAGS)
AC_SUBST(BOOST_LDFLAGS)
AC_DEFINE(HAVE_BOOST,,[define if the Boost library is available])
# execute ACTION-IF-FOUND (if present):
ifelse([$2], , :, [$2])
fi
CPPFLAGS="$CPPFLAGS_SAVED"
LDFLAGS="$LDFLAGS_SAVED"
fi
])

121
build/ax_boost_system.m4 Normal file
View File

@ -0,0 +1,121 @@
# ===========================================================================
# http://www.gnu.org/software/autoconf-archive/ax_boost_system.html
# ===========================================================================
#
# SYNOPSIS
#
# AX_BOOST_SYSTEM
#
# DESCRIPTION
#
# Test for System library from the Boost C++ libraries. The macro requires
# a preceding call to AX_BOOST_BASE. Further documentation is available at
# <http://randspringer.de/boost/index.html>.
#
# This macro calls:
#
# AC_SUBST(BOOST_SYSTEM_LIB)
#
# And sets:
#
# HAVE_BOOST_SYSTEM
#
# LICENSE
#
# Copyright (c) 2008 Thomas Porschberg <thomas@randspringer.de>
# Copyright (c) 2008 Michael Tindal
# Copyright (c) 2008 Daniel Casimiro <dan.casimiro@gmail.com>
#
# Copying and distribution of this file, with or without modification, are
# permitted in any medium without royalty provided the copyright notice
# and this notice are preserved. This file is offered as-is, without any
# warranty.
#serial 17
AC_DEFUN([AX_BOOST_SYSTEM],
[
AC_ARG_WITH([boost-system],
AS_HELP_STRING([--with-boost-system@<:@=special-lib@:>@],
[use the System library from boost - it is possible to specify a certain library for the linker
e.g. --with-boost-system=boost_system-gcc-mt ]),
[
if test "$withval" = "no"; then
want_boost="no"
elif test "$withval" = "yes"; then
want_boost="yes"
ax_boost_user_system_lib=""
else
want_boost="yes"
ax_boost_user_system_lib="$withval"
fi
],
[want_boost="yes"]
)
if test "x$want_boost" = "xyes"; then
AC_REQUIRE([AC_PROG_CC])
AC_REQUIRE([AC_CANONICAL_BUILD])
CPPFLAGS_SAVED="$CPPFLAGS"
CPPFLAGS="$CPPFLAGS $BOOST_CPPFLAGS"
export CPPFLAGS
LDFLAGS_SAVED="$LDFLAGS"
LDFLAGS="$LDFLAGS $BOOST_LDFLAGS"
export LDFLAGS
AC_CACHE_CHECK(whether the Boost::System library is available,
ax_cv_boost_system,
[AC_LANG_PUSH([C++])
CXXFLAGS_SAVE=$CXXFLAGS
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[@%:@include <boost/system/error_code.hpp>]],
[[boost::system::system_category]])],
ax_cv_boost_system=yes, ax_cv_boost_system=no)
CXXFLAGS=$CXXFLAGS_SAVE
AC_LANG_POP([C++])
])
if test "x$ax_cv_boost_system" = "xyes"; then
AC_SUBST(BOOST_CPPFLAGS)
AC_DEFINE(HAVE_BOOST_SYSTEM,,[define if the Boost::System library is available])
BOOSTLIBDIR=`echo $BOOST_LDFLAGS | sed -e 's/@<:@^\/@:>@*//'`
LDFLAGS_SAVE=$LDFLAGS
if test "x$ax_boost_user_system_lib" = "x"; then
for libextension in `ls -r $BOOSTLIBDIR/libboost_system* 2>/dev/null | sed 's,.*/lib,,' | sed 's,\..*,,'` ; do
ax_lib=${libextension}
AC_CHECK_LIB($ax_lib, exit,
[BOOST_SYSTEM_LIB="-l$ax_lib"; AC_SUBST(BOOST_SYSTEM_LIB) link_system="yes"; break],
[link_system="no"])
done
if test "x$link_system" != "xyes"; then
for libextension in `ls -r $BOOSTLIBDIR/boost_system* 2>/dev/null | sed 's,.*/,,' | sed -e 's,\..*,,'` ; do
ax_lib=${libextension}
AC_CHECK_LIB($ax_lib, exit,
[BOOST_SYSTEM_LIB="-l$ax_lib"; AC_SUBST(BOOST_SYSTEM_LIB) link_system="yes"; break],
[link_system="no"])
done
fi
else
for ax_lib in $ax_boost_user_system_lib boost_system-$ax_boost_user_system_lib; do
AC_CHECK_LIB($ax_lib, exit,
[BOOST_SYSTEM_LIB="-l$ax_lib"; AC_SUBST(BOOST_SYSTEM_LIB) link_system="yes"; break],
[link_system="no"])
done
fi
if test "x$ax_lib" = "x"; then
AC_MSG_ERROR(Could not find a version of the library!)
fi
if test "x$link_system" = "xno"; then
AC_MSG_ERROR(Could not link against $ax_lib !)
fi
fi
CPPFLAGS="$CPPFLAGS_SAVED"
LDFLAGS="$LDFLAGS_SAVED"
fi
])

119
build/ax_boost_timer.m4 Normal file
View File

@ -0,0 +1,119 @@
# ===========================================================================
# http://www.gnu.org/software/autoconf-archive/ax_boost_timer.html
# ===========================================================================
#
# SYNOPSIS
#
# AX_BOOST_TIMER
#
# DESCRIPTION
#
# Test for System library from the Boost C++ libraries. The macro requires
# a preceding call to AX_BOOST_BASE. Further documentation is available at
# <http://randspringer.de/boost/index.html>.
#
# This macro calls:
#
# AC_SUBST(BOOST_TIMER_LIB)
#
# And sets:
#
# HAVE_BOOST_TIMER
#
# LICENSE
#
# Copyright (c) 2012 Xiyue Deng <manphiz@gmail.com>
# Copyright (c) 2012 Murray Cumming <murrayc@openismus.com>
#
# Copying and distribution of this file, with or without modification, are
# permitted in any medium without royalty provided the copyright notice
# and this notice are preserved. This file is offered as-is, without any
# warranty.
#serial 2 (based on serial 1 of ax_boost_locale.m4 with some simple find/replace by Murray Cumming)
AC_DEFUN([AX_BOOST_TIMER],
[
AC_ARG_WITH([boost-timer],
AS_HELP_STRING([--with-boost-timer@<:@=special-lib@:>@],
[use the Timer library from boost - it is possible to specify a certain library for the linker
e.g. --with-boost-timer=boost_timer-gcc-mt ]),
[
if test "$withval" = "no"; then
want_boost="no"
elif test "$withval" = "yes"; then
want_boost="yes"
ax_boost_user_timer_lib=""
else
want_boost="yes"
ax_boost_user_timer_lib="$withval"
fi
],
[want_boost="yes"]
)
if test "x$want_boost" = "xyes"; then
AC_REQUIRE([AC_PROG_CC])
AC_REQUIRE([AC_CANONICAL_BUILD])
CPPFLAGS_SAVED="$CPPFLAGS"
CPPFLAGS="$CPPFLAGS $BOOST_CPPFLAGS"
export CPPFLAGS
LDFLAGS_SAVED="$LDFLAGS"
LDFLAGS="$LDFLAGS $BOOST_LDFLAGS"
export LDFLAGS
AC_CACHE_CHECK(whether the Boost::Timer library is available,
ax_cv_boost_timer,
[AC_LANG_PUSH([C++])
CXXFLAGS_SAVE=$CXXFLAGS
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[@%:@include <boost/timer/timer.hpp>]],
[[boost::timer::cpu_timer().stop();]])],
ax_cv_boost_timer=yes, ax_cv_boost_timer=no)
CXXFLAGS=$CXXFLAGS_SAVE
AC_LANG_POP([C++])
])
if test "x$ax_cv_boost_timer" = "xyes"; then
AC_SUBST(BOOST_CPPFLAGS)
AC_DEFINE(HAVE_BOOST_TIMER,,[define if the Boost::Timer library is available])
BOOSTLIBDIR=`echo $BOOST_LDFLAGS | sed -e 's/@<:@^\/@:>@*//'`
LDFLAGS_SAVE=$LDFLAGS
if test "x$ax_boost_user_timer_lib" = "x"; then
for libextension in `ls $BOOSTLIBDIR/libboost_timer*.so* $BOOSTLIBDIR/libboost_timer*.dylib* $BOOSTLIBDIR/libboost_timer*.a* 2>/dev/null | sed 's,.*/,,' | sed -e 's;^lib\(boost_timer.*\)\.so.*$;\1;' -e 's;^lib\(boost_timer.*\)\.dylib.*$;\1;' -e 's;^lib\(boost_timer.*\)\.a.*$;\1;'` ; do
ax_lib=${libextension}
AC_CHECK_LIB($ax_lib, exit,
[BOOST_TIMER_LIB="-l$ax_lib"; AC_SUBST(BOOST_TIMER_LIB) link_timer="yes"; break],
[link_timer="no"])
done
if test "x$link_timer" != "xyes"; then
for libextension in `ls $BOOSTLIBDIR/boost_timer*.dll* $BOOSTLIBDIR/boost_timer*.a* 2>/dev/null | sed 's,.*/,,' | sed -e 's;^\(boost_timer.*\)\.dll.*$;\1;' -e 's;^\(boost_timer.*\)\.a.*$;\1;'` ; do
ax_lib=${libextension}
AC_CHECK_LIB($ax_lib, exit,
[BOOST_TIMER_LIB="-l$ax_lib"; AC_SUBST(BOOST_TIMER_LIB) link_timer="yes"; break],
[link_timer="no"])
done
fi
else
for ax_lib in $ax_boost_user_timer_lib boost_timer-$ax_boost_user_timer_lib; do
AC_CHECK_LIB($ax_lib, exit,
[BOOST_TIMER_LIB="-l$ax_lib"; AC_SUBST(BOOST_TIMER_LIB) link_timer="yes"; break],
[link_timer="no"])
done
fi
if test "x$ax_lib" = "x"; then
AC_MSG_ERROR(Could not find a version of the library!)
fi
if test "x$link_timer" = "xno"; then
AC_MSG_ERROR(Could not link against $ax_lib !)
fi
fi
CPPFLAGS="$CPPFLAGS_SAVED"
LDFLAGS="$LDFLAGS_SAVED"
fi
])

348
build/compile Executable file
View File

@ -0,0 +1,348 @@
#! /bin/sh
# Wrapper for compilers which do not understand '-c -o'.
scriptversion=2018-03-07.03; # UTC
# Copyright (C) 1999-2018 Free Software Foundation, Inc.
# Written by Tom Tromey <tromey@cygnus.com>.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <https://www.gnu.org/licenses/>.
# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
# configuration script generated by Autoconf, you may include it under
# the same distribution terms that you use for the rest of that program.
# This file is maintained in Automake, please report
# bugs to <bug-automake@gnu.org> or send patches to
# <automake-patches@gnu.org>.
nl='
'
# We need space, tab and new line, in precisely that order. Quoting is
# there to prevent tools from complaining about whitespace usage.
IFS=" "" $nl"
file_conv=
# func_file_conv build_file lazy
# Convert a $build file to $host form and store it in $file
# Currently only supports Windows hosts. If the determined conversion
# type is listed in (the comma separated) LAZY, no conversion will
# take place.
func_file_conv ()
{
file=$1
case $file in
/ | /[!/]*) # absolute file, and not a UNC file
if test -z "$file_conv"; then
# lazily determine how to convert abs files
case `uname -s` in
MINGW*)
file_conv=mingw
;;
CYGWIN*)
file_conv=cygwin
;;
*)
file_conv=wine
;;
esac
fi
case $file_conv/,$2, in
*,$file_conv,*)
;;
mingw/*)
file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'`
;;
cygwin/*)
file=`cygpath -m "$file" || echo "$file"`
;;
wine/*)
file=`winepath -w "$file" || echo "$file"`
;;
esac
;;
esac
}
# func_cl_dashL linkdir
# Make cl look for libraries in LINKDIR
func_cl_dashL ()
{
func_file_conv "$1"
if test -z "$lib_path"; then
lib_path=$file
else
lib_path="$lib_path;$file"
fi
linker_opts="$linker_opts -LIBPATH:$file"
}
# func_cl_dashl library
# Do a library search-path lookup for cl
func_cl_dashl ()
{
lib=$1
found=no
save_IFS=$IFS
IFS=';'
for dir in $lib_path $LIB
do
IFS=$save_IFS
if $shared && test -f "$dir/$lib.dll.lib"; then
found=yes
lib=$dir/$lib.dll.lib
break
fi
if test -f "$dir/$lib.lib"; then
found=yes
lib=$dir/$lib.lib
break
fi
if test -f "$dir/lib$lib.a"; then
found=yes
lib=$dir/lib$lib.a
break
fi
done
IFS=$save_IFS
if test "$found" != yes; then
lib=$lib.lib
fi
}
# func_cl_wrapper cl arg...
# Adjust compile command to suit cl
func_cl_wrapper ()
{
# Assume a capable shell
lib_path=
shared=:
linker_opts=
for arg
do
if test -n "$eat"; then
eat=
else
case $1 in
-o)
# configure might choose to run compile as 'compile cc -o foo foo.c'.
eat=1
case $2 in
*.o | *.[oO][bB][jJ])
func_file_conv "$2"
set x "$@" -Fo"$file"
shift
;;
*)
func_file_conv "$2"
set x "$@" -Fe"$file"
shift
;;
esac
;;
-I)
eat=1
func_file_conv "$2" mingw
set x "$@" -I"$file"
shift
;;
-I*)
func_file_conv "${1#-I}" mingw
set x "$@" -I"$file"
shift
;;
-l)
eat=1
func_cl_dashl "$2"
set x "$@" "$lib"
shift
;;
-l*)
func_cl_dashl "${1#-l}"
set x "$@" "$lib"
shift
;;
-L)
eat=1
func_cl_dashL "$2"
;;
-L*)
func_cl_dashL "${1#-L}"
;;
-static)
shared=false
;;
-Wl,*)
arg=${1#-Wl,}
save_ifs="$IFS"; IFS=','
for flag in $arg; do
IFS="$save_ifs"
linker_opts="$linker_opts $flag"
done
IFS="$save_ifs"
;;
-Xlinker)
eat=1
linker_opts="$linker_opts $2"
;;
-*)
set x "$@" "$1"
shift
;;
*.cc | *.CC | *.cxx | *.CXX | *.[cC]++)
func_file_conv "$1"
set x "$@" -Tp"$file"
shift
;;
*.c | *.cpp | *.CPP | *.lib | *.LIB | *.Lib | *.OBJ | *.obj | *.[oO])
func_file_conv "$1" mingw
set x "$@" "$file"
shift
;;
*)
set x "$@" "$1"
shift
;;
esac
fi
shift
done
if test -n "$linker_opts"; then
linker_opts="-link$linker_opts"
fi
exec "$@" $linker_opts
exit 1
}
eat=
case $1 in
'')
echo "$0: No command. Try '$0 --help' for more information." 1>&2
exit 1;
;;
-h | --h*)
cat <<\EOF
Usage: compile [--help] [--version] PROGRAM [ARGS]
Wrapper for compilers which do not understand '-c -o'.
Remove '-o dest.o' from ARGS, run PROGRAM with the remaining
arguments, and rename the output as expected.
If you are trying to build a whole package this is not the
right script to run: please start by reading the file 'INSTALL'.
Report bugs to <bug-automake@gnu.org>.
EOF
exit $?
;;
-v | --v*)
echo "compile $scriptversion"
exit $?
;;
cl | *[/\\]cl | cl.exe | *[/\\]cl.exe | \
icl | *[/\\]icl | icl.exe | *[/\\]icl.exe )
func_cl_wrapper "$@" # Doesn't return...
;;
esac
ofile=
cfile=
for arg
do
if test -n "$eat"; then
eat=
else
case $1 in
-o)
# configure might choose to run compile as 'compile cc -o foo foo.c'.
# So we strip '-o arg' only if arg is an object.
eat=1
case $2 in
*.o | *.obj)
ofile=$2
;;
*)
set x "$@" -o "$2"
shift
;;
esac
;;
*.c)
cfile=$1
set x "$@" "$1"
shift
;;
*)
set x "$@" "$1"
shift
;;
esac
fi
shift
done
if test -z "$ofile" || test -z "$cfile"; then
# If no '-o' option was seen then we might have been invoked from a
# pattern rule where we don't need one. That is ok -- this is a
# normal compilation that the losing compiler can handle. If no
# '.c' file was seen then we are probably linking. That is also
# ok.
exec "$@"
fi
# Name of file we expect compiler to create.
cofile=`echo "$cfile" | sed 's|^.*[\\/]||; s|^[a-zA-Z]:||; s/\.c$/.o/'`
# Create the lock directory.
# Note: use '[/\\:.-]' here to ensure that we don't use the same name
# that we are using for the .o file. Also, base the name on the expected
# object file name, since that is what matters with a parallel build.
lockdir=`echo "$cofile" | sed -e 's|[/\\:.-]|_|g'`.d
while true; do
if mkdir "$lockdir" >/dev/null 2>&1; then
break
fi
sleep 1
done
# FIXME: race condition here if user kills between mkdir and trap.
trap "rmdir '$lockdir'; exit 1" 1 2 15
# Run the compile.
"$@"
ret=$?
if test -f "$cofile"; then
test "$cofile" = "$ofile" || mv "$cofile" "$ofile"
elif test -f "${cofile}bj"; then
test "${cofile}bj" = "$ofile" || mv "${cofile}bj" "$ofile"
fi
rmdir "$lockdir"
exit $ret
# Local Variables:
# mode: shell-script
# sh-indentation: 2
# eval: (add-hook 'before-save-hook 'time-stamp)
# time-stamp-start: "scriptversion="
# time-stamp-format: "%:y-%02m-%02d.%02H"
# time-stamp-time-zone: "UTC0"
# time-stamp-end: "; # UTC"
# End:

1480
build/config.guess vendored Executable file

File diff suppressed because it is too large Load Diff

1801
build/config.sub vendored Executable file

File diff suppressed because it is too large Load Diff

145
build/cxx.m4 Normal file
View File

@ -0,0 +1,145 @@
dnl
dnl SIGC_CXX_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD()
dnl
dnl
AC_DEFUN([SIGC_CXX_GCC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD],[
AC_MSG_CHECKING([if C++ compiler supports the use of a particular specialization when calling operator() template methods.])
AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
[[
#include <iostream>
class Thing
{
public:
Thing()
{}
template <class T>
void operator()(T a, T b)
{
T c = a + b;
std::cout << c << std::endl;
}
};
template<class T2>
class OtherThing
{
public:
void do_something()
{
Thing thing_;
thing_.template operator()<T2>(1, 2);
//This fails with or without the template keyword, on SUN Forte C++ 5.3, 5.4, and 5.5:
}
};
]],
[[
OtherThing<int> thing;
thing.do_something();
]])],
[
sigcm_cxx_gcc_template_specialization_operator_overload=yes
AC_DEFINE([SIGC_GCC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD],[1],[does the C++ compiler support the use of a particular specialization when calling operator() template methods.])
],[
sigcm_cxx_gcc_template_specialization_operator_overload=no
])
AC_MSG_RESULT([$sigcm_cxx_gcc_template_specialization_operator_overload])
])
AC_DEFUN([SIGC_CXX_MSVC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD],[
AC_MSG_CHECKING([if C++ compiler supports the use of a particular specialization when calling operator() template methods omitting the template keyword.])
AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
[[
#include <iostream>
class Thing
{
public:
Thing()
{}
template <class T>
void operator()(T a, T b)
{
T c = a + b;
std::cout << c << std::endl;
}
};
template<class T2>
class OtherThing
{
public:
void do_something()
{
Thing thing_;
thing_.operator()<T2>(1, 2);
//This fails with or without the template keyword, on SUN Forte C++ 5.3, 5.4, and 5.5:
}
};
]],
[[
OtherThing<int> thing;
thing.do_something();
]])],
[
sigcm_cxx_msvc_template_specialization_operator_overload=yes
AC_DEFINE([SIGC_MSVC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD],[1],[does the C++ compiler support the use of a particular specialization when calling operator() template methods omitting the template keyword.])
],[
sigcm_cxx_msvc_template_specialization_operator_overload=no
])
AC_MSG_RESULT([$sigcm_cxx_msvc_template_specialization_operator_overload])
])
dnl
dnl SIGC_CXX_PRAGMA_PUSH_POP_MACRO
dnl
dnl TODO: When we can break ABI, delete this. It's used when nil is
dnl temporarily undefined. See comment in functor_trait.h.
dnl
AC_DEFUN([SIGC_CXX_PRAGMA_PUSH_POP_MACRO],[
AC_MSG_CHECKING([if C++ preprocessor supports pragma push_macro() and pop_macro().])
AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
[[
#define BEGIN {
#define END }
#pragma push_macro("BEGIN")
#pragma push_macro("END")
#undef BEGIN
#undef END
// BEGIN and END are not prepreprocessor macros
struct Test1
{
int BEGIN;
double END;
};
#pragma pop_macro("BEGIN")
#pragma pop_macro("END")
// BEGIN and END are prepreprocessor macros
struct Test2
BEGIN
int i;
double d;
END;
void func1(Test1& x);
void func2(Test2& x);
]],
[[
Test1 test1;
Test2 test2;
func1(test1);
func2(test2);
]])],
[
sigcm_cxx_pragma_push_pop_macro=yes
AC_DEFINE([SIGC_PRAGMA_PUSH_POP_MACRO],[1],[does the C++ preprocessor support pragma push_macro() and pop_macro().])
],[
sigcm_cxx_pragma_push_pop_macro=no
])
AC_MSG_RESULT([$sigcm_cxx_pragma_push_pop_macro])
])

25
build/cxx_std.m4 Normal file
View File

@ -0,0 +1,25 @@
## SIGC_CXX_HAS_SUN_REVERSE_ITERATOR()
##
## Check for Sun libCstd style std::reverse_iterator, which demands more than just one template parameter.
## and #define SIGC_HAVE_SUN_REVERSE_ITERATOR if found.
##
AC_DEFUN([SIGC_CXX_HAS_SUN_REVERSE_ITERATOR],
[
AC_CACHE_CHECK(
[for non-standard Sun libCstd reverse_iterator],
[sigc_cv_cxx_has_sun_reverse_iterator],
[
AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
[[
#include <iterator>
]],[[
typedef std::reverse_iterator<char*, std::random_access_iterator_tag, char, char&, char*, int> ReverseIter;
]])],
[sigc_cv_cxx_has_sun_reverse_iterator='yes'],
[sigc_cv_cxx_has_sun_reverse_iterator='no']
)
])
AS_IF([test "x${sigc_cv_cxx_has_sun_reverse_iterator}" = 'xyes'],
[AC_DEFINE([SIGC_HAVE_SUN_REVERSE_ITERATOR], [1], [Define if the non-standard Sun reverse_iterator must be used.])])
])

791
build/depcomp Executable file
View File

@ -0,0 +1,791 @@
#! /bin/sh
# depcomp - compile a program generating dependencies as side-effects
scriptversion=2018-03-07.03; # UTC
# Copyright (C) 1999-2018 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <https://www.gnu.org/licenses/>.
# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
# configuration script generated by Autoconf, you may include it under
# the same distribution terms that you use for the rest of that program.
# Originally written by Alexandre Oliva <oliva@dcc.unicamp.br>.
case $1 in
'')
echo "$0: No command. Try '$0 --help' for more information." 1>&2
exit 1;
;;
-h | --h*)
cat <<\EOF
Usage: depcomp [--help] [--version] PROGRAM [ARGS]
Run PROGRAMS ARGS to compile a file, generating dependencies
as side-effects.
Environment variables:
depmode Dependency tracking mode.
source Source file read by 'PROGRAMS ARGS'.
object Object file output by 'PROGRAMS ARGS'.
DEPDIR directory where to store dependencies.
depfile Dependency file to output.
tmpdepfile Temporary file to use when outputting dependencies.
libtool Whether libtool is used (yes/no).
Report bugs to <bug-automake@gnu.org>.
EOF
exit $?
;;
-v | --v*)
echo "depcomp $scriptversion"
exit $?
;;
esac
# Get the directory component of the given path, and save it in the
# global variables '$dir'. Note that this directory component will
# be either empty or ending with a '/' character. This is deliberate.
set_dir_from ()
{
case $1 in
*/*) dir=`echo "$1" | sed -e 's|/[^/]*$|/|'`;;
*) dir=;;
esac
}
# Get the suffix-stripped basename of the given path, and save it the
# global variable '$base'.
set_base_from ()
{
base=`echo "$1" | sed -e 's|^.*/||' -e 's/\.[^.]*$//'`
}
# If no dependency file was actually created by the compiler invocation,
# we still have to create a dummy depfile, to avoid errors with the
# Makefile "include basename.Plo" scheme.
make_dummy_depfile ()
{
echo "#dummy" > "$depfile"
}
# Factor out some common post-processing of the generated depfile.
# Requires the auxiliary global variable '$tmpdepfile' to be set.
aix_post_process_depfile ()
{
# If the compiler actually managed to produce a dependency file,
# post-process it.
if test -f "$tmpdepfile"; then
# Each line is of the form 'foo.o: dependency.h'.
# Do two passes, one to just change these to
# $object: dependency.h
# and one to simply output
# dependency.h:
# which is needed to avoid the deleted-header problem.
{ sed -e "s,^.*\.[$lower]*:,$object:," < "$tmpdepfile"
sed -e "s,^.*\.[$lower]*:[$tab ]*,," -e 's,$,:,' < "$tmpdepfile"
} > "$depfile"
rm -f "$tmpdepfile"
else
make_dummy_depfile
fi
}
# A tabulation character.
tab=' '
# A newline character.
nl='
'
# Character ranges might be problematic outside the C locale.
# These definitions help.
upper=ABCDEFGHIJKLMNOPQRSTUVWXYZ
lower=abcdefghijklmnopqrstuvwxyz
digits=0123456789
alpha=${upper}${lower}
if test -z "$depmode" || test -z "$source" || test -z "$object"; then
echo "depcomp: Variables source, object and depmode must be set" 1>&2
exit 1
fi
# Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po.
depfile=${depfile-`echo "$object" |
sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`}
tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`}
rm -f "$tmpdepfile"
# Avoid interferences from the environment.
gccflag= dashmflag=
# Some modes work just like other modes, but use different flags. We
# parameterize here, but still list the modes in the big case below,
# to make depend.m4 easier to write. Note that we *cannot* use a case
# here, because this file can only contain one case statement.
if test "$depmode" = hp; then
# HP compiler uses -M and no extra arg.
gccflag=-M
depmode=gcc
fi
if test "$depmode" = dashXmstdout; then
# This is just like dashmstdout with a different argument.
dashmflag=-xM
depmode=dashmstdout
fi
cygpath_u="cygpath -u -f -"
if test "$depmode" = msvcmsys; then
# This is just like msvisualcpp but w/o cygpath translation.
# Just convert the backslash-escaped backslashes to single forward
# slashes to satisfy depend.m4
cygpath_u='sed s,\\\\,/,g'
depmode=msvisualcpp
fi
if test "$depmode" = msvc7msys; then
# This is just like msvc7 but w/o cygpath translation.
# Just convert the backslash-escaped backslashes to single forward
# slashes to satisfy depend.m4
cygpath_u='sed s,\\\\,/,g'
depmode=msvc7
fi
if test "$depmode" = xlc; then
# IBM C/C++ Compilers xlc/xlC can output gcc-like dependency information.
gccflag=-qmakedep=gcc,-MF
depmode=gcc
fi
case "$depmode" in
gcc3)
## gcc 3 implements dependency tracking that does exactly what
## we want. Yay! Note: for some reason libtool 1.4 doesn't like
## it if -MD -MP comes after the -MF stuff. Hmm.
## Unfortunately, FreeBSD c89 acceptance of flags depends upon
## the command line argument order; so add the flags where they
## appear in depend2.am. Note that the slowdown incurred here
## affects only configure: in makefiles, %FASTDEP% shortcuts this.
for arg
do
case $arg in
-c) set fnord "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" "$arg" ;;
*) set fnord "$@" "$arg" ;;
esac
shift # fnord
shift # $arg
done
"$@"
stat=$?
if test $stat -ne 0; then
rm -f "$tmpdepfile"
exit $stat
fi
mv "$tmpdepfile" "$depfile"
;;
gcc)
## Note that this doesn't just cater to obsosete pre-3.x GCC compilers.
## but also to in-use compilers like IMB xlc/xlC and the HP C compiler.
## (see the conditional assignment to $gccflag above).
## There are various ways to get dependency output from gcc. Here's
## why we pick this rather obscure method:
## - Don't want to use -MD because we'd like the dependencies to end
## up in a subdir. Having to rename by hand is ugly.
## (We might end up doing this anyway to support other compilers.)
## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like
## -MM, not -M (despite what the docs say). Also, it might not be
## supported by the other compilers which use the 'gcc' depmode.
## - Using -M directly means running the compiler twice (even worse
## than renaming).
if test -z "$gccflag"; then
gccflag=-MD,
fi
"$@" -Wp,"$gccflag$tmpdepfile"
stat=$?
if test $stat -ne 0; then
rm -f "$tmpdepfile"
exit $stat
fi
rm -f "$depfile"
echo "$object : \\" > "$depfile"
# The second -e expression handles DOS-style file names with drive
# letters.
sed -e 's/^[^:]*: / /' \
-e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile"
## This next piece of magic avoids the "deleted header file" problem.
## The problem is that when a header file which appears in a .P file
## is deleted, the dependency causes make to die (because there is
## typically no way to rebuild the header). We avoid this by adding
## dummy dependencies for each header file. Too bad gcc doesn't do
## this for us directly.
## Some versions of gcc put a space before the ':'. On the theory
## that the space means something, we add a space to the output as
## well. hp depmode also adds that space, but also prefixes the VPATH
## to the object. Take care to not repeat it in the output.
## Some versions of the HPUX 10.20 sed can't process this invocation
## correctly. Breaking it into two sed invocations is a workaround.
tr ' ' "$nl" < "$tmpdepfile" \
| sed -e 's/^\\$//' -e '/^$/d' -e "s|.*$object$||" -e '/:$/d' \
| sed -e 's/$/ :/' >> "$depfile"
rm -f "$tmpdepfile"
;;
hp)
# This case exists only to let depend.m4 do its work. It works by
# looking at the text of this script. This case will never be run,
# since it is checked for above.
exit 1
;;
sgi)
if test "$libtool" = yes; then
"$@" "-Wp,-MDupdate,$tmpdepfile"
else
"$@" -MDupdate "$tmpdepfile"
fi
stat=$?
if test $stat -ne 0; then
rm -f "$tmpdepfile"
exit $stat
fi
rm -f "$depfile"
if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files
echo "$object : \\" > "$depfile"
# Clip off the initial element (the dependent). Don't try to be
# clever and replace this with sed code, as IRIX sed won't handle
# lines with more than a fixed number of characters (4096 in
# IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines;
# the IRIX cc adds comments like '#:fec' to the end of the
# dependency line.
tr ' ' "$nl" < "$tmpdepfile" \
| sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' \
| tr "$nl" ' ' >> "$depfile"
echo >> "$depfile"
# The second pass generates a dummy entry for each header file.
tr ' ' "$nl" < "$tmpdepfile" \
| sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \
>> "$depfile"
else
make_dummy_depfile
fi
rm -f "$tmpdepfile"
;;
xlc)
# This case exists only to let depend.m4 do its work. It works by
# looking at the text of this script. This case will never be run,
# since it is checked for above.
exit 1
;;
aix)
# The C for AIX Compiler uses -M and outputs the dependencies
# in a .u file. In older versions, this file always lives in the
# current directory. Also, the AIX compiler puts '$object:' at the
# start of each line; $object doesn't have directory information.
# Version 6 uses the directory in both cases.
set_dir_from "$object"
set_base_from "$object"
if test "$libtool" = yes; then
tmpdepfile1=$dir$base.u
tmpdepfile2=$base.u
tmpdepfile3=$dir.libs/$base.u
"$@" -Wc,-M
else
tmpdepfile1=$dir$base.u
tmpdepfile2=$dir$base.u
tmpdepfile3=$dir$base.u
"$@" -M
fi
stat=$?
if test $stat -ne 0; then
rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
exit $stat
fi
for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
do
test -f "$tmpdepfile" && break
done
aix_post_process_depfile
;;
tcc)
# tcc (Tiny C Compiler) understand '-MD -MF file' since version 0.9.26
# FIXME: That version still under development at the moment of writing.
# Make that this statement remains true also for stable, released
# versions.
# It will wrap lines (doesn't matter whether long or short) with a
# trailing '\', as in:
#
# foo.o : \
# foo.c \
# foo.h \
#
# It will put a trailing '\' even on the last line, and will use leading
# spaces rather than leading tabs (at least since its commit 0394caf7
# "Emit spaces for -MD").
"$@" -MD -MF "$tmpdepfile"
stat=$?
if test $stat -ne 0; then
rm -f "$tmpdepfile"
exit $stat
fi
rm -f "$depfile"
# Each non-empty line is of the form 'foo.o : \' or ' dep.h \'.
# We have to change lines of the first kind to '$object: \'.
sed -e "s|.*:|$object :|" < "$tmpdepfile" > "$depfile"
# And for each line of the second kind, we have to emit a 'dep.h:'
# dummy dependency, to avoid the deleted-header problem.
sed -n -e 's|^ *\(.*\) *\\$|\1:|p' < "$tmpdepfile" >> "$depfile"
rm -f "$tmpdepfile"
;;
## The order of this option in the case statement is important, since the
## shell code in configure will try each of these formats in the order
## listed in this file. A plain '-MD' option would be understood by many
## compilers, so we must ensure this comes after the gcc and icc options.
pgcc)
# Portland's C compiler understands '-MD'.
# Will always output deps to 'file.d' where file is the root name of the
# source file under compilation, even if file resides in a subdirectory.
# The object file name does not affect the name of the '.d' file.
# pgcc 10.2 will output
# foo.o: sub/foo.c sub/foo.h
# and will wrap long lines using '\' :
# foo.o: sub/foo.c ... \
# sub/foo.h ... \
# ...
set_dir_from "$object"
# Use the source, not the object, to determine the base name, since
# that's sadly what pgcc will do too.
set_base_from "$source"
tmpdepfile=$base.d
# For projects that build the same source file twice into different object
# files, the pgcc approach of using the *source* file root name can cause
# problems in parallel builds. Use a locking strategy to avoid stomping on
# the same $tmpdepfile.
lockdir=$base.d-lock
trap "
echo '$0: caught signal, cleaning up...' >&2
rmdir '$lockdir'
exit 1
" 1 2 13 15
numtries=100
i=$numtries
while test $i -gt 0; do
# mkdir is a portable test-and-set.
if mkdir "$lockdir" 2>/dev/null; then
# This process acquired the lock.
"$@" -MD
stat=$?
# Release the lock.
rmdir "$lockdir"
break
else
# If the lock is being held by a different process, wait
# until the winning process is done or we timeout.
while test -d "$lockdir" && test $i -gt 0; do
sleep 1
i=`expr $i - 1`
done
fi
i=`expr $i - 1`
done
trap - 1 2 13 15
if test $i -le 0; then
echo "$0: failed to acquire lock after $numtries attempts" >&2
echo "$0: check lockdir '$lockdir'" >&2
exit 1
fi
if test $stat -ne 0; then
rm -f "$tmpdepfile"
exit $stat
fi
rm -f "$depfile"
# Each line is of the form `foo.o: dependent.h',
# or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'.
# Do two passes, one to just change these to
# `$object: dependent.h' and one to simply `dependent.h:'.
sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile"
# Some versions of the HPUX 10.20 sed can't process this invocation
# correctly. Breaking it into two sed invocations is a workaround.
sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" \
| sed -e 's/$/ :/' >> "$depfile"
rm -f "$tmpdepfile"
;;
hp2)
# The "hp" stanza above does not work with aCC (C++) and HP's ia64
# compilers, which have integrated preprocessors. The correct option
# to use with these is +Maked; it writes dependencies to a file named
# 'foo.d', which lands next to the object file, wherever that
# happens to be.
# Much of this is similar to the tru64 case; see comments there.
set_dir_from "$object"
set_base_from "$object"
if test "$libtool" = yes; then
tmpdepfile1=$dir$base.d
tmpdepfile2=$dir.libs/$base.d
"$@" -Wc,+Maked
else
tmpdepfile1=$dir$base.d
tmpdepfile2=$dir$base.d
"$@" +Maked
fi
stat=$?
if test $stat -ne 0; then
rm -f "$tmpdepfile1" "$tmpdepfile2"
exit $stat
fi
for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2"
do
test -f "$tmpdepfile" && break
done
if test -f "$tmpdepfile"; then
sed -e "s,^.*\.[$lower]*:,$object:," "$tmpdepfile" > "$depfile"
# Add 'dependent.h:' lines.
sed -ne '2,${
s/^ *//
s/ \\*$//
s/$/:/
p
}' "$tmpdepfile" >> "$depfile"
else
make_dummy_depfile
fi
rm -f "$tmpdepfile" "$tmpdepfile2"
;;
tru64)
# The Tru64 compiler uses -MD to generate dependencies as a side
# effect. 'cc -MD -o foo.o ...' puts the dependencies into 'foo.o.d'.
# At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put
# dependencies in 'foo.d' instead, so we check for that too.
# Subdirectories are respected.
set_dir_from "$object"
set_base_from "$object"
if test "$libtool" = yes; then
# Libtool generates 2 separate objects for the 2 libraries. These
# two compilations output dependencies in $dir.libs/$base.o.d and
# in $dir$base.o.d. We have to check for both files, because
# one of the two compilations can be disabled. We should prefer
# $dir$base.o.d over $dir.libs/$base.o.d because the latter is
# automatically cleaned when .libs/ is deleted, while ignoring
# the former would cause a distcleancheck panic.
tmpdepfile1=$dir$base.o.d # libtool 1.5
tmpdepfile2=$dir.libs/$base.o.d # Likewise.
tmpdepfile3=$dir.libs/$base.d # Compaq CCC V6.2-504
"$@" -Wc,-MD
else
tmpdepfile1=$dir$base.d
tmpdepfile2=$dir$base.d
tmpdepfile3=$dir$base.d
"$@" -MD
fi
stat=$?
if test $stat -ne 0; then
rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
exit $stat
fi
for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
do
test -f "$tmpdepfile" && break
done
# Same post-processing that is required for AIX mode.
aix_post_process_depfile
;;
msvc7)
if test "$libtool" = yes; then
showIncludes=-Wc,-showIncludes
else
showIncludes=-showIncludes
fi
"$@" $showIncludes > "$tmpdepfile"
stat=$?
grep -v '^Note: including file: ' "$tmpdepfile"
if test $stat -ne 0; then
rm -f "$tmpdepfile"
exit $stat
fi
rm -f "$depfile"
echo "$object : \\" > "$depfile"
# The first sed program below extracts the file names and escapes
# backslashes for cygpath. The second sed program outputs the file
# name when reading, but also accumulates all include files in the
# hold buffer in order to output them again at the end. This only
# works with sed implementations that can handle large buffers.
sed < "$tmpdepfile" -n '
/^Note: including file: *\(.*\)/ {
s//\1/
s/\\/\\\\/g
p
}' | $cygpath_u | sort -u | sed -n '
s/ /\\ /g
s/\(.*\)/'"$tab"'\1 \\/p
s/.\(.*\) \\/\1:/
H
$ {
s/.*/'"$tab"'/
G
p
}' >> "$depfile"
echo >> "$depfile" # make sure the fragment doesn't end with a backslash
rm -f "$tmpdepfile"
;;
msvc7msys)
# This case exists only to let depend.m4 do its work. It works by
# looking at the text of this script. This case will never be run,
# since it is checked for above.
exit 1
;;
#nosideeffect)
# This comment above is used by automake to tell side-effect
# dependency tracking mechanisms from slower ones.
dashmstdout)
# Important note: in order to support this mode, a compiler *must*
# always write the preprocessed file to stdout, regardless of -o.
"$@" || exit $?
# Remove the call to Libtool.
if test "$libtool" = yes; then
while test "X$1" != 'X--mode=compile'; do
shift
done
shift
fi
# Remove '-o $object'.
IFS=" "
for arg
do
case $arg in
-o)
shift
;;
$object)
shift
;;
*)
set fnord "$@" "$arg"
shift # fnord
shift # $arg
;;
esac
done
test -z "$dashmflag" && dashmflag=-M
# Require at least two characters before searching for ':'
# in the target name. This is to cope with DOS-style filenames:
# a dependency such as 'c:/foo/bar' could be seen as target 'c' otherwise.
"$@" $dashmflag |
sed "s|^[$tab ]*[^:$tab ][^:][^:]*:[$tab ]*|$object: |" > "$tmpdepfile"
rm -f "$depfile"
cat < "$tmpdepfile" > "$depfile"
# Some versions of the HPUX 10.20 sed can't process this sed invocation
# correctly. Breaking it into two sed invocations is a workaround.
tr ' ' "$nl" < "$tmpdepfile" \
| sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' \
| sed -e 's/$/ :/' >> "$depfile"
rm -f "$tmpdepfile"
;;
dashXmstdout)
# This case only exists to satisfy depend.m4. It is never actually
# run, as this mode is specially recognized in the preamble.
exit 1
;;
makedepend)
"$@" || exit $?
# Remove any Libtool call
if test "$libtool" = yes; then
while test "X$1" != 'X--mode=compile'; do
shift
done
shift
fi
# X makedepend
shift
cleared=no eat=no
for arg
do
case $cleared in
no)
set ""; shift
cleared=yes ;;
esac
if test $eat = yes; then
eat=no
continue
fi
case "$arg" in
-D*|-I*)
set fnord "$@" "$arg"; shift ;;
# Strip any option that makedepend may not understand. Remove
# the object too, otherwise makedepend will parse it as a source file.
-arch)
eat=yes ;;
-*|$object)
;;
*)
set fnord "$@" "$arg"; shift ;;
esac
done
obj_suffix=`echo "$object" | sed 's/^.*\././'`
touch "$tmpdepfile"
${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@"
rm -f "$depfile"
# makedepend may prepend the VPATH from the source file name to the object.
# No need to regex-escape $object, excess matching of '.' is harmless.
sed "s|^.*\($object *:\)|\1|" "$tmpdepfile" > "$depfile"
# Some versions of the HPUX 10.20 sed can't process the last invocation
# correctly. Breaking it into two sed invocations is a workaround.
sed '1,2d' "$tmpdepfile" \
| tr ' ' "$nl" \
| sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' \
| sed -e 's/$/ :/' >> "$depfile"
rm -f "$tmpdepfile" "$tmpdepfile".bak
;;
cpp)
# Important note: in order to support this mode, a compiler *must*
# always write the preprocessed file to stdout.
"$@" || exit $?
# Remove the call to Libtool.
if test "$libtool" = yes; then
while test "X$1" != 'X--mode=compile'; do
shift
done
shift
fi
# Remove '-o $object'.
IFS=" "
for arg
do
case $arg in
-o)
shift
;;
$object)
shift
;;
*)
set fnord "$@" "$arg"
shift # fnord
shift # $arg
;;
esac
done
"$@" -E \
| sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \
-e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \
| sed '$ s: \\$::' > "$tmpdepfile"
rm -f "$depfile"
echo "$object : \\" > "$depfile"
cat < "$tmpdepfile" >> "$depfile"
sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile"
rm -f "$tmpdepfile"
;;
msvisualcpp)
# Important note: in order to support this mode, a compiler *must*
# always write the preprocessed file to stdout.
"$@" || exit $?
# Remove the call to Libtool.
if test "$libtool" = yes; then
while test "X$1" != 'X--mode=compile'; do
shift
done
shift
fi
IFS=" "
for arg
do
case "$arg" in
-o)
shift
;;
$object)
shift
;;
"-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI")
set fnord "$@"
shift
shift
;;
*)
set fnord "$@" "$arg"
shift
shift
;;
esac
done
"$@" -E 2>/dev/null |
sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::\1:p' | $cygpath_u | sort -u > "$tmpdepfile"
rm -f "$depfile"
echo "$object : \\" > "$depfile"
sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::'"$tab"'\1 \\:p' >> "$depfile"
echo "$tab" >> "$depfile"
sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::\1\::p' >> "$depfile"
rm -f "$tmpdepfile"
;;
msvcmsys)
# This case exists only to let depend.m4 do its work. It works by
# looking at the text of this script. This case will never be run,
# since it is checked for above.
exit 1
;;
none)
exec "$@"
;;
*)
echo "Unknown depmode $depmode" 1>&2
exit 1
;;
esac
exit 0
# Local Variables:
# mode: shell-script
# sh-indentation: 2
# eval: (add-hook 'before-save-hook 'time-stamp)
# time-stamp-start: "scriptversion="
# time-stamp-format: "%:y-%02m-%02d.%02H"
# time-stamp-time-zone: "UTC0"
# time-stamp-end: "; # UTC"
# End:

34
build/dist-changelog.am Normal file
View File

@ -0,0 +1,34 @@
## Copyright (c) 2009 Daniel Elstner <daniel.kitta@gmail.com>
##
## This file is part of mm-common.
##
## mm-common is free software: you can redistribute it and/or modify
## it under the terms of the GNU General Public License as published
## by the Free Software Foundation, either version 2 of the License,
## or (at your option) any later version.
##
## mm-common is distributed in the hope that it will be useful,
## but WITHOUT ANY WARRANTY; without even the implied warranty of
## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
## GNU General Public License for more details.
##
## You should have received a copy of the GNU General Public License
## along with mm-common. If not, see <http://www.gnu.org/licenses/>.
if MAINTAINER_MODE
dist-hook: dist-changelog
else
dist-hook:
endif
.PHONY: dist-changelog
dist-changelog:
$(AM_V_at)if git --git-dir=$(top_srcdir)/.git --work-tree=$(top_srcdir) \
log --no-merges --date=short --pretty='tformat:%cd %an <%ae>%n%n%s%n%n%b' | \
$(SED) -e '/^[12]...-[01].-[0123]. [^<>]* <[^<>]*>$$/,/^$$/ b' \
-e '/[^ ]/,/^[ ]*$$/ !d' \
-e 's/^[ ]*/ /' \
-e 's/^[ ]*$$//' >.ChangeLog.tmp; \
then mv -f .ChangeLog.tmp "$(top_distdir)/ChangeLog"; \
else rm -f .ChangeLog.tmp; exit 1; fi

208
build/doc-reference.am Normal file
View File

@ -0,0 +1,208 @@
## Copyright (c) 2009, 2011 Openismus GmbH <http://www.openismus.com/>
##
## This file is part of mm-common.
##
## mm-common is free software: you can redistribute it and/or modify
## it under the terms of the GNU General Public License as published
## by the Free Software Foundation, either version 2 of the License,
## or (at your option) any later version.
##
## mm-common is distributed in the hope that it will be useful,
## but WITHOUT ANY WARRANTY; without even the implied warranty of
## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
## GNU General Public License for more details.
##
## You should have received a copy of the GNU General Public License
## along with mm-common. If not, see <http://www.gnu.org/licenses/>.
## Parameters: book_name
## Overrides: doc_outdir, doc_config, book_title, htmlref_patterns,
## doc_postprocess, doc_install, tagfile_to_devhelp2,
## doxytagfile, devhelpfile
## Files: doc_input
## Output: dist_noinst_DATA, DISTCLEANFILES, MAINTAINERCLEANFILES
# The name of the sub-directory where the generated documentation
# will be placed.
doc_outdir ?= reference
# The name of the Doxygen configuration file.
doc_config ?= $(doc_outdir)/Doxyfile
# The title of the generated Devhelp book.
book_title ?= $(PACKAGE_NAME) Reference Manual
# A list of wildcard patterns matching the files from the HTML directory
# generated by Doxygen which should be distributed and installed.
htmlref_patterns ?= $(addprefix $(doc_outdir)/html/*.,css gif html js png)
# Locations of utilities shipped with glibmm. Made overridable
# in case the installed utilities cannot be used for some reason.
doc_postprocess ?= $(PERL) -- "$(MMDOCTOOLDIR)/doc-postprocess.pl"
doc_install ?= $(PERL) -- "$(MMDOCTOOLDIR)/doc-install.pl"
tagfile_to_devhelp2 ?= "$(MMDOCTOOLDIR)/tagfile-to-devhelp2.xsl"
# Names of the main output files.
doxytagfile ?= $(doc_outdir)/$(book_name).tag
devhelpfile ?= $(doc_outdir)/$(book_name).devhelp2
# Function: $(call vpath_listall,PATTERN ...)
# Get all filenames which match a PATTERN from the list. Look for files
# relative to either the current directory or $(srcdir). Strip $(srcdir)/
# again before returning and remove any duplicates.
vpath_srclist = $(patsubst $(srcdir)/%,%,$(wildcard $(addprefix $(srcdir)/,$(1))))
vpath_listall = $(sort $(wildcard $(1)) $(if $(srcdir:.=),$(vpath_srclist)))
# Installation directories.
libdocdir = $(datarootdir)/doc/$(book_name)
referencedir = $(libdocdir)/reference
htmlrefdir = $(referencedir)/html
devhelpdir = $(datadir)/devhelp/books/$(book_name)
# Optionally, the documentation utilities may be included in source tarballs
# so that mm-common is only required when building in maintainer mode.
if DIST_DOCTOOLS
doctools_dist_files = $(addprefix $(MMDOCTOOLDIR)/,doc-postprocess.pl doc-install.pl tagfile-to-devhelp2.xsl doxygen-extra.css)
else
doctools_dist_files =
endif
if ENABLE_DOCUMENTATION
doc_build_files = $(doxytagfile) $(devhelpfile)
doc_inst_targets = install-htmlref install-devhelp
doc_inst_files = $(doxytagfile)
doc_dist_files = $(devhelpfile) $(call vpath_listall,$(htmlref_patterns))
else
doc_build_files =
doc_inst_targets =
doc_inst_files =
doc_dist_files =
endif
dist_reference_DATA = $(strip $(doc_inst_files))
dist_noinst_DATA = $(strip $(doctools_dist_files) $(doc_dist_files))
DISTCLEANFILES = $(doc_outdir)/doxygen.log
MAINTAINERCLEANFILES = $(doxytagfile) $(devhelpfile) $(doc_outdir)/html/*
# The generic bit of the doc-install.pl command line.
doc_install_cmd = $(doc_install) --verbose --mode=0644
# Transform $(datarootdir) into a URI to match MM_ARG_WITH_TAGFILE_DOC().
datarootdir_esc = $(subst $(subst ,, ),%20,$(subst \,/,$(datarootdir)))
docdir_base_uri = file:///$(patsubst /%,%,$(datarootdir_esc:/=))/doc
# The command and options used to install the files from the HTML reference
# documentation. The $(subst) magic translates external tag references from
# absolute to relative paths if the destination is on the local file system
# and installed under the same prefix as the package being built.
htmlref_relinst = $(subst @$(docdir_base_uri)/,@../../../,$(DOCINSTALL_FLAGS))
htmlref_install = $(doc_install_cmd) $(htmlref_relinst)
# The command and options used to install the Devhelp file.
devhelp_install = $(doc_install_cmd) --book-base='$(htmlrefdir:/=)'
# Helper variables to replicate each pattern with a $(srcdir)/ prefix.
# Also add quoting to prevent the shell from expanding the patterns.
htmlref_patterns_dup = $(foreach item,$(htmlref_patterns),'$(item)' '$(srcdir)/$(item)')
htmlref_patterns_quote = $(patsubst %,'%',$(htmlref_patterns))
htmlref_patterns_vpath = $(if $(srcdir:.=),$(htmlref_patterns_dup),$(htmlref_patterns_quote))
# Expand to a list of -name 'PATTERN' arguments for use with 'find'.
htmlref_find_patterns = $(patsubst %,-name '%' -o,$(notdir $(htmlref_patterns))) -false
# The parameters to the Doxygen-to-Devhelp XSLT script
dh_xsl_params = --stringparam book_title '$(book_title)' \
--stringparam book_name '$(book_name)' \
--stringparam book_base html
# Generated configuration files which, when updated, should cause the
# reference documentation to be rebuilt.
doc_config_deps = $(CONFIG_HEADER) $(srcdir)/$(doc_config).in $(srcdir)/Makefile.in
# Regenerate the documentation automatically only in maintainer mode.
# Depend on the generated configuration header files to trigger a rebuild
# if a configuration value changed. The configuration header files only
# have their timestamp modified when the content actually changed, which
# is not the case for any other files generated by configure.
if MAINTAINER_MODE
doc_dependencies = $(doc_config_deps) $(doc_input)
else
doc_dependencies =
endif
# Export this variable for use in the Doxygen configuration file.
export MMDOCTOOLDIR
# Depend on files that we know shall be built.
# $(call vpath_listall,$(htmlref_patterns)) is not used as a prerequisite.
# It would expand to files that exist when the make command is issued,
# which is not necessarily the set of files that shall be built.
all-local: $(doc_build_files)
# Hook up custom rules for translating references to external documentation
# to the actual location at install time.
install-data-local: $(doc_inst_targets)
# Hook up corresponding custom uninstall rules.
uninstall-local: $(addprefix un,$(doc_inst_targets))
# Install the HTML reference documentation files with just one invocation
# of doc-install.pl to speed up the build process. Make use of the --glob
# option, which tells it to perform filename globbing itself, like 'find'.
# This helps to avoid excessively long command lines, as some platforms
# have rather restrictive limits.
install-htmlref: $(doc_outdir)/html/index.html
@$(NORMAL_INSTALL)
$(MKDIR_P) '$(DESTDIR)$(htmlrefdir)'
$(htmlref_install) -t '$(DESTDIR)$(htmlrefdir)' --glob -- $(htmlref_patterns_vpath)
# Delete files from the html installation directory. Avoid recursive
# directory removal, and apply the same wildcard pattern as was used to
# select files for installation.
uninstall-htmlref:
@$(NORMAL_UNINSTALL)
(cd '$(DESTDIR)$(htmlrefdir)' 2>/dev/null || exit 0; \
find . -type f '(' $(htmlref_find_patterns) ')' -exec rm -f '{}' '+')
-test ! -r '$(DESTDIR)$(htmlrefdir)' || rmdir '$(DESTDIR)$(htmlrefdir)'
# Install the Devhelp file, translating the base path on the fly.
install-devhelp: $(devhelpfile)
@$(NORMAL_INSTALL)
$(MKDIR_P) '$(DESTDIR)$(devhelpdir)'
$(devhelp_install) -t '$(DESTDIR)$(devhelpdir)' -- $^
# Remove the installed Devhelp file and directory.
uninstall-devhelp:
@$(NORMAL_UNINSTALL)
rm -f '$(DESTDIR)$(devhelpdir)/$(notdir $(devhelpfile))'
-test ! -r '$(DESTDIR)$(devhelpdir)' || rmdir '$(DESTDIR)$(devhelpdir)'
# Regenerate the Doxygen configuration file automatically. In the
# top-level build directory Automake already takes care of this.
ifneq ($(subdir),.)
$(doc_config): $(srcdir)/$(doc_config).in $(top_builddir)/config.status
$(AM_V_GEN)cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
endif
# Make sure that the documentation will always have been generated before
# executing commands of a rule that depends on files in $(doc_outdir)/html/.
$(doc_outdir)/html/%: | $(doxytagfile)
# Run Doxygen to build the reference documentation. The generated tag file
# also functions as time stamp target for the documentation as a whole.
$(doxytagfile): $(doc_dependencies) | $(doc_config)
-$(AM_V_at)rm -f $@
-$(AM_V_at)rm -fr $(doc_outdir)/html
$(AM_V_GEN)(echo '@INCLUDE =' $(doc_config) && echo 'INPUT =' $(doc_input)) | "$(DOXYGEN)" -
$(AM_V_at)$(doc_postprocess) '$(doc_outdir)/html/*.html'
# Run XSL transformation to generate a Devhelp book from a Doxygen tag file.
%.devhelp2: %.tag
$(AM_V_GEN)$(XSLTPROC) $(dh_xsl_params) -o $@ $(tagfile_to_devhelp2) $<
.PHONY: install-htmlref uninstall-htmlref install-devhelp uninstall-devhelp
# Instruct GNU make to delete the targets of a rule after it failed, in
# order to avoid the complication of handling that situation manually.
.DELETE_ON_ERROR:

518
build/install-sh Executable file
View File

@ -0,0 +1,518 @@
#!/bin/sh
# install - install a program, script, or datafile
scriptversion=2018-03-11.20; # UTC
# This originates from X11R5 (mit/util/scripts/install.sh), which was
# later released in X11R6 (xc/config/util/install.sh) with the
# following copyright and license.
#
# Copyright (C) 1994 X Consortium
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to
# deal in the Software without restriction, including without limitation the
# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
# sell copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in
# all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC-
# TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#
# Except as contained in this notice, the name of the X Consortium shall not
# be used in advertising or otherwise to promote the sale, use or other deal-
# ings in this Software without prior written authorization from the X Consor-
# tium.
#
#
# FSF changes to this file are in the public domain.
#
# Calling this script install-sh is preferred over install.sh, to prevent
# 'make' implicit rules from creating a file called install from it
# when there is no Makefile.
#
# This script is compatible with the BSD install script, but was written
# from scratch.
tab=' '
nl='
'
IFS=" $tab$nl"
# Set DOITPROG to "echo" to test this script.
doit=${DOITPROG-}
doit_exec=${doit:-exec}
# Put in absolute file names if you don't have them in your path;
# or use environment vars.
chgrpprog=${CHGRPPROG-chgrp}
chmodprog=${CHMODPROG-chmod}
chownprog=${CHOWNPROG-chown}
cmpprog=${CMPPROG-cmp}
cpprog=${CPPROG-cp}
mkdirprog=${MKDIRPROG-mkdir}
mvprog=${MVPROG-mv}
rmprog=${RMPROG-rm}
stripprog=${STRIPPROG-strip}
posix_mkdir=
# Desired mode of installed file.
mode=0755
chgrpcmd=
chmodcmd=$chmodprog
chowncmd=
mvcmd=$mvprog
rmcmd="$rmprog -f"
stripcmd=
src=
dst=
dir_arg=
dst_arg=
copy_on_change=false
is_target_a_directory=possibly
usage="\
Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE
or: $0 [OPTION]... SRCFILES... DIRECTORY
or: $0 [OPTION]... -t DIRECTORY SRCFILES...
or: $0 [OPTION]... -d DIRECTORIES...
In the 1st form, copy SRCFILE to DSTFILE.
In the 2nd and 3rd, copy all SRCFILES to DIRECTORY.
In the 4th, create DIRECTORIES.
Options:
--help display this help and exit.
--version display version info and exit.
-c (ignored)
-C install only if different (preserve the last data modification time)
-d create directories instead of installing files.
-g GROUP $chgrpprog installed files to GROUP.
-m MODE $chmodprog installed files to MODE.
-o USER $chownprog installed files to USER.
-s $stripprog installed files.
-t DIRECTORY install into DIRECTORY.
-T report an error if DSTFILE is a directory.
Environment variables override the default commands:
CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG
RMPROG STRIPPROG
"
while test $# -ne 0; do
case $1 in
-c) ;;
-C) copy_on_change=true;;
-d) dir_arg=true;;
-g) chgrpcmd="$chgrpprog $2"
shift;;
--help) echo "$usage"; exit $?;;
-m) mode=$2
case $mode in
*' '* | *"$tab"* | *"$nl"* | *'*'* | *'?'* | *'['*)
echo "$0: invalid mode: $mode" >&2
exit 1;;
esac
shift;;
-o) chowncmd="$chownprog $2"
shift;;
-s) stripcmd=$stripprog;;
-t)
is_target_a_directory=always
dst_arg=$2
# Protect names problematic for 'test' and other utilities.
case $dst_arg in
-* | [=\(\)!]) dst_arg=./$dst_arg;;
esac
shift;;
-T) is_target_a_directory=never;;
--version) echo "$0 $scriptversion"; exit $?;;
--) shift
break;;
-*) echo "$0: invalid option: $1" >&2
exit 1;;
*) break;;
esac
shift
done
# We allow the use of options -d and -T together, by making -d
# take the precedence; this is for compatibility with GNU install.
if test -n "$dir_arg"; then
if test -n "$dst_arg"; then
echo "$0: target directory not allowed when installing a directory." >&2
exit 1
fi
fi
if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then
# When -d is used, all remaining arguments are directories to create.
# When -t is used, the destination is already specified.
# Otherwise, the last argument is the destination. Remove it from $@.
for arg
do
if test -n "$dst_arg"; then
# $@ is not empty: it contains at least $arg.
set fnord "$@" "$dst_arg"
shift # fnord
fi
shift # arg
dst_arg=$arg
# Protect names problematic for 'test' and other utilities.
case $dst_arg in
-* | [=\(\)!]) dst_arg=./$dst_arg;;
esac
done
fi
if test $# -eq 0; then
if test -z "$dir_arg"; then
echo "$0: no input file specified." >&2
exit 1
fi
# It's OK to call 'install-sh -d' without argument.
# This can happen when creating conditional directories.
exit 0
fi
if test -z "$dir_arg"; then
if test $# -gt 1 || test "$is_target_a_directory" = always; then
if test ! -d "$dst_arg"; then
echo "$0: $dst_arg: Is not a directory." >&2
exit 1
fi
fi
fi
if test -z "$dir_arg"; then
do_exit='(exit $ret); exit $ret'
trap "ret=129; $do_exit" 1
trap "ret=130; $do_exit" 2
trap "ret=141; $do_exit" 13
trap "ret=143; $do_exit" 15
# Set umask so as not to create temps with too-generous modes.
# However, 'strip' requires both read and write access to temps.
case $mode in
# Optimize common cases.
*644) cp_umask=133;;
*755) cp_umask=22;;
*[0-7])
if test -z "$stripcmd"; then
u_plus_rw=
else
u_plus_rw='% 200'
fi
cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;;
*)
if test -z "$stripcmd"; then
u_plus_rw=
else
u_plus_rw=,u+rw
fi
cp_umask=$mode$u_plus_rw;;
esac
fi
for src
do
# Protect names problematic for 'test' and other utilities.
case $src in
-* | [=\(\)!]) src=./$src;;
esac
if test -n "$dir_arg"; then
dst=$src
dstdir=$dst
test -d "$dstdir"
dstdir_status=$?
else
# Waiting for this to be detected by the "$cpprog $src $dsttmp" command
# might cause directories to be created, which would be especially bad
# if $src (and thus $dsttmp) contains '*'.
if test ! -f "$src" && test ! -d "$src"; then
echo "$0: $src does not exist." >&2
exit 1
fi
if test -z "$dst_arg"; then
echo "$0: no destination specified." >&2
exit 1
fi
dst=$dst_arg
# If destination is a directory, append the input filename.
if test -d "$dst"; then
if test "$is_target_a_directory" = never; then
echo "$0: $dst_arg: Is a directory" >&2
exit 1
fi
dstdir=$dst
dstbase=`basename "$src"`
case $dst in
*/) dst=$dst$dstbase;;
*) dst=$dst/$dstbase;;
esac
dstdir_status=0
else
dstdir=`dirname "$dst"`
test -d "$dstdir"
dstdir_status=$?
fi
fi
case $dstdir in
*/) dstdirslash=$dstdir;;
*) dstdirslash=$dstdir/;;
esac
obsolete_mkdir_used=false
if test $dstdir_status != 0; then
case $posix_mkdir in
'')
# Create intermediate dirs using mode 755 as modified by the umask.
# This is like FreeBSD 'install' as of 1997-10-28.
umask=`umask`
case $stripcmd.$umask in
# Optimize common cases.
*[2367][2367]) mkdir_umask=$umask;;
.*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;;
*[0-7])
mkdir_umask=`expr $umask + 22 \
- $umask % 100 % 40 + $umask % 20 \
- $umask % 10 % 4 + $umask % 2
`;;
*) mkdir_umask=$umask,go-w;;
esac
# With -d, create the new directory with the user-specified mode.
# Otherwise, rely on $mkdir_umask.
if test -n "$dir_arg"; then
mkdir_mode=-m$mode
else
mkdir_mode=
fi
posix_mkdir=false
case $umask in
*[123567][0-7][0-7])
# POSIX mkdir -p sets u+wx bits regardless of umask, which
# is incompatible with FreeBSD 'install' when (umask & 300) != 0.
;;
*)
# Note that $RANDOM variable is not portable (e.g. dash); Use it
# here however when possible just to lower collision chance.
tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$
trap 'ret=$?; rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir" 2>/dev/null; exit $ret' 0
# Because "mkdir -p" follows existing symlinks and we likely work
# directly in world-writeable /tmp, make sure that the '$tmpdir'
# directory is successfully created first before we actually test
# 'mkdir -p' feature.
if (umask $mkdir_umask &&
$mkdirprog $mkdir_mode "$tmpdir" &&
exec $mkdirprog $mkdir_mode -p -- "$tmpdir/a/b") >/dev/null 2>&1
then
if test -z "$dir_arg" || {
# Check for POSIX incompatibilities with -m.
# HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or
# other-writable bit of parent directory when it shouldn't.
# FreeBSD 6.1 mkdir -m -p sets mode of existing directory.
test_tmpdir="$tmpdir/a"
ls_ld_tmpdir=`ls -ld "$test_tmpdir"`
case $ls_ld_tmpdir in
d????-?r-*) different_mode=700;;
d????-?--*) different_mode=755;;
*) false;;
esac &&
$mkdirprog -m$different_mode -p -- "$test_tmpdir" && {
ls_ld_tmpdir_1=`ls -ld "$test_tmpdir"`
test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1"
}
}
then posix_mkdir=:
fi
rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir"
else
# Remove any dirs left behind by ancient mkdir implementations.
rmdir ./$mkdir_mode ./-p ./-- "$tmpdir" 2>/dev/null
fi
trap '' 0;;
esac;;
esac
if
$posix_mkdir && (
umask $mkdir_umask &&
$doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir"
)
then :
else
# The umask is ridiculous, or mkdir does not conform to POSIX,
# or it failed possibly due to a race condition. Create the
# directory the slow way, step by step, checking for races as we go.
case $dstdir in
/*) prefix='/';;
[-=\(\)!]*) prefix='./';;
*) prefix='';;
esac
oIFS=$IFS
IFS=/
set -f
set fnord $dstdir
shift
set +f
IFS=$oIFS
prefixes=
for d
do
test X"$d" = X && continue
prefix=$prefix$d
if test -d "$prefix"; then
prefixes=
else
if $posix_mkdir; then
(umask=$mkdir_umask &&
$doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break
# Don't fail if two instances are running concurrently.
test -d "$prefix" || exit 1
else
case $prefix in
*\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;;
*) qprefix=$prefix;;
esac
prefixes="$prefixes '$qprefix'"
fi
fi
prefix=$prefix/
done
if test -n "$prefixes"; then
# Don't fail if two instances are running concurrently.
(umask $mkdir_umask &&
eval "\$doit_exec \$mkdirprog $prefixes") ||
test -d "$dstdir" || exit 1
obsolete_mkdir_used=true
fi
fi
fi
if test -n "$dir_arg"; then
{ test -z "$chowncmd" || $doit $chowncmd "$dst"; } &&
{ test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } &&
{ test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false ||
test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1
else
# Make a couple of temp file names in the proper directory.
dsttmp=${dstdirslash}_inst.$$_
rmtmp=${dstdirslash}_rm.$$_
# Trap to clean up those temp files at exit.
trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0
# Copy the file name to the temp name.
(umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") &&
# and set any options; do chmod last to preserve setuid bits.
#
# If any of these fail, we abort the whole thing. If we want to
# ignore errors from any of these, just make sure not to ignore
# errors from the above "$doit $cpprog $src $dsttmp" command.
#
{ test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } &&
{ test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } &&
{ test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } &&
{ test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } &&
# If -C, don't bother to copy if it wouldn't change the file.
if $copy_on_change &&
old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` &&
new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` &&
set -f &&
set X $old && old=:$2:$4:$5:$6 &&
set X $new && new=:$2:$4:$5:$6 &&
set +f &&
test "$old" = "$new" &&
$cmpprog "$dst" "$dsttmp" >/dev/null 2>&1
then
rm -f "$dsttmp"
else
# Rename the file to the real destination.
$doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null ||
# The rename failed, perhaps because mv can't rename something else
# to itself, or perhaps because mv is so ancient that it does not
# support -f.
{
# Now remove or move aside any old file at destination location.
# We try this two ways since rm can't unlink itself on some
# systems and the destination file might be busy for other
# reasons. In this case, the final cleanup might fail but the new
# file should still install successfully.
{
test ! -f "$dst" ||
$doit $rmcmd -f "$dst" 2>/dev/null ||
{ $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null &&
{ $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; }
} ||
{ echo "$0: cannot unlink or rename $dst" >&2
(exit 1); exit 1
}
} &&
# Now rename the file to the real destination.
$doit $mvcmd "$dsttmp" "$dst"
}
fi || exit 1
trap '' 0
fi
done
# Local variables:
# eval: (add-hook 'before-save-hook 'time-stamp)
# time-stamp-start: "scriptversion="
# time-stamp-format: "%:y-%02m-%02d.%02H"
# time-stamp-time-zone: "UTC0"
# time-stamp-end: "; # UTC"
# End:

8394
build/libtool.m4 vendored Normal file

File diff suppressed because it is too large Load Diff

11249
build/ltmain.sh Normal file

File diff suppressed because it is too large Load Diff

437
build/ltoptions.m4 vendored Normal file
View File

@ -0,0 +1,437 @@
# Helper functions for option handling. -*- Autoconf -*-
#
# Copyright (C) 2004-2005, 2007-2009, 2011-2015 Free Software
# Foundation, Inc.
# Written by Gary V. Vaughan, 2004
#
# This file is free software; the Free Software Foundation gives
# unlimited permission to copy and/or distribute it, with or without
# modifications, as long as this notice is preserved.
# serial 8 ltoptions.m4
# This is to help aclocal find these macros, as it can't see m4_define.
AC_DEFUN([LTOPTIONS_VERSION], [m4_if([1])])
# _LT_MANGLE_OPTION(MACRO-NAME, OPTION-NAME)
# ------------------------------------------
m4_define([_LT_MANGLE_OPTION],
[[_LT_OPTION_]m4_bpatsubst($1__$2, [[^a-zA-Z0-9_]], [_])])
# _LT_SET_OPTION(MACRO-NAME, OPTION-NAME)
# ---------------------------------------
# Set option OPTION-NAME for macro MACRO-NAME, and if there is a
# matching handler defined, dispatch to it. Other OPTION-NAMEs are
# saved as a flag.
m4_define([_LT_SET_OPTION],
[m4_define(_LT_MANGLE_OPTION([$1], [$2]))dnl
m4_ifdef(_LT_MANGLE_DEFUN([$1], [$2]),
_LT_MANGLE_DEFUN([$1], [$2]),
[m4_warning([Unknown $1 option '$2'])])[]dnl
])
# _LT_IF_OPTION(MACRO-NAME, OPTION-NAME, IF-SET, [IF-NOT-SET])
# ------------------------------------------------------------
# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise.
m4_define([_LT_IF_OPTION],
[m4_ifdef(_LT_MANGLE_OPTION([$1], [$2]), [$3], [$4])])
# _LT_UNLESS_OPTIONS(MACRO-NAME, OPTION-LIST, IF-NOT-SET)
# -------------------------------------------------------
# Execute IF-NOT-SET unless all options in OPTION-LIST for MACRO-NAME
# are set.
m4_define([_LT_UNLESS_OPTIONS],
[m4_foreach([_LT_Option], m4_split(m4_normalize([$2])),
[m4_ifdef(_LT_MANGLE_OPTION([$1], _LT_Option),
[m4_define([$0_found])])])[]dnl
m4_ifdef([$0_found], [m4_undefine([$0_found])], [$3
])[]dnl
])
# _LT_SET_OPTIONS(MACRO-NAME, OPTION-LIST)
# ----------------------------------------
# OPTION-LIST is a space-separated list of Libtool options associated
# with MACRO-NAME. If any OPTION has a matching handler declared with
# LT_OPTION_DEFINE, dispatch to that macro; otherwise complain about
# the unknown option and exit.
m4_defun([_LT_SET_OPTIONS],
[# Set options
m4_foreach([_LT_Option], m4_split(m4_normalize([$2])),
[_LT_SET_OPTION([$1], _LT_Option)])
m4_if([$1],[LT_INIT],[
dnl
dnl Simply set some default values (i.e off) if boolean options were not
dnl specified:
_LT_UNLESS_OPTIONS([LT_INIT], [dlopen], [enable_dlopen=no
])
_LT_UNLESS_OPTIONS([LT_INIT], [win32-dll], [enable_win32_dll=no
])
dnl
dnl If no reference was made to various pairs of opposing options, then
dnl we run the default mode handler for the pair. For example, if neither
dnl 'shared' nor 'disable-shared' was passed, we enable building of shared
dnl archives by default:
_LT_UNLESS_OPTIONS([LT_INIT], [shared disable-shared], [_LT_ENABLE_SHARED])
_LT_UNLESS_OPTIONS([LT_INIT], [static disable-static], [_LT_ENABLE_STATIC])
_LT_UNLESS_OPTIONS([LT_INIT], [pic-only no-pic], [_LT_WITH_PIC])
_LT_UNLESS_OPTIONS([LT_INIT], [fast-install disable-fast-install],
[_LT_ENABLE_FAST_INSTALL])
_LT_UNLESS_OPTIONS([LT_INIT], [aix-soname=aix aix-soname=both aix-soname=svr4],
[_LT_WITH_AIX_SONAME([aix])])
])
])# _LT_SET_OPTIONS
## --------------------------------- ##
## Macros to handle LT_INIT options. ##
## --------------------------------- ##
# _LT_MANGLE_DEFUN(MACRO-NAME, OPTION-NAME)
# -----------------------------------------
m4_define([_LT_MANGLE_DEFUN],
[[_LT_OPTION_DEFUN_]m4_bpatsubst(m4_toupper([$1__$2]), [[^A-Z0-9_]], [_])])
# LT_OPTION_DEFINE(MACRO-NAME, OPTION-NAME, CODE)
# -----------------------------------------------
m4_define([LT_OPTION_DEFINE],
[m4_define(_LT_MANGLE_DEFUN([$1], [$2]), [$3])[]dnl
])# LT_OPTION_DEFINE
# dlopen
# ------
LT_OPTION_DEFINE([LT_INIT], [dlopen], [enable_dlopen=yes
])
AU_DEFUN([AC_LIBTOOL_DLOPEN],
[_LT_SET_OPTION([LT_INIT], [dlopen])
AC_DIAGNOSE([obsolete],
[$0: Remove this warning and the call to _LT_SET_OPTION when you
put the 'dlopen' option into LT_INIT's first parameter.])
])
dnl aclocal-1.4 backwards compatibility:
dnl AC_DEFUN([AC_LIBTOOL_DLOPEN], [])
# win32-dll
# ---------
# Declare package support for building win32 dll's.
LT_OPTION_DEFINE([LT_INIT], [win32-dll],
[enable_win32_dll=yes
case $host in
*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-cegcc*)
AC_CHECK_TOOL(AS, as, false)
AC_CHECK_TOOL(DLLTOOL, dlltool, false)
AC_CHECK_TOOL(OBJDUMP, objdump, false)
;;
esac
test -z "$AS" && AS=as
_LT_DECL([], [AS], [1], [Assembler program])dnl
test -z "$DLLTOOL" && DLLTOOL=dlltool
_LT_DECL([], [DLLTOOL], [1], [DLL creation program])dnl
test -z "$OBJDUMP" && OBJDUMP=objdump
_LT_DECL([], [OBJDUMP], [1], [Object dumper program])dnl
])# win32-dll
AU_DEFUN([AC_LIBTOOL_WIN32_DLL],
[AC_REQUIRE([AC_CANONICAL_HOST])dnl
_LT_SET_OPTION([LT_INIT], [win32-dll])
AC_DIAGNOSE([obsolete],
[$0: Remove this warning and the call to _LT_SET_OPTION when you
put the 'win32-dll' option into LT_INIT's first parameter.])
])
dnl aclocal-1.4 backwards compatibility:
dnl AC_DEFUN([AC_LIBTOOL_WIN32_DLL], [])
# _LT_ENABLE_SHARED([DEFAULT])
# ----------------------------
# implement the --enable-shared flag, and supports the 'shared' and
# 'disable-shared' LT_INIT options.
# DEFAULT is either 'yes' or 'no'. If omitted, it defaults to 'yes'.
m4_define([_LT_ENABLE_SHARED],
[m4_define([_LT_ENABLE_SHARED_DEFAULT], [m4_if($1, no, no, yes)])dnl
AC_ARG_ENABLE([shared],
[AS_HELP_STRING([--enable-shared@<:@=PKGS@:>@],
[build shared libraries @<:@default=]_LT_ENABLE_SHARED_DEFAULT[@:>@])],
[p=${PACKAGE-default}
case $enableval in
yes) enable_shared=yes ;;
no) enable_shared=no ;;
*)
enable_shared=no
# Look at the argument we got. We use all the common list separators.
lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR,
for pkg in $enableval; do
IFS=$lt_save_ifs
if test "X$pkg" = "X$p"; then
enable_shared=yes
fi
done
IFS=$lt_save_ifs
;;
esac],
[enable_shared=]_LT_ENABLE_SHARED_DEFAULT)
_LT_DECL([build_libtool_libs], [enable_shared], [0],
[Whether or not to build shared libraries])
])# _LT_ENABLE_SHARED
LT_OPTION_DEFINE([LT_INIT], [shared], [_LT_ENABLE_SHARED([yes])])
LT_OPTION_DEFINE([LT_INIT], [disable-shared], [_LT_ENABLE_SHARED([no])])
# Old names:
AC_DEFUN([AC_ENABLE_SHARED],
[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[shared])
])
AC_DEFUN([AC_DISABLE_SHARED],
[_LT_SET_OPTION([LT_INIT], [disable-shared])
])
AU_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)])
AU_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)])
dnl aclocal-1.4 backwards compatibility:
dnl AC_DEFUN([AM_ENABLE_SHARED], [])
dnl AC_DEFUN([AM_DISABLE_SHARED], [])
# _LT_ENABLE_STATIC([DEFAULT])
# ----------------------------
# implement the --enable-static flag, and support the 'static' and
# 'disable-static' LT_INIT options.
# DEFAULT is either 'yes' or 'no'. If omitted, it defaults to 'yes'.
m4_define([_LT_ENABLE_STATIC],
[m4_define([_LT_ENABLE_STATIC_DEFAULT], [m4_if($1, no, no, yes)])dnl
AC_ARG_ENABLE([static],
[AS_HELP_STRING([--enable-static@<:@=PKGS@:>@],
[build static libraries @<:@default=]_LT_ENABLE_STATIC_DEFAULT[@:>@])],
[p=${PACKAGE-default}
case $enableval in
yes) enable_static=yes ;;
no) enable_static=no ;;
*)
enable_static=no
# Look at the argument we got. We use all the common list separators.
lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR,
for pkg in $enableval; do
IFS=$lt_save_ifs
if test "X$pkg" = "X$p"; then
enable_static=yes
fi
done
IFS=$lt_save_ifs
;;
esac],
[enable_static=]_LT_ENABLE_STATIC_DEFAULT)
_LT_DECL([build_old_libs], [enable_static], [0],
[Whether or not to build static libraries])
])# _LT_ENABLE_STATIC
LT_OPTION_DEFINE([LT_INIT], [static], [_LT_ENABLE_STATIC([yes])])
LT_OPTION_DEFINE([LT_INIT], [disable-static], [_LT_ENABLE_STATIC([no])])
# Old names:
AC_DEFUN([AC_ENABLE_STATIC],
[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[static])
])
AC_DEFUN([AC_DISABLE_STATIC],
[_LT_SET_OPTION([LT_INIT], [disable-static])
])
AU_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)])
AU_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)])
dnl aclocal-1.4 backwards compatibility:
dnl AC_DEFUN([AM_ENABLE_STATIC], [])
dnl AC_DEFUN([AM_DISABLE_STATIC], [])
# _LT_ENABLE_FAST_INSTALL([DEFAULT])
# ----------------------------------
# implement the --enable-fast-install flag, and support the 'fast-install'
# and 'disable-fast-install' LT_INIT options.
# DEFAULT is either 'yes' or 'no'. If omitted, it defaults to 'yes'.
m4_define([_LT_ENABLE_FAST_INSTALL],
[m4_define([_LT_ENABLE_FAST_INSTALL_DEFAULT], [m4_if($1, no, no, yes)])dnl
AC_ARG_ENABLE([fast-install],
[AS_HELP_STRING([--enable-fast-install@<:@=PKGS@:>@],
[optimize for fast installation @<:@default=]_LT_ENABLE_FAST_INSTALL_DEFAULT[@:>@])],
[p=${PACKAGE-default}
case $enableval in
yes) enable_fast_install=yes ;;
no) enable_fast_install=no ;;
*)
enable_fast_install=no
# Look at the argument we got. We use all the common list separators.
lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR,
for pkg in $enableval; do
IFS=$lt_save_ifs
if test "X$pkg" = "X$p"; then
enable_fast_install=yes
fi
done
IFS=$lt_save_ifs
;;
esac],
[enable_fast_install=]_LT_ENABLE_FAST_INSTALL_DEFAULT)
_LT_DECL([fast_install], [enable_fast_install], [0],
[Whether or not to optimize for fast installation])dnl
])# _LT_ENABLE_FAST_INSTALL
LT_OPTION_DEFINE([LT_INIT], [fast-install], [_LT_ENABLE_FAST_INSTALL([yes])])
LT_OPTION_DEFINE([LT_INIT], [disable-fast-install], [_LT_ENABLE_FAST_INSTALL([no])])
# Old names:
AU_DEFUN([AC_ENABLE_FAST_INSTALL],
[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[fast-install])
AC_DIAGNOSE([obsolete],
[$0: Remove this warning and the call to _LT_SET_OPTION when you put
the 'fast-install' option into LT_INIT's first parameter.])
])
AU_DEFUN([AC_DISABLE_FAST_INSTALL],
[_LT_SET_OPTION([LT_INIT], [disable-fast-install])
AC_DIAGNOSE([obsolete],
[$0: Remove this warning and the call to _LT_SET_OPTION when you put
the 'disable-fast-install' option into LT_INIT's first parameter.])
])
dnl aclocal-1.4 backwards compatibility:
dnl AC_DEFUN([AC_ENABLE_FAST_INSTALL], [])
dnl AC_DEFUN([AM_DISABLE_FAST_INSTALL], [])
# _LT_WITH_AIX_SONAME([DEFAULT])
# ----------------------------------
# implement the --with-aix-soname flag, and support the `aix-soname=aix'
# and `aix-soname=both' and `aix-soname=svr4' LT_INIT options. DEFAULT
# is either `aix', `both' or `svr4'. If omitted, it defaults to `aix'.
m4_define([_LT_WITH_AIX_SONAME],
[m4_define([_LT_WITH_AIX_SONAME_DEFAULT], [m4_if($1, svr4, svr4, m4_if($1, both, both, aix))])dnl
shared_archive_member_spec=
case $host,$enable_shared in
power*-*-aix[[5-9]]*,yes)
AC_MSG_CHECKING([which variant of shared library versioning to provide])
AC_ARG_WITH([aix-soname],
[AS_HELP_STRING([--with-aix-soname=aix|svr4|both],
[shared library versioning (aka "SONAME") variant to provide on AIX, @<:@default=]_LT_WITH_AIX_SONAME_DEFAULT[@:>@.])],
[case $withval in
aix|svr4|both)
;;
*)
AC_MSG_ERROR([Unknown argument to --with-aix-soname])
;;
esac
lt_cv_with_aix_soname=$with_aix_soname],
[AC_CACHE_VAL([lt_cv_with_aix_soname],
[lt_cv_with_aix_soname=]_LT_WITH_AIX_SONAME_DEFAULT)
with_aix_soname=$lt_cv_with_aix_soname])
AC_MSG_RESULT([$with_aix_soname])
if test aix != "$with_aix_soname"; then
# For the AIX way of multilib, we name the shared archive member
# based on the bitwidth used, traditionally 'shr.o' or 'shr_64.o',
# and 'shr.imp' or 'shr_64.imp', respectively, for the Import File.
# Even when GNU compilers ignore OBJECT_MODE but need '-maix64' flag,
# the AIX toolchain works better with OBJECT_MODE set (default 32).
if test 64 = "${OBJECT_MODE-32}"; then
shared_archive_member_spec=shr_64
else
shared_archive_member_spec=shr
fi
fi
;;
*)
with_aix_soname=aix
;;
esac
_LT_DECL([], [shared_archive_member_spec], [0],
[Shared archive member basename, for filename based shared library versioning on AIX])dnl
])# _LT_WITH_AIX_SONAME
LT_OPTION_DEFINE([LT_INIT], [aix-soname=aix], [_LT_WITH_AIX_SONAME([aix])])
LT_OPTION_DEFINE([LT_INIT], [aix-soname=both], [_LT_WITH_AIX_SONAME([both])])
LT_OPTION_DEFINE([LT_INIT], [aix-soname=svr4], [_LT_WITH_AIX_SONAME([svr4])])
# _LT_WITH_PIC([MODE])
# --------------------
# implement the --with-pic flag, and support the 'pic-only' and 'no-pic'
# LT_INIT options.
# MODE is either 'yes' or 'no'. If omitted, it defaults to 'both'.
m4_define([_LT_WITH_PIC],
[AC_ARG_WITH([pic],
[AS_HELP_STRING([--with-pic@<:@=PKGS@:>@],
[try to use only PIC/non-PIC objects @<:@default=use both@:>@])],
[lt_p=${PACKAGE-default}
case $withval in
yes|no) pic_mode=$withval ;;
*)
pic_mode=default
# Look at the argument we got. We use all the common list separators.
lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR,
for lt_pkg in $withval; do
IFS=$lt_save_ifs
if test "X$lt_pkg" = "X$lt_p"; then
pic_mode=yes
fi
done
IFS=$lt_save_ifs
;;
esac],
[pic_mode=m4_default([$1], [default])])
_LT_DECL([], [pic_mode], [0], [What type of objects to build])dnl
])# _LT_WITH_PIC
LT_OPTION_DEFINE([LT_INIT], [pic-only], [_LT_WITH_PIC([yes])])
LT_OPTION_DEFINE([LT_INIT], [no-pic], [_LT_WITH_PIC([no])])
# Old name:
AU_DEFUN([AC_LIBTOOL_PICMODE],
[_LT_SET_OPTION([LT_INIT], [pic-only])
AC_DIAGNOSE([obsolete],
[$0: Remove this warning and the call to _LT_SET_OPTION when you
put the 'pic-only' option into LT_INIT's first parameter.])
])
dnl aclocal-1.4 backwards compatibility:
dnl AC_DEFUN([AC_LIBTOOL_PICMODE], [])
## ----------------- ##
## LTDL_INIT Options ##
## ----------------- ##
m4_define([_LTDL_MODE], [])
LT_OPTION_DEFINE([LTDL_INIT], [nonrecursive],
[m4_define([_LTDL_MODE], [nonrecursive])])
LT_OPTION_DEFINE([LTDL_INIT], [recursive],
[m4_define([_LTDL_MODE], [recursive])])
LT_OPTION_DEFINE([LTDL_INIT], [subproject],
[m4_define([_LTDL_MODE], [subproject])])
m4_define([_LTDL_TYPE], [])
LT_OPTION_DEFINE([LTDL_INIT], [installable],
[m4_define([_LTDL_TYPE], [installable])])
LT_OPTION_DEFINE([LTDL_INIT], [convenience],
[m4_define([_LTDL_TYPE], [convenience])])

124
build/ltsugar.m4 vendored Normal file
View File

@ -0,0 +1,124 @@
# ltsugar.m4 -- libtool m4 base layer. -*-Autoconf-*-
#
# Copyright (C) 2004-2005, 2007-2008, 2011-2015 Free Software
# Foundation, Inc.
# Written by Gary V. Vaughan, 2004
#
# This file is free software; the Free Software Foundation gives
# unlimited permission to copy and/or distribute it, with or without
# modifications, as long as this notice is preserved.
# serial 6 ltsugar.m4
# This is to help aclocal find these macros, as it can't see m4_define.
AC_DEFUN([LTSUGAR_VERSION], [m4_if([0.1])])
# lt_join(SEP, ARG1, [ARG2...])
# -----------------------------
# Produce ARG1SEPARG2...SEPARGn, omitting [] arguments and their
# associated separator.
# Needed until we can rely on m4_join from Autoconf 2.62, since all earlier
# versions in m4sugar had bugs.
m4_define([lt_join],
[m4_if([$#], [1], [],
[$#], [2], [[$2]],
[m4_if([$2], [], [], [[$2]_])$0([$1], m4_shift(m4_shift($@)))])])
m4_define([_lt_join],
[m4_if([$#$2], [2], [],
[m4_if([$2], [], [], [[$1$2]])$0([$1], m4_shift(m4_shift($@)))])])
# lt_car(LIST)
# lt_cdr(LIST)
# ------------
# Manipulate m4 lists.
# These macros are necessary as long as will still need to support
# Autoconf-2.59, which quotes differently.
m4_define([lt_car], [[$1]])
m4_define([lt_cdr],
[m4_if([$#], 0, [m4_fatal([$0: cannot be called without arguments])],
[$#], 1, [],
[m4_dquote(m4_shift($@))])])
m4_define([lt_unquote], $1)
# lt_append(MACRO-NAME, STRING, [SEPARATOR])
# ------------------------------------------
# Redefine MACRO-NAME to hold its former content plus 'SEPARATOR''STRING'.
# Note that neither SEPARATOR nor STRING are expanded; they are appended
# to MACRO-NAME as is (leaving the expansion for when MACRO-NAME is invoked).
# No SEPARATOR is output if MACRO-NAME was previously undefined (different
# than defined and empty).
#
# This macro is needed until we can rely on Autoconf 2.62, since earlier
# versions of m4sugar mistakenly expanded SEPARATOR but not STRING.
m4_define([lt_append],
[m4_define([$1],
m4_ifdef([$1], [m4_defn([$1])[$3]])[$2])])
# lt_combine(SEP, PREFIX-LIST, INFIX, SUFFIX1, [SUFFIX2...])
# ----------------------------------------------------------
# Produce a SEP delimited list of all paired combinations of elements of
# PREFIX-LIST with SUFFIX1 through SUFFIXn. Each element of the list
# has the form PREFIXmINFIXSUFFIXn.
# Needed until we can rely on m4_combine added in Autoconf 2.62.
m4_define([lt_combine],
[m4_if(m4_eval([$# > 3]), [1],
[m4_pushdef([_Lt_sep], [m4_define([_Lt_sep], m4_defn([lt_car]))])]]dnl
[[m4_foreach([_Lt_prefix], [$2],
[m4_foreach([_Lt_suffix],
]m4_dquote(m4_dquote(m4_shift(m4_shift(m4_shift($@)))))[,
[_Lt_sep([$1])[]m4_defn([_Lt_prefix])[$3]m4_defn([_Lt_suffix])])])])])
# lt_if_append_uniq(MACRO-NAME, VARNAME, [SEPARATOR], [UNIQ], [NOT-UNIQ])
# -----------------------------------------------------------------------
# Iff MACRO-NAME does not yet contain VARNAME, then append it (delimited
# by SEPARATOR if supplied) and expand UNIQ, else NOT-UNIQ.
m4_define([lt_if_append_uniq],
[m4_ifdef([$1],
[m4_if(m4_index([$3]m4_defn([$1])[$3], [$3$2$3]), [-1],
[lt_append([$1], [$2], [$3])$4],
[$5])],
[lt_append([$1], [$2], [$3])$4])])
# lt_dict_add(DICT, KEY, VALUE)
# -----------------------------
m4_define([lt_dict_add],
[m4_define([$1($2)], [$3])])
# lt_dict_add_subkey(DICT, KEY, SUBKEY, VALUE)
# --------------------------------------------
m4_define([lt_dict_add_subkey],
[m4_define([$1($2:$3)], [$4])])
# lt_dict_fetch(DICT, KEY, [SUBKEY])
# ----------------------------------
m4_define([lt_dict_fetch],
[m4_ifval([$3],
m4_ifdef([$1($2:$3)], [m4_defn([$1($2:$3)])]),
m4_ifdef([$1($2)], [m4_defn([$1($2)])]))])
# lt_if_dict_fetch(DICT, KEY, [SUBKEY], VALUE, IF-TRUE, [IF-FALSE])
# -----------------------------------------------------------------
m4_define([lt_if_dict_fetch],
[m4_if(lt_dict_fetch([$1], [$2], [$3]), [$4],
[$5],
[$6])])
# lt_dict_filter(DICT, [SUBKEY], VALUE, [SEPARATOR], KEY, [...])
# --------------------------------------------------------------
m4_define([lt_dict_filter],
[m4_if([$5], [], [],
[lt_join(m4_quote(m4_default([$4], [[, ]])),
lt_unquote(m4_split(m4_normalize(m4_foreach(_Lt_key, lt_car([m4_shiftn(4, $@)]),
[lt_if_dict_fetch([$1], _Lt_key, [$2], [$3], [_Lt_key ])])))))])[]dnl
])

23
build/ltversion.m4 vendored Normal file
View File

@ -0,0 +1,23 @@
# ltversion.m4 -- version numbers -*- Autoconf -*-
#
# Copyright (C) 2004, 2011-2015 Free Software Foundation, Inc.
# Written by Scott James Remnant, 2004
#
# This file is free software; the Free Software Foundation gives
# unlimited permission to copy and/or distribute it, with or without
# modifications, as long as this notice is preserved.
# @configure_input@
# serial 4179 ltversion.m4
# This file is part of GNU Libtool
m4_define([LT_PACKAGE_VERSION], [2.4.6])
m4_define([LT_PACKAGE_REVISION], [2.4.6])
AC_DEFUN([LTVERSION_VERSION],
[macro_version='2.4.6'
macro_revision='2.4.6'
_LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?])
_LT_DECL(, macro_revision, 0)
])

99
build/lt~obsolete.m4 vendored Normal file
View File

@ -0,0 +1,99 @@
# lt~obsolete.m4 -- aclocal satisfying obsolete definitions. -*-Autoconf-*-
#
# Copyright (C) 2004-2005, 2007, 2009, 2011-2015 Free Software
# Foundation, Inc.
# Written by Scott James Remnant, 2004.
#
# This file is free software; the Free Software Foundation gives
# unlimited permission to copy and/or distribute it, with or without
# modifications, as long as this notice is preserved.
# serial 5 lt~obsolete.m4
# These exist entirely to fool aclocal when bootstrapping libtool.
#
# In the past libtool.m4 has provided macros via AC_DEFUN (or AU_DEFUN),
# which have later been changed to m4_define as they aren't part of the
# exported API, or moved to Autoconf or Automake where they belong.
#
# The trouble is, aclocal is a bit thick. It'll see the old AC_DEFUN
# in /usr/share/aclocal/libtool.m4 and remember it, then when it sees us
# using a macro with the same name in our local m4/libtool.m4 it'll
# pull the old libtool.m4 in (it doesn't see our shiny new m4_define
# and doesn't know about Autoconf macros at all.)
#
# So we provide this file, which has a silly filename so it's always
# included after everything else. This provides aclocal with the
# AC_DEFUNs it wants, but when m4 processes it, it doesn't do anything
# because those macros already exist, or will be overwritten later.
# We use AC_DEFUN over AU_DEFUN for compatibility with aclocal-1.6.
#
# Anytime we withdraw an AC_DEFUN or AU_DEFUN, remember to add it here.
# Yes, that means every name once taken will need to remain here until
# we give up compatibility with versions before 1.7, at which point
# we need to keep only those names which we still refer to.
# This is to help aclocal find these macros, as it can't see m4_define.
AC_DEFUN([LTOBSOLETE_VERSION], [m4_if([1])])
m4_ifndef([AC_LIBTOOL_LINKER_OPTION], [AC_DEFUN([AC_LIBTOOL_LINKER_OPTION])])
m4_ifndef([AC_PROG_EGREP], [AC_DEFUN([AC_PROG_EGREP])])
m4_ifndef([_LT_AC_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH])])
m4_ifndef([_LT_AC_SHELL_INIT], [AC_DEFUN([_LT_AC_SHELL_INIT])])
m4_ifndef([_LT_AC_SYS_LIBPATH_AIX], [AC_DEFUN([_LT_AC_SYS_LIBPATH_AIX])])
m4_ifndef([_LT_PROG_LTMAIN], [AC_DEFUN([_LT_PROG_LTMAIN])])
m4_ifndef([_LT_AC_TAGVAR], [AC_DEFUN([_LT_AC_TAGVAR])])
m4_ifndef([AC_LTDL_ENABLE_INSTALL], [AC_DEFUN([AC_LTDL_ENABLE_INSTALL])])
m4_ifndef([AC_LTDL_PREOPEN], [AC_DEFUN([AC_LTDL_PREOPEN])])
m4_ifndef([_LT_AC_SYS_COMPILER], [AC_DEFUN([_LT_AC_SYS_COMPILER])])
m4_ifndef([_LT_AC_LOCK], [AC_DEFUN([_LT_AC_LOCK])])
m4_ifndef([AC_LIBTOOL_SYS_OLD_ARCHIVE], [AC_DEFUN([AC_LIBTOOL_SYS_OLD_ARCHIVE])])
m4_ifndef([_LT_AC_TRY_DLOPEN_SELF], [AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF])])
m4_ifndef([AC_LIBTOOL_PROG_CC_C_O], [AC_DEFUN([AC_LIBTOOL_PROG_CC_C_O])])
m4_ifndef([AC_LIBTOOL_SYS_HARD_LINK_LOCKS], [AC_DEFUN([AC_LIBTOOL_SYS_HARD_LINK_LOCKS])])
m4_ifndef([AC_LIBTOOL_OBJDIR], [AC_DEFUN([AC_LIBTOOL_OBJDIR])])
m4_ifndef([AC_LTDL_OBJDIR], [AC_DEFUN([AC_LTDL_OBJDIR])])
m4_ifndef([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH], [AC_DEFUN([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH])])
m4_ifndef([AC_LIBTOOL_SYS_LIB_STRIP], [AC_DEFUN([AC_LIBTOOL_SYS_LIB_STRIP])])
m4_ifndef([AC_PATH_MAGIC], [AC_DEFUN([AC_PATH_MAGIC])])
m4_ifndef([AC_PROG_LD_GNU], [AC_DEFUN([AC_PROG_LD_GNU])])
m4_ifndef([AC_PROG_LD_RELOAD_FLAG], [AC_DEFUN([AC_PROG_LD_RELOAD_FLAG])])
m4_ifndef([AC_DEPLIBS_CHECK_METHOD], [AC_DEFUN([AC_DEPLIBS_CHECK_METHOD])])
m4_ifndef([AC_LIBTOOL_PROG_COMPILER_NO_RTTI], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_NO_RTTI])])
m4_ifndef([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE], [AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE])])
m4_ifndef([AC_LIBTOOL_PROG_COMPILER_PIC], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_PIC])])
m4_ifndef([AC_LIBTOOL_PROG_LD_SHLIBS], [AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS])])
m4_ifndef([AC_LIBTOOL_POSTDEP_PREDEP], [AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP])])
m4_ifndef([LT_AC_PROG_EGREP], [AC_DEFUN([LT_AC_PROG_EGREP])])
m4_ifndef([LT_AC_PROG_SED], [AC_DEFUN([LT_AC_PROG_SED])])
m4_ifndef([_LT_CC_BASENAME], [AC_DEFUN([_LT_CC_BASENAME])])
m4_ifndef([_LT_COMPILER_BOILERPLATE], [AC_DEFUN([_LT_COMPILER_BOILERPLATE])])
m4_ifndef([_LT_LINKER_BOILERPLATE], [AC_DEFUN([_LT_LINKER_BOILERPLATE])])
m4_ifndef([_AC_PROG_LIBTOOL], [AC_DEFUN([_AC_PROG_LIBTOOL])])
m4_ifndef([AC_LIBTOOL_SETUP], [AC_DEFUN([AC_LIBTOOL_SETUP])])
m4_ifndef([_LT_AC_CHECK_DLFCN], [AC_DEFUN([_LT_AC_CHECK_DLFCN])])
m4_ifndef([AC_LIBTOOL_SYS_DYNAMIC_LINKER], [AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER])])
m4_ifndef([_LT_AC_TAGCONFIG], [AC_DEFUN([_LT_AC_TAGCONFIG])])
m4_ifndef([AC_DISABLE_FAST_INSTALL], [AC_DEFUN([AC_DISABLE_FAST_INSTALL])])
m4_ifndef([_LT_AC_LANG_CXX], [AC_DEFUN([_LT_AC_LANG_CXX])])
m4_ifndef([_LT_AC_LANG_F77], [AC_DEFUN([_LT_AC_LANG_F77])])
m4_ifndef([_LT_AC_LANG_GCJ], [AC_DEFUN([_LT_AC_LANG_GCJ])])
m4_ifndef([AC_LIBTOOL_LANG_C_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG])])
m4_ifndef([_LT_AC_LANG_C_CONFIG], [AC_DEFUN([_LT_AC_LANG_C_CONFIG])])
m4_ifndef([AC_LIBTOOL_LANG_CXX_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG])])
m4_ifndef([_LT_AC_LANG_CXX_CONFIG], [AC_DEFUN([_LT_AC_LANG_CXX_CONFIG])])
m4_ifndef([AC_LIBTOOL_LANG_F77_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_F77_CONFIG])])
m4_ifndef([_LT_AC_LANG_F77_CONFIG], [AC_DEFUN([_LT_AC_LANG_F77_CONFIG])])
m4_ifndef([AC_LIBTOOL_LANG_GCJ_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_GCJ_CONFIG])])
m4_ifndef([_LT_AC_LANG_GCJ_CONFIG], [AC_DEFUN([_LT_AC_LANG_GCJ_CONFIG])])
m4_ifndef([AC_LIBTOOL_LANG_RC_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_RC_CONFIG])])
m4_ifndef([_LT_AC_LANG_RC_CONFIG], [AC_DEFUN([_LT_AC_LANG_RC_CONFIG])])
m4_ifndef([AC_LIBTOOL_CONFIG], [AC_DEFUN([AC_LIBTOOL_CONFIG])])
m4_ifndef([_LT_AC_FILE_LTDLL_C], [AC_DEFUN([_LT_AC_FILE_LTDLL_C])])
m4_ifndef([_LT_REQUIRED_DARWIN_CHECKS], [AC_DEFUN([_LT_REQUIRED_DARWIN_CHECKS])])
m4_ifndef([_LT_AC_PROG_CXXCPP], [AC_DEFUN([_LT_AC_PROG_CXXCPP])])
m4_ifndef([_LT_PREPARE_SED_QUOTE_VARS], [AC_DEFUN([_LT_PREPARE_SED_QUOTE_VARS])])
m4_ifndef([_LT_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_PROG_ECHO_BACKSLASH])])
m4_ifndef([_LT_PROG_F77], [AC_DEFUN([_LT_PROG_F77])])
m4_ifndef([_LT_PROG_FC], [AC_DEFUN([_LT_PROG_FC])])
m4_ifndef([_LT_PROG_CXX], [AC_DEFUN([_LT_PROG_CXX])])

215
build/missing Executable file
View File

@ -0,0 +1,215 @@
#! /bin/sh
# Common wrapper for a few potentially missing GNU programs.
scriptversion=2018-03-07.03; # UTC
# Copyright (C) 1996-2018 Free Software Foundation, Inc.
# Originally written by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <https://www.gnu.org/licenses/>.
# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
# configuration script generated by Autoconf, you may include it under
# the same distribution terms that you use for the rest of that program.
if test $# -eq 0; then
echo 1>&2 "Try '$0 --help' for more information"
exit 1
fi
case $1 in
--is-lightweight)
# Used by our autoconf macros to check whether the available missing
# script is modern enough.
exit 0
;;
--run)
# Back-compat with the calling convention used by older automake.
shift
;;
-h|--h|--he|--hel|--help)
echo "\
$0 [OPTION]... PROGRAM [ARGUMENT]...
Run 'PROGRAM [ARGUMENT]...', returning a proper advice when this fails due
to PROGRAM being missing or too old.
Options:
-h, --help display this help and exit
-v, --version output version information and exit
Supported PROGRAM values:
aclocal autoconf autoheader autom4te automake makeinfo
bison yacc flex lex help2man
Version suffixes to PROGRAM as well as the prefixes 'gnu-', 'gnu', and
'g' are ignored when checking the name.
Send bug reports to <bug-automake@gnu.org>."
exit $?
;;
-v|--v|--ve|--ver|--vers|--versi|--versio|--version)
echo "missing $scriptversion (GNU Automake)"
exit $?
;;
-*)
echo 1>&2 "$0: unknown '$1' option"
echo 1>&2 "Try '$0 --help' for more information"
exit 1
;;
esac
# Run the given program, remember its exit status.
"$@"; st=$?
# If it succeeded, we are done.
test $st -eq 0 && exit 0
# Also exit now if we it failed (or wasn't found), and '--version' was
# passed; such an option is passed most likely to detect whether the
# program is present and works.
case $2 in --version|--help) exit $st;; esac
# Exit code 63 means version mismatch. This often happens when the user
# tries to use an ancient version of a tool on a file that requires a
# minimum version.
if test $st -eq 63; then
msg="probably too old"
elif test $st -eq 127; then
# Program was missing.
msg="missing on your system"
else
# Program was found and executed, but failed. Give up.
exit $st
fi
perl_URL=https://www.perl.org/
flex_URL=https://github.com/westes/flex
gnu_software_URL=https://www.gnu.org/software
program_details ()
{
case $1 in
aclocal|automake)
echo "The '$1' program is part of the GNU Automake package:"
echo "<$gnu_software_URL/automake>"
echo "It also requires GNU Autoconf, GNU m4 and Perl in order to run:"
echo "<$gnu_software_URL/autoconf>"
echo "<$gnu_software_URL/m4/>"
echo "<$perl_URL>"
;;
autoconf|autom4te|autoheader)
echo "The '$1' program is part of the GNU Autoconf package:"
echo "<$gnu_software_URL/autoconf/>"
echo "It also requires GNU m4 and Perl in order to run:"
echo "<$gnu_software_URL/m4/>"
echo "<$perl_URL>"
;;
esac
}
give_advice ()
{
# Normalize program name to check for.
normalized_program=`echo "$1" | sed '
s/^gnu-//; t
s/^gnu//; t
s/^g//; t'`
printf '%s\n' "'$1' is $msg."
configure_deps="'configure.ac' or m4 files included by 'configure.ac'"
case $normalized_program in
autoconf*)
echo "You should only need it if you modified 'configure.ac',"
echo "or m4 files included by it."
program_details 'autoconf'
;;
autoheader*)
echo "You should only need it if you modified 'acconfig.h' or"
echo "$configure_deps."
program_details 'autoheader'
;;
automake*)
echo "You should only need it if you modified 'Makefile.am' or"
echo "$configure_deps."
program_details 'automake'
;;
aclocal*)
echo "You should only need it if you modified 'acinclude.m4' or"
echo "$configure_deps."
program_details 'aclocal'
;;
autom4te*)
echo "You might have modified some maintainer files that require"
echo "the 'autom4te' program to be rebuilt."
program_details 'autom4te'
;;
bison*|yacc*)
echo "You should only need it if you modified a '.y' file."
echo "You may want to install the GNU Bison package:"
echo "<$gnu_software_URL/bison/>"
;;
lex*|flex*)
echo "You should only need it if you modified a '.l' file."
echo "You may want to install the Fast Lexical Analyzer package:"
echo "<$flex_URL>"
;;
help2man*)
echo "You should only need it if you modified a dependency" \
"of a man page."
echo "You may want to install the GNU Help2man package:"
echo "<$gnu_software_URL/help2man/>"
;;
makeinfo*)
echo "You should only need it if you modified a '.texi' file, or"
echo "any other file indirectly affecting the aspect of the manual."
echo "You might want to install the Texinfo package:"
echo "<$gnu_software_URL/texinfo/>"
echo "The spurious makeinfo call might also be the consequence of"
echo "using a buggy 'make' (AIX, DU, IRIX), in which case you might"
echo "want to install GNU make:"
echo "<$gnu_software_URL/make/>"
;;
*)
echo "You might have modified some files without having the proper"
echo "tools for further handling them. Check the 'README' file, it"
echo "often tells you about the needed prerequisites for installing"
echo "this package. You may also peek at any GNU archive site, in"
echo "case some other package contains this missing '$1' program."
;;
esac
}
give_advice "$1" | sed -e '1s/^/WARNING: /' \
-e '2,$s/^/ /' >&2
# Propagate the correct exit status (expected to be 127 for a program
# not found, 63 for a program that failed due to version mismatch).
exit $st
# Local variables:
# eval: (add-hook 'before-save-hook 'time-stamp)
# time-stamp-start: "scriptversion="
# time-stamp-format: "%:y-%02m-%02d.%02H"
# time-stamp-time-zone: "UTC0"
# time-stamp-end: "; # UTC"
# End:

148
build/test-driver Executable file
View File

@ -0,0 +1,148 @@
#! /bin/sh
# test-driver - basic testsuite driver script.
scriptversion=2018-03-07.03; # UTC
# Copyright (C) 2011-2018 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <https://www.gnu.org/licenses/>.
# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
# configuration script generated by Autoconf, you may include it under
# the same distribution terms that you use for the rest of that program.
# This file is maintained in Automake, please report
# bugs to <bug-automake@gnu.org> or send patches to
# <automake-patches@gnu.org>.
# Make unconditional expansion of undefined variables an error. This
# helps a lot in preventing typo-related bugs.
set -u
usage_error ()
{
echo "$0: $*" >&2
print_usage >&2
exit 2
}
print_usage ()
{
cat <<END
Usage:
test-driver --test-name=NAME --log-file=PATH --trs-file=PATH
[--expect-failure={yes|no}] [--color-tests={yes|no}]
[--enable-hard-errors={yes|no}] [--]
TEST-SCRIPT [TEST-SCRIPT-ARGUMENTS]
The '--test-name', '--log-file' and '--trs-file' options are mandatory.
END
}
test_name= # Used for reporting.
log_file= # Where to save the output of the test script.
trs_file= # Where to save the metadata of the test run.
expect_failure=no
color_tests=no
enable_hard_errors=yes
while test $# -gt 0; do
case $1 in
--help) print_usage; exit $?;;
--version) echo "test-driver $scriptversion"; exit $?;;
--test-name) test_name=$2; shift;;
--log-file) log_file=$2; shift;;
--trs-file) trs_file=$2; shift;;
--color-tests) color_tests=$2; shift;;
--expect-failure) expect_failure=$2; shift;;
--enable-hard-errors) enable_hard_errors=$2; shift;;
--) shift; break;;
-*) usage_error "invalid option: '$1'";;
*) break;;
esac
shift
done
missing_opts=
test x"$test_name" = x && missing_opts="$missing_opts --test-name"
test x"$log_file" = x && missing_opts="$missing_opts --log-file"
test x"$trs_file" = x && missing_opts="$missing_opts --trs-file"
if test x"$missing_opts" != x; then
usage_error "the following mandatory options are missing:$missing_opts"
fi
if test $# -eq 0; then
usage_error "missing argument"
fi
if test $color_tests = yes; then
# Keep this in sync with 'lib/am/check.am:$(am__tty_colors)'.
red='' # Red.
grn='' # Green.
lgn='' # Light green.
blu='' # Blue.
mgn='' # Magenta.
std='' # No color.
else
red= grn= lgn= blu= mgn= std=
fi
do_exit='rm -f $log_file $trs_file; (exit $st); exit $st'
trap "st=129; $do_exit" 1
trap "st=130; $do_exit" 2
trap "st=141; $do_exit" 13
trap "st=143; $do_exit" 15
# Test script is run here.
"$@" >$log_file 2>&1
estatus=$?
if test $enable_hard_errors = no && test $estatus -eq 99; then
tweaked_estatus=1
else
tweaked_estatus=$estatus
fi
case $tweaked_estatus:$expect_failure in
0:yes) col=$red res=XPASS recheck=yes gcopy=yes;;
0:*) col=$grn res=PASS recheck=no gcopy=no;;
77:*) col=$blu res=SKIP recheck=no gcopy=yes;;
99:*) col=$mgn res=ERROR recheck=yes gcopy=yes;;
*:yes) col=$lgn res=XFAIL recheck=no gcopy=yes;;
*:*) col=$red res=FAIL recheck=yes gcopy=yes;;
esac
# Report the test outcome and exit status in the logs, so that one can
# know whether the test passed or failed simply by looking at the '.log'
# file, without the need of also peaking into the corresponding '.trs'
# file (automake bug#11814).
echo "$res $test_name (exit status: $estatus)" >>$log_file
# Report outcome to console.
echo "${col}${res}${std}: $test_name"
# Register the test result, and other relevant metadata.
echo ":test-result: $res" > $trs_file
echo ":global-test-result: $res" >> $trs_file
echo ":recheck: $recheck" >> $trs_file
echo ":copy-in-global-log: $gcopy" >> $trs_file
# Local Variables:
# mode: shell-script
# sh-indentation: 2
# eval: (add-hook 'before-save-hook 'time-stamp)
# time-stamp-start: "scriptversion="
# time-stamp-format: "%:y-%02m-%02d.%02H"
# time-stamp-time-zone: "UTC0"
# time-stamp-end: "; # UTC"
# End:

93
config.h.in Normal file
View File

@ -0,0 +1,93 @@
/* config.h.in. Generated from configure.ac by autoheader. */
/* define if the Boost library is available */
#undef HAVE_BOOST
/* define if the Boost::System library is available */
#undef HAVE_BOOST_SYSTEM
/* define if the Boost::Timer library is available */
#undef HAVE_BOOST_TIMER
/* define if the compiler supports basic C++11 syntax */
#undef HAVE_CXX11
/* Define to 1 if you have the <dlfcn.h> header file. */
#undef HAVE_DLFCN_H
/* Define to 1 if you have the <inttypes.h> header file. */
#undef HAVE_INTTYPES_H
/* Define to 1 if you have the <memory.h> header file. */
#undef HAVE_MEMORY_H
/* Define to 1 if you have the <stdint.h> header file. */
#undef HAVE_STDINT_H
/* Define to 1 if you have the <stdlib.h> header file. */
#undef HAVE_STDLIB_H
/* Define to 1 if you have the <strings.h> header file. */
#undef HAVE_STRINGS_H
/* Define to 1 if you have the <string.h> header file. */
#undef HAVE_STRING_H
/* Define to 1 if you have the <sys/stat.h> header file. */
#undef HAVE_SYS_STAT_H
/* Define to 1 if you have the <sys/types.h> header file. */
#undef HAVE_SYS_TYPES_H
/* Define to 1 if you have the <unistd.h> header file. */
#undef HAVE_UNISTD_H
/* Define to the sub-directory where libtool stores uninstalled libraries. */
#undef LT_OBJDIR
/* Define to the address where bug reports for this package should be sent. */
#undef PACKAGE_BUGREPORT
/* Define to the full name of this package. */
#undef PACKAGE_NAME
/* Define to the full name and version of this package. */
#undef PACKAGE_STRING
/* Define to the one symbol short name of this package. */
#undef PACKAGE_TARNAME
/* Define to the home page for this package. */
#undef PACKAGE_URL
/* Define to the version of this package. */
#undef PACKAGE_VERSION
/* Define to omit deprecated API from the library. */
#undef SIGCXX_DISABLE_DEPRECATED
/* Major version number of sigc++. */
#undef SIGCXX_MAJOR_VERSION
/* Micro version number of sigc++. */
#undef SIGCXX_MICRO_VERSION
/* Minor version number of sigc++. */
#undef SIGCXX_MINOR_VERSION
/* does the C++ compiler support the use of a particular specialization when
calling operator() template methods. */
#undef SIGC_GCC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD
/* Define if the non-standard Sun reverse_iterator must be used. */
#undef SIGC_HAVE_SUN_REVERSE_ITERATOR
/* does the C++ compiler support the use of a particular specialization when
calling operator() template methods omitting the template keyword. */
#undef SIGC_MSVC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD
/* does the C++ preprocessor support pragma push_macro() and pop_macro(). */
#undef SIGC_PRAGMA_PUSH_POP_MACRO
/* Define to 1 if you have the ANSI C header files. */
#undef STDC_HEADERS

20908
configure vendored Executable file

File diff suppressed because it is too large Load Diff

99
configure.ac Normal file
View File

@ -0,0 +1,99 @@
## Copyright (c) 2009 Openismus GmbH <http://www.openismus.com/>
##
## This file is part of libsigc++.
##
## libsigc++ is free software: you can redistribute it and/or modify it
## under the terms of the GNU Lesser General Public License as published
## by the Free Software Foundation, either version 2.1 of the License,
## or (at your option) any later version.
##
## libsigc++ is distributed in the hope that it will be useful, but
## WITHOUT ANY WARRANTY; without even the implied warranty of
## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
## See the GNU Lesser General Public License for more details.
##
## You should have received a copy of the GNU Lesser General Public License
## along with this library. If not, see <http://www.gnu.org/licenses/>.
AC_INIT([libsigc++], [2.10.3],
[https://github.com/libsigcplusplus/libsigcplusplus/issues/],
[libsigc++], [https://libsigcplusplus.github.io/libsigcplusplus/])
AC_PREREQ([2.59])
AC_CONFIG_SRCDIR([sigc++/sigc++.h])
AC_CONFIG_AUX_DIR([build])
AC_CONFIG_MACRO_DIR([build])
AC_CONFIG_HEADERS([config.h sigc++config.h])
AM_INIT_AUTOMAKE([1.9 -Wno-portability check-news no-dist-gzip dist-xz tar-ustar no-define nostdinc])
# Support silent build rules.
# Disable by either passing --disable-silent-rules to configure or passing V=1 to make.
m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
AM_MAINTAINER_MODE
AC_ARG_VAR([ACLOCAL_FLAGS], [aclocal flags, e.g. -I <macro dir>])
MM_PREREQ([0.9.10])
MM_INIT_MODULE([sigc++-2.0])
MM_CONFIG_DOCTOOL_DIR([docs])
AC_PROG_CXX
MM_AX_CXX_COMPILE_STDCXX([11], [noext], [mandatory])
AC_DISABLE_STATIC
LT_INIT([win32-dll])
AC_ARG_VAR([M4], [M4 macro processor command])
AC_CHECK_PROGS([M4], [gm4 m4])
AS_IF([test "x$M4" = x],
[AC_MSG_FAILURE([[The GNU M4 macro processor is required for building libsigc++.]])])
MM_ARG_ENABLE_DOCUMENTATION
MM_ARG_WITH_TAGFILE_DOC([libstdc++.tag], [mm-common-libstdc++])
AC_LANG([C++])
SIGC_CXX_GCC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD
SIGC_CXX_MSVC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD
SIGC_CXX_PRAGMA_PUSH_POP_MACRO
SIGC_CXX_HAS_SUN_REVERSE_ITERATOR
AS_IF([test "x$config_error" = xyes],
[AC_MSG_FAILURE([[One or more of the required C++ compiler features is missing.]])])
# Evaluate the --enable-warnings=level option.
MM_ARG_ENABLE_WARNINGS([SIGC_WXXFLAGS],
[-Wall],
[-pedantic -Wall -Wextra -Wsuggest-override -Wshadow -Wzero-as-null-pointer-constant -Wformat-security])
# Offer the ability to omit some API from the library.
MM_ARG_DISABLE_DEPRECATED_API([SIGCXX])
AC_ARG_ENABLE(benchmark,
AS_HELP_STRING([--enable-benchmark=yes|no])
)
AM_CONDITIONAL([SIGC_BUILD_BENCHMARK], [test "x$enable_benchmark" = xyes])
AS_IF([test "x$enable_benchmark" = xyes],[
#Use boost::timer for our benchmark, if it's available.
# See http://www.gnu.org/software/autoconf-archive/ax_boost_base.html
# Boost System is needed by Boost Timer
AX_BOOST_BASE
AX_BOOST_SYSTEM
AX_BOOST_TIMER
])
AC_CONFIG_FILES([Makefile
${SIGCXX_MODULE_NAME}.pc:sigc++.pc.in
${SIGCXX_MODULE_NAME}-uninstalled.pc:sigc++-uninstalled.pc.in
sigc++/Makefile
examples/Makefile
tests/Makefile
docs/Makefile
docs/reference/Doxyfile
MSVC_NMake/sigc.rc])
# Copy the generated configuration headers into the MSVC project directories.
AC_CONFIG_COMMANDS([MSVC_NMake/sigc++config.h],
[cp -f sigc++config.h MSVC_NMake/sigc++config.h])
AC_OUTPUT

40
docs/Makefile.am Normal file
View File

@ -0,0 +1,40 @@
## Copyright (c) 2009 Openismus GmbH <http://www.openismus.com/>
##
## This file is part of libsigc++.
##
## libsigc++ is free software: you can redistribute it and/or modify it
## under the terms of the GNU Lesser General Public License as published
## by the Free Software Foundation, either version 2.1 of the License,
## or (at your option) any later version.
##
## libsigc++ is distributed in the hope that it will be useful, but
## WITHOUT ANY WARRANTY; without even the implied warranty of
## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
## See the GNU Lesser General Public License for more details.
##
## You should have received a copy of the GNU Lesser General Public License
## along with this library. If not, see <http://www.gnu.org/licenses/>.
include $(top_srcdir)/sigc++/filelist.am
book_name = libsigc++-$(SIGCXX_API_VERSION)
# For each header file, test whether it exists in the build directory.
# If it does, return its relative path. Otherwise, assume the file is
# present in the source directory and return the relative path to that
# location.
libsigc_h = $(sigc_public_h) $(sigc_built_h)
vp_select = $(or $(wildcard $(top_builddir)/sigc++/$(file)),$(top_srcdir)/sigc++/$(file))
vp_search = $(foreach file,$(libsigc_h),$(vp_select))
doc_input = $(if $(srcdir:.=),$(vp_search),$(addprefix $(top_builddir)/sigc++/,$(libsigc_h))) \
$(top_srcdir)/sigc++/sigc++.h
include $(top_srcdir)/build/doc-reference.am
doc_imagesdir = $(libdocdir)/images
dist_libdoc_DATA = index.html
dist_doc_images_DATA = images/libsigc_logo.gif images/top.gif
dist_noinst_DATA += doc-install.pl doc-postprocess.pl doxygen.css tagfile-to-devhelp2.xsl
include $(srcdir)/doc-manual.am

900
docs/Makefile.in Normal file
View File

@ -0,0 +1,900 @@
# Makefile.in generated by automake 1.16.1 from Makefile.am.
# @configure_input@
# Copyright (C) 1994-2018 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE.
@SET_MAKE@
VPATH = @srcdir@
am__is_gnu_make = { \
if test -z '$(MAKELEVEL)'; then \
false; \
elif test -n '$(MAKE_HOST)'; then \
true; \
elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
true; \
else \
false; \
fi; \
}
am__make_running_with_option = \
case $${target_option-} in \
?) ;; \
*) echo "am__make_running_with_option: internal error: invalid" \
"target option '$${target_option-}' specified" >&2; \
exit 1;; \
esac; \
has_opt=no; \
sane_makeflags=$$MAKEFLAGS; \
if $(am__is_gnu_make); then \
sane_makeflags=$$MFLAGS; \
else \
case $$MAKEFLAGS in \
*\\[\ \ ]*) \
bs=\\; \
sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
| sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
esac; \
fi; \
skip_next=no; \
strip_trailopt () \
{ \
flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
}; \
for flg in $$sane_makeflags; do \
test $$skip_next = yes && { skip_next=no; continue; }; \
case $$flg in \
*=*|--*) continue;; \
-*I) strip_trailopt 'I'; skip_next=yes;; \
-*I?*) strip_trailopt 'I';; \
-*O) strip_trailopt 'O'; skip_next=yes;; \
-*O?*) strip_trailopt 'O';; \
-*l) strip_trailopt 'l'; skip_next=yes;; \
-*l?*) strip_trailopt 'l';; \
-[dEDm]) skip_next=yes;; \
-[JT]) skip_next=yes;; \
esac; \
case $$flg in \
*$$target_option*) has_opt=yes; break;; \
esac; \
done; \
test $$has_opt = yes
am__make_dryrun = (target_option=n; $(am__make_running_with_option))
am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
pkgdatadir = $(datadir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkglibexecdir = $(libexecdir)/@PACKAGE@
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
install_sh_SCRIPT = $(install_sh) -c
INSTALL_HEADER = $(INSTALL_DATA)
transform = $(program_transform_name)
NORMAL_INSTALL = :
PRE_INSTALL = :
POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
subdir = docs
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/build/ax_boost_base.m4 \
$(top_srcdir)/build/ax_boost_system.m4 \
$(top_srcdir)/build/ax_boost_timer.m4 \
$(top_srcdir)/build/cxx.m4 $(top_srcdir)/build/cxx_std.m4 \
$(top_srcdir)/build/libtool.m4 \
$(top_srcdir)/build/ltoptions.m4 \
$(top_srcdir)/build/ltsugar.m4 \
$(top_srcdir)/build/ltversion.m4 \
$(top_srcdir)/build/lt~obsolete.m4 $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
DIST_COMMON = $(srcdir)/Makefile.am $(dist_doc_images_DATA) \
$(dist_html_tutorial_DATA) $(dist_libdoc_DATA) \
$(am__dist_noinst_DATA_DIST) $(dist_reference_DATA) \
$(am__DIST_COMMON)
mkinstalldirs = $(install_sh) -d
CONFIG_HEADER = $(top_builddir)/config.h \
$(top_builddir)/sigc++config.h
CONFIG_CLEAN_FILES =
CONFIG_CLEAN_VPATH_FILES =
AM_V_P = $(am__v_P_@AM_V@)
am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
am__v_P_0 = false
am__v_P_1 = :
AM_V_GEN = $(am__v_GEN_@AM_V@)
am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
am__v_GEN_0 = @echo " GEN " $@;
am__v_GEN_1 =
AM_V_at = $(am__v_at_@AM_V@)
am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
am__v_at_0 = @
am__v_at_1 =
SOURCES =
DIST_SOURCES =
am__can_run_installinfo = \
case $$AM_UPDATE_INFO_DIR in \
n|no|NO) false;; \
*) (install-info --version) >/dev/null 2>&1;; \
esac
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
am__vpath_adj = case $$p in \
$(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
*) f=$$p;; \
esac;
am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
am__install_max = 40
am__nobase_strip_setup = \
srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
am__nobase_strip = \
for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
am__nobase_list = $(am__nobase_strip_setup); \
for p in $$list; do echo "$$p $$p"; done | \
sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
$(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
if (++n[$$2] == $(am__install_max)) \
{ print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
END { for (dir in files) print dir, files[dir] }'
am__base_list = \
sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
am__uninstall_files_from_dir = { \
test -z "$$files" \
|| { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
|| { echo " ( cd '$$dir' && rm -f" $$files ")"; \
$(am__cd) "$$dir" && rm -f $$files; }; \
}
am__installdirs = "$(DESTDIR)$(doc_imagesdir)" \
"$(DESTDIR)$(html_tutorialdir)" "$(DESTDIR)$(libdocdir)" \
"$(DESTDIR)$(referencedir)"
am__dist_noinst_DATA_DIST = $(strip $(addprefix \
$(MMDOCTOOLDIR)/,doc-postprocess.pl doc-install.pl \
tagfile-to-devhelp2.xsl doxygen-extra.css) $(doc_dist_files)) \
doc-postprocess.pl doxygen.css manual/README \
manual/libsigc_manual.xml
DATA = $(dist_doc_images_DATA) $(dist_html_tutorial_DATA) \
$(dist_libdoc_DATA) $(dist_noinst_DATA) $(dist_reference_DATA)
am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
am__DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/doc-manual.am \
$(top_srcdir)/build/doc-reference.am \
$(top_srcdir)/sigc++/filelist.am
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
ACLOCAL_FLAGS = @ACLOCAL_FLAGS@
AMTAR = @AMTAR@
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
AR = @AR@
AS = @AS@
AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
BOOST_CPPFLAGS = @BOOST_CPPFLAGS@
BOOST_LDFLAGS = @BOOST_LDFLAGS@
BOOST_SYSTEM_LIB = @BOOST_SYSTEM_LIB@
BOOST_TIMER_LIB = @BOOST_TIMER_LIB@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
CXX = @CXX@
CXXCPP = @CXXCPP@
CXXDEPMODE = @CXXDEPMODE@
CXXFLAGS = @CXXFLAGS@
CYGPATH_W = @CYGPATH_W@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
DLLTOOL = @DLLTOOL@
DOCINSTALL_FLAGS = @DOCINSTALL_FLAGS@
DOT = @DOT@
DOXYGEN = @DOXYGEN@
DOXYGEN_TAGFILES = @DOXYGEN_TAGFILES@
DSYMUTIL = @DSYMUTIL@
DUMPBIN = @DUMPBIN@
ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
EXEEXT = @EXEEXT@
FGREP = @FGREP@
GREP = @GREP@
HAVE_CXX11 = @HAVE_CXX11@
INSTALL = @INSTALL@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
LD = @LD@
LDFLAGS = @LDFLAGS@
LIBOBJS = @LIBOBJS@
LIBS = @LIBS@
LIBTOOL = @LIBTOOL@
LIPO = @LIPO@
LN_S = @LN_S@
LTLIBOBJS = @LTLIBOBJS@
LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
M4 = @M4@
MAINT = @MAINT@
MAKEINFO = @MAKEINFO@
MANIFEST_TOOL = @MANIFEST_TOOL@
MKDIR_P = @MKDIR_P@
MMDOCTOOLDIR = @MMDOCTOOLDIR@
NM = @NM@
NMEDIT = @NMEDIT@
OBJDUMP = @OBJDUMP@
OBJEXT = @OBJEXT@
OTOOL = @OTOOL@
OTOOL64 = @OTOOL64@
PACKAGE = @PACKAGE@
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PERL = @PERL@
PKG_CONFIG = @PKG_CONFIG@
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
RANLIB = @RANLIB@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
SIGCXX_API_VERSION = @SIGCXX_API_VERSION@
SIGCXX_MAJOR_VERSION = @SIGCXX_MAJOR_VERSION@
SIGCXX_MICRO_VERSION = @SIGCXX_MICRO_VERSION@
SIGCXX_MINOR_VERSION = @SIGCXX_MINOR_VERSION@
SIGCXX_MODULE_NAME = @SIGCXX_MODULE_NAME@
SIGCXX_VERSION = @SIGCXX_VERSION@
SIGC_WXXFLAGS = @SIGC_WXXFLAGS@
STRIP = @STRIP@
VERSION = @VERSION@
XSLTPROC = @XSLTPROC@
abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@
abs_top_srcdir = @abs_top_srcdir@
ac_ct_AR = @ac_ct_AR@
ac_ct_CC = @ac_ct_CC@
ac_ct_CXX = @ac_ct_CXX@
ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
am__include = @am__include@
am__leading_dot = @am__leading_dot@
am__quote = @am__quote@
am__tar = @am__tar@
am__untar = @am__untar@
bindir = @bindir@
build = @build@
build_alias = @build_alias@
build_cpu = @build_cpu@
build_os = @build_os@
build_vendor = @build_vendor@
builddir = @builddir@
datadir = @datadir@
datarootdir = @datarootdir@
docdir = @docdir@
dvidir = @dvidir@
exec_prefix = @exec_prefix@
host = @host@
host_alias = @host_alias@
host_cpu = @host_cpu@
host_os = @host_os@
host_vendor = @host_vendor@
htmldir = @htmldir@
includedir = @includedir@
infodir = @infodir@
install_sh = @install_sh@
libdir = @libdir@
libexecdir = @libexecdir@
localedir = @localedir@
localstatedir = @localstatedir@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
pdfdir = @pdfdir@
prefix = @prefix@
program_transform_name = @program_transform_name@
psdir = @psdir@
runstatedir = @runstatedir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
# Base (./)
base_m4 = template.macros.m4 signal.h.m4 limit_reference.h.m4
base_built_cc =
base_built_h = signal.h limit_reference.h
# Functors (functors/)
functors_m4 = functor_trait.h.m4 slot.h.m4 ptr_fun.h.m4 mem_fun.h.m4
functors_built_cc =
functors_built_h = functor_trait.h slot.h ptr_fun.h mem_fun.h
# Adaptors (adaptors/)
adaptors_m4 = deduce_result_type.h.m4 adaptor_trait.h.m4 bind.h.m4 bind_return.h.m4 \
retype_return.h.m4 hide.h.m4 retype.h.m4 compose.h.m4 exception_catch.h.m4 \
track_obj.h.m4
adaptors_built_cc =
adaptors_built_h = deduce_result_type.h adaptor_trait.h bind.h bind_return.h \
retype_return.h hide.h retype.h compose.h exception_catch.h \
track_obj.h
# Lambda (adaptors/lambda)
lambda_m4 = base.h.m4 select.h.m4 lambda.cc.m4
lambda_built_cc = lambda.cc
lambda_built_h = base.h select.h
# Combine all the above parts with right directories prefixed
sigc_m4 = $(base_m4:%=macros/%) \
$(functors_m4:%=functors/macros/%) \
$(adaptors_m4:%=adaptors/macros/%) \
$(lambda_m4:%=adaptors/lambda/macros/%)
sigc_built_cc = $(base_built_cc) \
$(functors_built_cc:%=functors/%) \
$(adaptors_built_cc:%=adaptors/%) \
$(lambda_built_cc:%=adaptors/lambda/%)
sigc_built_h = $(base_built_h) \
$(functors_built_h:%=functors/%) \
$(adaptors_built_h:%=adaptors/%) \
$(lambda_built_h:%=adaptors/lambda/%)
sigc_public_h = \
bind.h \
bind_return.h \
connection.h \
reference_wrapper.h \
retype_return.h \
signal_base.h \
slot.h \
trackable.h \
type_traits.h \
visit_each.h \
adaptors/adaptors.h \
adaptors/bound_argument.h \
functors/functors.h \
functors/slot_base.h
sigc_sources_cc = \
signal_base.cc \
trackable.cc \
connection.cc \
functors/slot_base.cc \
adaptors/lambda/lambda.cc
book_name = libsigc++-$(SIGCXX_API_VERSION)
# For each header file, test whether it exists in the build directory.
# If it does, return its relative path. Otherwise, assume the file is
# present in the source directory and return the relative path to that
# location.
libsigc_h = $(sigc_public_h) $(sigc_built_h)
vp_select = $(or $(wildcard $(top_builddir)/sigc++/$(file)),$(top_srcdir)/sigc++/$(file))
vp_search = $(foreach file,$(libsigc_h),$(vp_select))
doc_input = $(if $(srcdir:.=),$(vp_search),$(addprefix $(top_builddir)/sigc++/,$(libsigc_h))) \
$(top_srcdir)/sigc++/sigc++.h
# Function: $(call vpath_listall,PATTERN ...)
# Get all filenames which match a PATTERN from the list. Look for files
# relative to either the current directory or $(srcdir). Strip $(srcdir)/
# again before returning and remove any duplicates.
vpath_srclist = $(patsubst $(srcdir)/%,%,$(wildcard $(addprefix $(srcdir)/,$(1))))
vpath_listall = $(sort $(wildcard $(1)) $(if $(srcdir:.=),$(vpath_srclist)))
# Installation directories.
libdocdir = $(datarootdir)/doc/$(book_name)
referencedir = $(libdocdir)/reference
htmlrefdir = $(referencedir)/html
devhelpdir = $(datadir)/devhelp/books/$(book_name)
@DIST_DOCTOOLS_FALSE@doctools_dist_files =
# Optionally, the documentation utilities may be included in source tarballs
# so that mm-common is only required when building in maintainer mode.
@DIST_DOCTOOLS_TRUE@doctools_dist_files = $(addprefix $(MMDOCTOOLDIR)/,doc-postprocess.pl doc-install.pl tagfile-to-devhelp2.xsl doxygen-extra.css)
@ENABLE_DOCUMENTATION_FALSE@doc_build_files =
@ENABLE_DOCUMENTATION_TRUE@doc_build_files = $(doxytagfile) $(devhelpfile)
@ENABLE_DOCUMENTATION_FALSE@doc_inst_targets =
@ENABLE_DOCUMENTATION_TRUE@doc_inst_targets = install-htmlref install-devhelp
@ENABLE_DOCUMENTATION_FALSE@doc_inst_files =
@ENABLE_DOCUMENTATION_TRUE@doc_inst_files = $(doxytagfile)
@ENABLE_DOCUMENTATION_FALSE@doc_dist_files =
@ENABLE_DOCUMENTATION_TRUE@doc_dist_files = $(devhelpfile) $(call vpath_listall,$(htmlref_patterns))
dist_reference_DATA = $(strip $(doc_inst_files))
dist_noinst_DATA = $(strip $(doctools_dist_files) $(doc_dist_files)) \
doc-install.pl doc-postprocess.pl doxygen.css \
tagfile-to-devhelp2.xsl manual/README \
manual/libsigc_manual.xml
DISTCLEANFILES = $(doc_outdir)/doxygen.log $(addprefix \
manual/libsigc_manual.,dvi pdf ps)
MAINTAINERCLEANFILES = $(doxytagfile) $(devhelpfile) \
$(doc_outdir)/html/* manual/html/*
# The generic bit of the doc-install.pl command line.
doc_install_cmd = $(doc_install) --verbose --mode=0644
# Transform $(datarootdir) into a URI to match MM_ARG_WITH_TAGFILE_DOC().
datarootdir_esc = $(subst $(subst ,, ),%20,$(subst \,/,$(datarootdir)))
docdir_base_uri = file:///$(patsubst /%,%,$(datarootdir_esc:/=))/doc
# The command and options used to install the files from the HTML reference
# documentation. The $(subst) magic translates external tag references from
# absolute to relative paths if the destination is on the local file system
# and installed under the same prefix as the package being built.
htmlref_relinst = $(subst @$(docdir_base_uri)/,@../../../,$(DOCINSTALL_FLAGS))
htmlref_install = $(doc_install_cmd) $(htmlref_relinst)
# The command and options used to install the Devhelp file.
devhelp_install = $(doc_install_cmd) --book-base='$(htmlrefdir:/=)'
# Helper variables to replicate each pattern with a $(srcdir)/ prefix.
# Also add quoting to prevent the shell from expanding the patterns.
htmlref_patterns_dup = $(foreach item,$(htmlref_patterns),'$(item)' '$(srcdir)/$(item)')
htmlref_patterns_quote = $(patsubst %,'%',$(htmlref_patterns))
htmlref_patterns_vpath = $(if $(srcdir:.=),$(htmlref_patterns_dup),$(htmlref_patterns_quote))
# Expand to a list of -name 'PATTERN' arguments for use with 'find'.
htmlref_find_patterns = $(patsubst %,-name '%' -o,$(notdir $(htmlref_patterns))) -false
# The parameters to the Doxygen-to-Devhelp XSLT script
dh_xsl_params = --stringparam book_title '$(book_title)' \
--stringparam book_name '$(book_name)' \
--stringparam book_base html
# Generated configuration files which, when updated, should cause the
# reference documentation to be rebuilt.
doc_config_deps = $(CONFIG_HEADER) $(srcdir)/$(doc_config).in $(srcdir)/Makefile.in
@MAINTAINER_MODE_FALSE@doc_dependencies =
# Regenerate the documentation automatically only in maintainer mode.
# Depend on the generated configuration header files to trigger a rebuild
# if a configuration value changed. The configuration header files only
# have their timestamp modified when the content actually changed, which
# is not the case for any other files generated by configure.
@MAINTAINER_MODE_TRUE@doc_dependencies = $(doc_config_deps) $(doc_input)
doc_imagesdir = $(libdocdir)/images
dist_libdoc_DATA = index.html
dist_doc_images_DATA = images/libsigc_logo.gif images/top.gif
html_tutorialdir = $(libdocdir)/tutorial/html
dist_html_tutorial_DATA = $(sort manual/html/index.html $(call vpath_listall,manual/html/*.html))
manual_srcfile = $(srcdir)/manual/libsigc_manual.xml
all: all-am
.SUFFIXES:
$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(top_srcdir)/sigc++/filelist.am $(top_srcdir)/build/doc-reference.am $(srcdir)/doc-manual.am $(am__configure_deps)
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
&& { if test -f $@; then exit 0; else break; fi; }; \
exit 1;; \
esac; \
done; \
echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu docs/Makefile'; \
$(am__cd) $(top_srcdir) && \
$(AUTOMAKE) --gnu docs/Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
*config.status*) \
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
*) \
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \
esac;
$(top_srcdir)/sigc++/filelist.am $(top_srcdir)/build/doc-reference.am $(srcdir)/doc-manual.am $(am__empty):
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(am__aclocal_m4_deps):
mostlyclean-libtool:
-rm -f *.lo
clean-libtool:
-rm -rf .libs _libs
install-dist_doc_imagesDATA: $(dist_doc_images_DATA)
@$(NORMAL_INSTALL)
@list='$(dist_doc_images_DATA)'; test -n "$(doc_imagesdir)" || list=; \
if test -n "$$list"; then \
echo " $(MKDIR_P) '$(DESTDIR)$(doc_imagesdir)'"; \
$(MKDIR_P) "$(DESTDIR)$(doc_imagesdir)" || exit 1; \
fi; \
for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
echo "$$d$$p"; \
done | $(am__base_list) | \
while read files; do \
echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(doc_imagesdir)'"; \
$(INSTALL_DATA) $$files "$(DESTDIR)$(doc_imagesdir)" || exit $$?; \
done
uninstall-dist_doc_imagesDATA:
@$(NORMAL_UNINSTALL)
@list='$(dist_doc_images_DATA)'; test -n "$(doc_imagesdir)" || list=; \
files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
dir='$(DESTDIR)$(doc_imagesdir)'; $(am__uninstall_files_from_dir)
install-dist_html_tutorialDATA: $(dist_html_tutorial_DATA)
@$(NORMAL_INSTALL)
@list='$(dist_html_tutorial_DATA)'; test -n "$(html_tutorialdir)" || list=; \
if test -n "$$list"; then \
echo " $(MKDIR_P) '$(DESTDIR)$(html_tutorialdir)'"; \
$(MKDIR_P) "$(DESTDIR)$(html_tutorialdir)" || exit 1; \
fi; \
for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
echo "$$d$$p"; \
done | $(am__base_list) | \
while read files; do \
echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(html_tutorialdir)'"; \
$(INSTALL_DATA) $$files "$(DESTDIR)$(html_tutorialdir)" || exit $$?; \
done
uninstall-dist_html_tutorialDATA:
@$(NORMAL_UNINSTALL)
@list='$(dist_html_tutorial_DATA)'; test -n "$(html_tutorialdir)" || list=; \
files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
dir='$(DESTDIR)$(html_tutorialdir)'; $(am__uninstall_files_from_dir)
install-dist_libdocDATA: $(dist_libdoc_DATA)
@$(NORMAL_INSTALL)
@list='$(dist_libdoc_DATA)'; test -n "$(libdocdir)" || list=; \
if test -n "$$list"; then \
echo " $(MKDIR_P) '$(DESTDIR)$(libdocdir)'"; \
$(MKDIR_P) "$(DESTDIR)$(libdocdir)" || exit 1; \
fi; \
for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
echo "$$d$$p"; \
done | $(am__base_list) | \
while read files; do \
echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(libdocdir)'"; \
$(INSTALL_DATA) $$files "$(DESTDIR)$(libdocdir)" || exit $$?; \
done
uninstall-dist_libdocDATA:
@$(NORMAL_UNINSTALL)
@list='$(dist_libdoc_DATA)'; test -n "$(libdocdir)" || list=; \
files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
dir='$(DESTDIR)$(libdocdir)'; $(am__uninstall_files_from_dir)
install-dist_referenceDATA: $(dist_reference_DATA)
@$(NORMAL_INSTALL)
@list='$(dist_reference_DATA)'; test -n "$(referencedir)" || list=; \
if test -n "$$list"; then \
echo " $(MKDIR_P) '$(DESTDIR)$(referencedir)'"; \
$(MKDIR_P) "$(DESTDIR)$(referencedir)" || exit 1; \
fi; \
for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
echo "$$d$$p"; \
done | $(am__base_list) | \
while read files; do \
echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(referencedir)'"; \
$(INSTALL_DATA) $$files "$(DESTDIR)$(referencedir)" || exit $$?; \
done
uninstall-dist_referenceDATA:
@$(NORMAL_UNINSTALL)
@list='$(dist_reference_DATA)'; test -n "$(referencedir)" || list=; \
files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
dir='$(DESTDIR)$(referencedir)'; $(am__uninstall_files_from_dir)
tags TAGS:
ctags CTAGS:
cscope cscopelist:
distdir: $(BUILT_SOURCES)
$(MAKE) $(AM_MAKEFLAGS) distdir-am
distdir-am: $(DISTFILES)
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
list='$(DISTFILES)'; \
dist_files=`for file in $$list; do echo $$file; done | \
sed -e "s|^$$srcdirstrip/||;t" \
-e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
case $$dist_files in \
*/*) $(MKDIR_P) `echo "$$dist_files" | \
sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
sort -u` ;; \
esac; \
for file in $$dist_files; do \
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
if test -d $$d/$$file; then \
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
if test -d "$(distdir)/$$file"; then \
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \
cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
else \
test -f "$(distdir)/$$file" \
|| cp -p $$d/$$file "$(distdir)/$$file" \
|| exit 1; \
fi; \
done
check-am: all-am
check: check-am
all-am: Makefile $(DATA) all-local
installdirs:
for dir in "$(DESTDIR)$(doc_imagesdir)" "$(DESTDIR)$(html_tutorialdir)" "$(DESTDIR)$(libdocdir)" "$(DESTDIR)$(referencedir)"; do \
test -z "$$dir" || $(MKDIR_P) "$$dir"; \
done
install: install-am
install-exec: install-exec-am
install-data: install-data-am
uninstall: uninstall-am
install-am: all-am
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
installcheck: installcheck-am
install-strip:
if test -z '$(STRIP)'; then \
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
install; \
else \
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
"INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
fi
mostlyclean-generic:
clean-generic:
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@echo "it deletes files that may require special tools to rebuild."
-test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
clean: clean-am
clean-am: clean-generic clean-libtool mostlyclean-am
distclean: distclean-am
-rm -f Makefile
distclean-am: clean-am distclean-generic
dvi: dvi-am
dvi-am:
html: html-am
html-am:
info: info-am
info-am:
install-data-am: install-data-local install-dist_doc_imagesDATA \
install-dist_html_tutorialDATA install-dist_libdocDATA \
install-dist_referenceDATA
install-dvi: install-dvi-am
install-dvi-am:
install-exec-am:
install-html: install-html-am
install-html-am:
install-info: install-info-am
install-info-am:
install-man:
install-pdf: install-pdf-am
install-pdf-am:
install-ps: install-ps-am
install-ps-am:
installcheck-am:
maintainer-clean: maintainer-clean-am
-rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic
mostlyclean: mostlyclean-am
mostlyclean-am: mostlyclean-generic mostlyclean-libtool
pdf: pdf-am
pdf-am:
ps: ps-am
ps-am:
uninstall-am: uninstall-dist_doc_imagesDATA \
uninstall-dist_html_tutorialDATA uninstall-dist_libdocDATA \
uninstall-dist_referenceDATA uninstall-local
.MAKE: install-am install-strip
.PHONY: all all-am all-local check check-am clean clean-generic \
clean-libtool cscopelist-am ctags-am distclean \
distclean-generic distclean-libtool distdir dvi dvi-am html \
html-am info info-am install install-am install-data \
install-data-am install-data-local install-dist_doc_imagesDATA \
install-dist_html_tutorialDATA install-dist_libdocDATA \
install-dist_referenceDATA install-dvi install-dvi-am \
install-exec install-exec-am install-html install-html-am \
install-info install-info-am install-man install-pdf \
install-pdf-am install-ps install-ps-am install-strip \
installcheck installcheck-am installdirs maintainer-clean \
maintainer-clean-generic mostlyclean mostlyclean-generic \
mostlyclean-libtool pdf pdf-am ps ps-am tags-am uninstall \
uninstall-am uninstall-dist_doc_imagesDATA \
uninstall-dist_html_tutorialDATA uninstall-dist_libdocDATA \
uninstall-dist_referenceDATA uninstall-local
.PRECIOUS: Makefile
# The name of the sub-directory where the generated documentation
# will be placed.
doc_outdir ?= reference
# The name of the Doxygen configuration file.
doc_config ?= $(doc_outdir)/Doxyfile
# The title of the generated Devhelp book.
book_title ?= $(PACKAGE_NAME) Reference Manual
# A list of wildcard patterns matching the files from the HTML directory
# generated by Doxygen which should be distributed and installed.
htmlref_patterns ?= $(addprefix $(doc_outdir)/html/*.,css gif html js png)
# Locations of utilities shipped with glibmm. Made overridable
# in case the installed utilities cannot be used for some reason.
doc_postprocess ?= $(PERL) -- "$(MMDOCTOOLDIR)/doc-postprocess.pl"
doc_install ?= $(PERL) -- "$(MMDOCTOOLDIR)/doc-install.pl"
tagfile_to_devhelp2 ?= "$(MMDOCTOOLDIR)/tagfile-to-devhelp2.xsl"
# Names of the main output files.
doxytagfile ?= $(doc_outdir)/$(book_name).tag
devhelpfile ?= $(doc_outdir)/$(book_name).devhelp2
# Export this variable for use in the Doxygen configuration file.
export MMDOCTOOLDIR
# Depend on files that we know shall be built.
# $(call vpath_listall,$(htmlref_patterns)) is not used as a prerequisite.
# It would expand to files that exist when the make command is issued,
# which is not necessarily the set of files that shall be built.
all-local: $(doc_build_files)
# Hook up custom rules for translating references to external documentation
# to the actual location at install time.
install-data-local: $(doc_inst_targets)
# Hook up corresponding custom uninstall rules.
uninstall-local: $(addprefix un,$(doc_inst_targets))
# Install the HTML reference documentation files with just one invocation
# of doc-install.pl to speed up the build process. Make use of the --glob
# option, which tells it to perform filename globbing itself, like 'find'.
# This helps to avoid excessively long command lines, as some platforms
# have rather restrictive limits.
install-htmlref: $(doc_outdir)/html/index.html
@$(NORMAL_INSTALL)
$(MKDIR_P) '$(DESTDIR)$(htmlrefdir)'
$(htmlref_install) -t '$(DESTDIR)$(htmlrefdir)' --glob -- $(htmlref_patterns_vpath)
# Delete files from the html installation directory. Avoid recursive
# directory removal, and apply the same wildcard pattern as was used to
# select files for installation.
uninstall-htmlref:
@$(NORMAL_UNINSTALL)
(cd '$(DESTDIR)$(htmlrefdir)' 2>/dev/null || exit 0; \
find . -type f '(' $(htmlref_find_patterns) ')' -exec rm -f '{}' '+')
-test ! -r '$(DESTDIR)$(htmlrefdir)' || rmdir '$(DESTDIR)$(htmlrefdir)'
# Install the Devhelp file, translating the base path on the fly.
install-devhelp: $(devhelpfile)
@$(NORMAL_INSTALL)
$(MKDIR_P) '$(DESTDIR)$(devhelpdir)'
$(devhelp_install) -t '$(DESTDIR)$(devhelpdir)' -- $^
# Remove the installed Devhelp file and directory.
uninstall-devhelp:
@$(NORMAL_UNINSTALL)
rm -f '$(DESTDIR)$(devhelpdir)/$(notdir $(devhelpfile))'
-test ! -r '$(DESTDIR)$(devhelpdir)' || rmdir '$(DESTDIR)$(devhelpdir)'
# Regenerate the Doxygen configuration file automatically. In the
# top-level build directory Automake already takes care of this.
ifneq ($(subdir),.)
$(doc_config): $(srcdir)/$(doc_config).in $(top_builddir)/config.status
$(AM_V_GEN)cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
endif
# Make sure that the documentation will always have been generated before
# executing commands of a rule that depends on files in $(doc_outdir)/html/.
$(doc_outdir)/html/%: | $(doxytagfile)
# Run Doxygen to build the reference documentation. The generated tag file
# also functions as time stamp target for the documentation as a whole.
$(doxytagfile): $(doc_dependencies) | $(doc_config)
-$(AM_V_at)rm -f $@
-$(AM_V_at)rm -fr $(doc_outdir)/html
$(AM_V_GEN)(echo '@INCLUDE =' $(doc_config) && echo 'INPUT =' $(doc_input)) | "$(DOXYGEN)" -
$(AM_V_at)$(doc_postprocess) '$(doc_outdir)/html/*.html'
# Run XSL transformation to generate a Devhelp book from a Doxygen tag file.
%.devhelp2: %.tag
$(AM_V_GEN)$(XSLTPROC) $(dh_xsl_params) -o $@ $(tagfile_to_devhelp2) $<
.PHONY: install-htmlref uninstall-htmlref install-devhelp uninstall-devhelp
# Instruct GNU make to delete the targets of a rule after it failed, in
# order to avoid the complication of handling that situation manually.
.DELETE_ON_ERROR:
DOCBOOK_STYLESHEET ?= http://docbook.sourceforge.net/release/xsl/current/html/chunk.xsl
# Make sure that the documentation will always have been generated before
# executing the commands of a rule that depends on files in reference/html/.
reference/html/%: | manual/html/index.html
manual/html/index.html: $(manual_srcfile)
-$(AM_V_at)rm -f manual/html/*
$(AM_V_at)$(MKDIR_P) manual/html
$(AM_V_GEN)xsltproc -o manual/html/ --catalogs '$(DOCBOOK_STYLESHEET)' $(manual_srcfile)
manual/libsigc_manual.dvi: $(manual_srcfile)
$(AM_V_GEN)db2dvi -o manual $(manual_srcfile)
manual/libsigc_manual.pdf: $(manual_srcfile)
$(AM_V_GEN)db2pdf -o manual $(manual_srcfile)
manual/libsigc_manual.ps: $(manual_srcfile)
$(AM_V_GEN)db2ps -o manual $(manual_srcfile)
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:

222
docs/doc-install.pl Normal file
View File

@ -0,0 +1,222 @@
package main;
# Copyright (c) 2009 Openismus GmbH <http://www.openismus.com/>
#
# This file is part of mm-common.
#
# mm-common is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published
# by the Free Software Foundation, either version 2 of the License,
# or (at your option) any later version.
#
# mm-common is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with mm-common. If not, see <http://www.gnu.org/licenses/>.
use strict;
use warnings;
use bytes;
use File::Glob qw(:glob);
use File::Spec;
use Getopt::Long qw(:config no_getopt_compat no_ignore_case require_order bundling);
# Globals
my $message_prefix;
my %tags_hash;
my $book_base;
my $perm_mode;
my $target_dir;
my $target_nodir = '';
my $expand_glob = '';
my $verbose = '';
sub path_basename ($)
{
my ($path) = @_;
my $basename = File::Spec->splitpath($path);
return $basename;
}
sub exit_help ()
{
my $script_name = path_basename($0) || 'doc-install.pl';
print <<"EOF";
Usage: perl $script_name [OPTION]... [-T] SOURCE DEST
or: perl $script_name [OPTION]... SOURCE... DIRECTORY
or: perl $script_name [OPTION]... -t DIRECTORY SOURCE...
Copy SOURCE to DEST or multiple SOURCE files to the existing DIRECTORY,
while setting permission modes. For HTML files, translate references to
external documentation.
Mandatory arguments to long options are mandatory for short options, too.
--book-base=BASEPATH use reference BASEPATH for Devhelp book
-l, --tag-base=TAGFILE\@BASEPATH use BASEPATH for references from TAGFILE
-m, --mode=MODE override file permission MODE (octal)
-t, --target-directory=DIRECTORY copy all SOURCE arguments into DIRECTORY
-T, --no-target-directory treat DEST as normal file
--glob expand SOURCE as filename glob pattern
-v, --verbose enable informational messages
-?, --help display this help and exit
EOF
exit;
}
sub notice (@)
{
print($message_prefix, @_, "\n") if ($verbose);
}
sub warning (@)
{
print STDERR ($message_prefix, @_, "\n");
}
sub error (@)
{
warning(@_);
exit 1;
}
# Copy file to destination while translating references on the fly.
# Sniff the content for the file type, as it is always read in anyway.
sub install_file ($$$)
{
my ($in_name, $out_name, $basename) = @_;
my ($in, $out, $buf);
{
local $/; # slurp mode: read entire file into buffer
open($in, '<', $in_name) and binmode($in) and defined($buf = <$in>) and close($in)
or error('Failed to read ', $basename, ': ', $!);
}
if (%tags_hash and $buf =~ m/\A(?> \s*)(?> (?> <[?!][^<]+ )* )<html[>\s]/sx)
{
my $count = 0;
my $total = $buf =~
s!(?<= \s) doxygen="((?> [^:"]+)):((?> [^"]*))" # doxygen="(TAGFILE):(BASEPATH)"
(?> \s+) ((?> href|src) =") \2 ((?> [^"]*)") # (href|src=")BASEPATH(RELPATH")
! $3 . ((exists $tags_hash{$1}) ? (++$count, $tags_hash{$1}) : $2) . $4
!egsx;
my $change = $total ? "rewrote $count of $total"
: 'no';
notice('Translating ', $basename, ' (', $change, ' references)');
}
elsif (defined($book_base) and $buf =~ m/\A(?> \s*)(?> (?> <[?!][^<]+ )* )<book\s/sx)
{
# Substitute new value for attribute "base" of element <book>
my $change = $buf =~ s/(<book \s [^<>]*? \b base=") (?> [^"]*) (?= ")/$1$book_base/sx
? 'rewrote base path'
: 'base path not set';
notice('Translating ', $basename, ' (', $change, ')');
}
else
{
notice('Copying ', $basename);
}
# Avoid inheriting permissions of existing file
unlink($out_name);
open($out, '>', $out_name) and binmode($out) and print $out ($buf) and close($out)
or error('Failed to write ', $basename, ': ', $!);
chmod($perm_mode, $out_name)
or warning('Failed to set ', $basename, ' permissions: ', $!);
}
# Split TAGFILE@BASEPATH argument into key/value pair
sub split_key_value ($)
{
my ($mapping) = @_;
my ($name, $path) = split(m'@', $mapping, 2);
error('Invalid base path mapping: ', $mapping) unless (defined($name) and $name ne '');
if (defined $path)
{
notice('Using base path ', $path, ' for tag file ', $name);
return ($name, $path);
}
notice('Not changing base path for tag file ', $name);
return ();
}
# Define line leader of log messages
$message_prefix = path_basename($0);
$message_prefix =~ s/\.[^.]*$//s if (defined $message_prefix);
$message_prefix = ($message_prefix || 'doc-install') . ': ';
# Process command-line options
{
my @tags = ();
my $mode = '0644';
GetOptions('book-base=s' => \$book_base,
'tag-base|l=s' => \@tags,
'mode|m=s' => \$mode,
'target-directory|t=s' => \$target_dir,
'no-target-directory|T' => \$target_nodir,
'glob' => \$expand_glob,
'verbose|v' => \$verbose,
'help|?' => \&exit_help)
or exit 2;
error('Invalid permission mode: ', $mode) unless ($mode =~ m/^[0-7]+$/s);
$perm_mode = oct($mode);
%tags_hash = map(split_key_value($_), @tags);
}
notice('Using base path ', $book_base, ' for Devhelp book') if (defined $book_base);
if ($target_nodir)
{
error('Conflicting target directory options') if (defined $target_dir);
error('Source and destination filenames expected') unless ($#ARGV == 1);
error('Filename globbing requires target directory') if ($expand_glob);
install_file($ARGV[0], $ARGV[1], path_basename($ARGV[1]));
exit;
}
unless (defined $target_dir)
{
if (!$expand_glob and $#ARGV == 1)
{
my $basename = path_basename($ARGV[1]);
if (defined($basename) and $basename ne '')
{
install_file($ARGV[0], $ARGV[1], $basename);
exit;
}
}
$target_dir = pop(@ARGV);
}
error('No target directory specified') unless (defined($target_dir) and $target_dir ne '');
@ARGV = map(bsd_glob($_, GLOB_NOSORT), @ARGV) if ($expand_glob);
my %basename_hash = ();
foreach my $in_name (@ARGV)
{
my $basename = path_basename($in_name);
# If there are multiple files with the same base name in the list, only
# the first one will be installed. This behavior makes it very easy to
# implement a VPATH search for each individual file.
unless (exists $basename_hash{$basename})
{
$basename_hash{$basename} = undef;
my $out_name = File::Spec->catfile($target_dir, $basename);
install_file($in_name, $out_name, $basename);
}
}
exit;

46
docs/doc-manual.am Normal file
View File

@ -0,0 +1,46 @@
## Copyright (c) 2009 Openismus GmbH <http://www.openismus.com/>
##
## This file is part of libsigc++.
##
## libsigc++ is free software: you can redistribute it and/or modify it
## under the terms of the GNU Lesser General Public License as published
## by the Free Software Foundation, either version 2.1 of the License,
## or (at your option) any later version.
##
## libsigc++ is distributed in the hope that it will be useful, but
## WITHOUT ANY WARRANTY; without even the implied warranty of
## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
## See the GNU Lesser General Public License for more details.
##
## You should have received a copy of the GNU Lesser General Public License
## along with this library. If not, see <http://www.gnu.org/licenses/>.
DOCBOOK_STYLESHEET ?= http://docbook.sourceforge.net/release/xsl/current/html/chunk.xsl
html_tutorialdir = $(libdocdir)/tutorial/html
dist_html_tutorial_DATA = $(sort manual/html/index.html $(call vpath_listall,manual/html/*.html))
dist_noinst_DATA += manual/README manual/libsigc_manual.xml
DISTCLEANFILES += $(addprefix manual/libsigc_manual.,dvi pdf ps)
MAINTAINERCLEANFILES += manual/html/*
manual_srcfile = $(srcdir)/manual/libsigc_manual.xml
# Make sure that the documentation will always have been generated before
# executing the commands of a rule that depends on files in reference/html/.
reference/html/%: | manual/html/index.html
manual/html/index.html: $(manual_srcfile)
-$(AM_V_at)rm -f manual/html/*
$(AM_V_at)$(MKDIR_P) manual/html
$(AM_V_GEN)xsltproc -o manual/html/ --catalogs '$(DOCBOOK_STYLESHEET)' $(manual_srcfile)
manual/libsigc_manual.dvi: $(manual_srcfile)
$(AM_V_GEN)db2dvi -o manual $(manual_srcfile)
manual/libsigc_manual.pdf: $(manual_srcfile)
$(AM_V_GEN)db2pdf -o manual $(manual_srcfile)
manual/libsigc_manual.ps: $(manual_srcfile)
$(AM_V_GEN)db2ps -o manual $(manual_srcfile)

126
docs/doc-postprocess.pl Normal file
View File

@ -0,0 +1,126 @@
package main;
# Copyright (c) 2009 Openismus GmbH <http://www.openismus.com/>
#
# This file is part of mm-common.
#
# mm-common is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published
# by the Free Software Foundation, either version 2 of the License,
# or (at your option) any later version.
#
# mm-common is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with mm-common. If not, see <http://www.gnu.org/licenses/>.
use strict;
use warnings;
use bytes;
use File::Glob qw(:glob);
use File::Spec;
use Getopt::Long qw(:config no_getopt_compat no_ignore_case require_order bundling);
sub path_basename ($)
{
my ($path) = @_;
my $basename = File::Spec->splitpath($path);
return $basename;
}
sub exit_help ()
{
my $script_name = path_basename($0) || 'doc-postprocess.pl';
print <<"EOF";
Usage: perl $script_name [OPTION]... [PATTERN]...
Post-process the Doxygen-generated HTML files matching PATTERN.
Options:
-?, --help display this help and exit
EOF
exit;
}
sub error (@)
{
my $script_name = path_basename($0);
$script_name =~ s/\.[^.]*$//s if (defined $script_name);
print STDERR ($script_name || 'doc-postprocess', ': ', @_, "\n");
exit 1;
}
GetOptions('help|?' => \&exit_help)
or exit 2;
foreach my $filename (map(bsd_glob($_, GLOB_NOSORT), @ARGV))
{
my @buf;
my $file;
open($file, '<', $filename) and (@buf = <$file>) and close($file)
or error('Failed to read ', path_basename($filename), ': ', $!);
foreach (@buf)
{
if (/<a class="el"/)
{
# return value
s/ &amp;&nbsp; */&amp;&#160;/;
s/ \*&nbsp; */*&#160;/;
# parameters
s/ &amp;/&amp;/g;
s/&amp;\b/&amp; /g;
s/ \*/*/g;
s/\*\b/* /g;
# templates
s/\btemplate&lt;/template &lt;/;
}
elsif (/<td class="md(?:name)?"/)
{
# left parenthesis
s/\(&nbsp; */(/;
# return value
s/ &amp; /&amp; /g;
s/ \* /* /g;
# parameters
s/ &amp;&nbsp; */&amp;&#160;/g;
s/ \*&nbsp; */*&#160;/g;
# templates
s/\btemplate&lt;/template &lt;/;
}
else
{
# template decls
s/^(<h\d>|)template&lt;/$1template &lt;/;
}
# For some reason, recent versions of Doxygen output the full path to
# referenced tag files. This is bad since it breaks doc-install.pl,
# and also because it leaks local path names into source tarballs.
# Thus, strip the directory prefix here.
s| doxygen="[^":]*/([^":]+\.tag):| doxygen="$1:|g;
s/&copy;/&#169;/g;
s/&mdash;/&#8212;/g;
s/&ndash;/&#8211;/g;
s/ *&nbsp; */&#160;/g;
}
# write the whole buffer back
open($file, '>', $filename) and print $file (@buf) and close($file)
or error('Failed to write ', path_basename($filename), ': ', $!);
}
exit;

263
docs/doxygen-extra.css Normal file
View File

@ -0,0 +1,263 @@
/* GNOME C++ bindings Doxygen style */
/* Use in Doxyfile.in
* HTML_EXTRA_STYLESHEET = "$(MMDOCTOOLDIR)/doxygen-extra.css"
*/
html, body {
background: #FFFFFF;
color: #222222;
margin: 0;
}
body {
font: normal 90%/150% sans-serif;
padding: 1.5em;
min-width: 28em;
}
table {
font-size: inherit;
}
img {
border-style: none;
}
address img {
vertical-align: middle;
}
h1 {
font-size: 150%;
line-height: 120%;
text-align: center;
}
h2 {
font-size: 120%;
}
h3 {
font-size: 100%;
}
h1 + h3 {
text-align: center;
}
.navpath {
display: none;
}
caption {
font-weight: bold;
}
p, dl {
margin: 0.75em 0;
}
.center {
text-align: center;
}
div.qindex {
width: 100%;
line-height: 140%;
background-color: #E8EEF2;
border: 1px solid #84B0C7;
text-align: center;
margin: 0.2em;
padding: 0.2em;
}
a {
color: #153788;
font-weight: normal;
text-decoration: none;
}
.contents a:visited {
color: #1B77C5;
}
a:hover {
text-decoration: underline;
}
a.el, a.qindex {
font-weight: bold;
}
dl.el {
margin-left: -1.5em;
}
code, .fragment {
font-family: monospace, fixed;
}
pre.fragment, div.fragment {
background-color: #EEEEFF;
border: 1px solid #AAAAFF;
padding: 0.5em;
margin: 0.375em 0.75em 0.375em 0.2em;
}
div.fragment > pre.fragment {
border-style: none;
padding: 0;
margin: 0;
}
div.line {
white-space: pre;
}
div.ah {
background-color: #000000;
color: #FFFFFF;
font-weight: bold;
margin: 0.2em 0;
}
.indexkey, .indexvalue {
background-color: #E8EEF2;
border: 1px solid #CCCCCC;
margin: 0.2em 0;
padding: 0.2em 0.75em;
}
.indexkey {
font-weight: bold;
}
.memlist {
background-color: #F0F0F0;
}
span.keyword {
color: #008000;
}
span.keywordtype {
color: #604020;
}
span.keywordflow {
color: #E08000;
}
span.comment {
color: #800000;
}
span.preprocessor {
color: #806020;
}
span.stringliteral {
color: #002080;
}
span.charliteral {
color: #008080;
}
.tiny {
font-size: 80%;
}
hr {
height: 0;
border: none;
border-top: 1px solid #666666;
}
.mdescLeft, .mdescRight, .memItemLeft, .memItemRight,
.memTemplItemLeft, .memTemplItemRight, .memTemplParams {
background-color: #FAFAFA;
border: none;
margin: 0.375em;
padding: 0.125em 0 0 0.75em;
}
.mdescLeft, .mdescRight {
padding: 0 0.75em 0.375em;
color: #555555;
}
.memItemLeft, .memItemRight, .memTemplParams {
border-top: 1px solid #CCCCCC;
}
.memTemplParams {
color: #606060;
}
.memtemplate {
color: #606060;
font-size: 90%;
font-weight: normal;
margin-left: 0.2em;
}
.memnav {
background-color: #E8EEF2;
border: 1px solid #84B0C7;
text-align: center;
margin: 0.2em 1em 0.2em 0;
padding: 0.2em;
}
.memitem {
margin: 0.5em 0;
padding: 0;
}
.memname {
white-space: nowrap;
font-weight: bold;
line-height: 120%;
}
.memproto, .memdoc {
border: 1px solid #84B0C7;
}
.memproto {
padding: 0;
background-color: #D5E1E8;
font-weight: bold;
-webkit-border-top-left-radius: 1ex;
-webkit-border-top-right-radius: 1ex;
-moz-border-radius-topleft: 1ex;
-moz-border-radius-topright: 1ex;
}
.memdoc {
padding: 0.2em 0.5em;
background-color: #EEF3F5;
border-top-width: 0;
-webkit-border-bottom-left-radius: 1ex;
-webkit-border-bottom-right-radius: 1ex;
-moz-border-radius-bottomleft: 1ex;
-moz-border-radius-bottomright: 1ex;
}
.paramkey {
text-align: right;
}
.paramtype {
white-space: nowrap;
}
.paramname {
color: #602020;
white-space: nowrap;
}
.paramname em {
font-style: normal;
}

267
docs/doxygen.css Normal file
View File

@ -0,0 +1,267 @@
/* GNOME C++ bindings Doxygen style */
/* This file is deprecated.
* In Doxyfile.in you should use
* HTML_EXTRA_STYLESHEET = "$(MMDOCTOOLDIR)/doxygen-extra.css"
* instead of
* HTML_STYLESHEET = "$(MMDOCTOOLDIR)/doxygen.css"
* See https://mail.gnome.org/archives/gtkmm-list/2014-August/msg00022.html
*/
html, body {
background: #FFFFFF;
color: #222222;
margin: 0;
}
body {
font: normal 90%/150% sans-serif;
padding: 1.5em;
min-width: 28em;
}
table {
font-size: inherit;
}
img {
border-style: none;
}
address img {
vertical-align: middle;
}
h1 {
font-size: 150%;
line-height: 120%;
text-align: center;
}
h2 {
font-size: 120%;
}
h3 {
font-size: 100%;
}
h1 + h3 {
text-align: center;
}
.navpath {
display: none;
}
caption {
font-weight: bold;
}
p, dl {
margin: 0.75em 0;
}
.center {
text-align: center;
}
div.qindex {
width: 100%;
line-height: 140%;
background-color: #E8EEF2;
border: 1px solid #84B0C7;
text-align: center;
margin: 0.2em;
padding: 0.2em;
}
a {
color: #153788;
font-weight: normal;
text-decoration: none;
}
.contents a:visited {
color: #1B77C5;
}
a:hover {
text-decoration: underline;
}
a.el, a.qindex {
font-weight: bold;
}
dl.el {
margin-left: -1.5em;
}
code, .fragment {
font-family: monospace, fixed;
}
pre.fragment, div.fragment {
background-color: #EEEEFF;
border: 1px solid #AAAAFF;
padding: 0.5em;
margin: 0.375em 0.75em 0.375em 0.2em;
}
div.fragment > pre.fragment {
border-style: none;
padding: 0;
margin: 0;
}
div.line {
white-space: pre;
}
div.ah {
background-color: #000000;
color: #FFFFFF;
font-weight: bold;
margin: 0.2em 0;
}
.indexkey, .indexvalue {
background-color: #E8EEF2;
border: 1px solid #CCCCCC;
margin: 0.2em 0;
padding: 0.2em 0.75em;
}
.indexkey {
font-weight: bold;
}
.memlist {
background-color: #F0F0F0;
}
span.keyword {
color: #008000;
}
span.keywordtype {
color: #604020;
}
span.keywordflow {
color: #E08000;
}
span.comment {
color: #800000;
}
span.preprocessor {
color: #806020;
}
span.stringliteral {
color: #002080;
}
span.charliteral {
color: #008080;
}
.tiny {
font-size: 80%;
}
hr {
height: 0;
border: none;
border-top: 1px solid #666666;
}
.mdescLeft, .mdescRight, .memItemLeft, .memItemRight,
.memTemplItemLeft, .memTemplItemRight, .memTemplParams {
background-color: #FAFAFA;
border: none;
margin: 0.375em;
padding: 0.125em 0 0 0.75em;
}
.mdescLeft, .mdescRight {
padding: 0 0.75em 0.375em;
color: #555555;
}
.memItemLeft, .memItemRight, .memTemplParams {
border-top: 1px solid #CCCCCC;
}
.memTemplParams {
color: #606060;
}
.memtemplate {
color: #606060;
font-size: 90%;
font-weight: normal;
margin-left: 0.2em;
}
.memnav {
background-color: #E8EEF2;
border: 1px solid #84B0C7;
text-align: center;
margin: 0.2em 1em 0.2em 0;
padding: 0.2em;
}
.memitem {
margin: 0.5em 0;
padding: 0;
}
.memname {
white-space: nowrap;
font-weight: bold;
line-height: 120%;
}
.memproto, .memdoc {
border: 1px solid #84B0C7;
}
.memproto {
padding: 0;
background-color: #D5E1E8;
font-weight: bold;
-webkit-border-top-left-radius: 1ex;
-webkit-border-top-right-radius: 1ex;
-moz-border-radius-topleft: 1ex;
-moz-border-radius-topright: 1ex;
}
.memdoc {
padding: 0.2em 0.5em;
background-color: #EEF3F5;
border-top-width: 0;
-webkit-border-bottom-left-radius: 1ex;
-webkit-border-bottom-right-radius: 1ex;
-moz-border-radius-bottomleft: 1ex;
-moz-border-radius-bottomright: 1ex;
}
.paramkey {
text-align: right;
}
.paramtype {
white-space: nowrap;
}
.paramname {
color: #602020;
white-space: nowrap;
}
.paramname em {
font-style: normal;
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.9 KiB

BIN
docs/images/top.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 260 B

72
docs/index.html Normal file
View File

@ -0,0 +1,72 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>libsigc Documentation</title>
<meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<link href="http://library.gnome.org/devel/libsigc++/stable/doxygen.css" rel="stylesheet"
type="text/css">
<style type="text/css">
body {
font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: 15px;
}
</style>
</head>
<body bgcolor="#f0f0f0">
<div align="center"> <a class="qindex" href="index.html">Main Page</a>
&nbsp; <a class="qindex" href="http://library.gnome.org/devel/libsigc++/stable/namespaces.html">Namespaces</a>
&nbsp;
<hr>
<h1>libsigc++ 2 documentation</h1>
<table cellspacing="1" cellpadding="2" width="100%" border="0">
<tbody>
<tr>
<th bgcolor="#bd2c4a"
style="border: 1px solid black; color: white;">API Reference</th>
</tr>
<tr>
<td valign="top">
<table border="0" bgcolor="white" width="100%" cellpadding="2"
cellspacing="1" style="border: 1px solid black;">
<tbody>
<tr>
<th bgcolor="#f0f0f0" width="33%">Groups</th>
<th bgcolor="#f0f0f0" width="33%">Namespaces</th>
<th bgcolor="#f0f0f0" width="33%">Full</th>
</tr>
<tr>
<td valign="top" width="33%">
<ul>
<li><a href="http://library.gnome.org/devel/libsigc++/stable/group__signal.html">Signals</a></li>
<li><a href="http://library.gnome.org/devel/libsigc++/stable/group__slot.html">Slots</a></li>
<li><a href="http://library.gnome.org/devel/libsigc++/stable/group__sigcfunctors.html">Functors</a></li>
<li><a href="http://library.gnome.org/devel/libsigc++/stable/group__adaptors.html">Adaptors</a></li>
</ul>
</td>
<td valign="top" width="33%">
<ul>
<li><a href="http://library.gnome.org/devel/libsigc++/stable/namespacesigc.html">sigc</a></li>
</ul>
</td>
<td valign="top" width="33%">
<ul>
<li><a href="http://library.gnome.org/devel/libsigc++/stable/hierarchy.html">Inheritance
Hierarchy</a></li>
<li><a href="http://library.gnome.org/devel/libsigc++/stable/inherits.html">Class Chart
(image)</a></li>
<li><a href="http://library.gnome.org/devel/libsigc++/stable/classes.html">All Classes</a></li>
<li><a href="http://library.gnome.org/devel/libsigc++/stable/functions.html">All methods
(long)</a></li>
</ul>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
<br>
</div>
</body>
</html>

0
docs/manual/README Normal file
View File

View File

@ -0,0 +1,24 @@
<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Chapter 1. Introduction</title><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="index.html" title="libsigc++"><link rel="up" href="index.html" title="libsigc++"><link rel="prev" href="index.html" title="libsigc++"><link rel="next" href="ch02.html" title="Chapter 2. Connecting your code to signals"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 1. Introduction</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="index.html">Prev</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="ch02.html">Next</a></td></tr></table><hr></div><div class="chapter"><div class="titlepage"><div><div><h1 class="title"><a name="sec-introduction"></a>Chapter 1. Introduction</h1></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl class="toc"><dt><span class="sect1"><a href="ch01.html#idm12">Motivation</a></span></dt></dl></div><div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="idm12"></a>Motivation</h2></div></div></div><p>There are many situations in which it is desirable to decouple code that
detects an event, and the code that deals with it. This is especially common in
GUI programming, where a toolkit might provide user interface elements such as
clickable buttons but, being a generic toolkit, doesn't know how an individual
application using that toolkit should handle the user clicking on it.</p><p>In C the callbacks are generally handled by the application calling a
'register' function and passing a pointer to a function and a <code class="literal">void *</code>
argument, eg.</p><pre class="programlisting">
void clicked(void *data);
button * okbutton = create_button("ok");
static char somedata[] = "This is some data I want the clicked() function to have";
register_click_handler(okbutton, clicked, somedata);
</pre><p>When clicked, the toolkit will call <code class="literal">clicked()</code> with the data pointer passed
to the <code class="literal">register_click_handler</code> function.</p><p>This works in C, but is not typesafe. There is no compile-time way of
ensuring that <code class="literal">clicked()</code> isn't expecting a struct of some sort instead of a
<code class="literal">char *</code>.</p><p>As C++ programmers, we want type safety. We also want to be able to use
things other than free-standing functions as callbacks.</p><p>libsigc++ provides the concept of a slot, which holds a reference to one of
the things that can be used as a callback:
</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>A free-standing function as in the example</p></li><li class="listitem"><p>A functor objects that defines operator()</p></li><li class="listitem"><p>A pointer-to-a-member-function and an instance of an object on which to invoke it (the
object should inherit from <code class="literal">sigc::trackable</code>)</p></li></ul></div><p>All of which can take different numbers and types of arguments.</p><p>To make it easier to construct these, libsigc++ provides the sigc::ptr_fun() and sigc::mem_fun() functions, for creating slots from static functions and member functions, respectively. They return
a generic <code class="literal">signal::slot</code> type that can be invoked with <code class="literal">emit()</code> or <code class="literal">operator()</code>.</p><p>For the other side of the fence, libsigc++ provides <code class="literal">signal</code>s, to which the
client can attach <code class="literal">slot</code>s. When the <code class="literal">signal</code> is emitted, all the connected
<code class="literal">slot</code>s are called.</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="index.html">Prev</a> </td><td width="20%" align="center"> </td><td width="40%" align="right"> <a accesskey="n" href="ch02.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">libsigc++ </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 2. Connecting your code to signals</td></tr></table></div></body></html>

View File

@ -0,0 +1,33 @@
<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Chapter 2. Connecting your code to signals</title><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="index.html" title="libsigc++"><link rel="up" href="index.html" title="libsigc++"><link rel="prev" href="ch01.html" title="Chapter 1. Introduction"><link rel="next" href="ch02s02.html" title="Using a member function"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 2. Connecting your code to signals</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ch01.html">Prev</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="ch02s02.html">Next</a></td></tr></table><hr></div><div class="chapter"><div class="titlepage"><div><div><h1 class="title"><a name="sec-connecting"></a>Chapter 2. Connecting your code to signals</h1></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl class="toc"><dt><span class="sect1"><a href="ch02.html#idm46">A simple example</a></span></dt><dt><span class="sect1"><a href="ch02s02.html">Using a member function</a></span></dt><dt><span class="sect1"><a href="ch02s03.html">Signals with parameters</a></span></dt><dt><span class="sect1"><a href="ch02s04.html">Disconnecting</a></span></dt></dl></div><div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="idm46"></a>A simple example</h2></div></div></div><p>So to get some experience, lets look at a simple example...</p><p>Lets say you and I are writing an application which informs the user when
aliens land in the car park. To keep the design nice and clean, and allow for
maximum portability to different interfaces, we decide to use libsigc++ to
split the project in two parts.</p><p>I will write the <code class="literal">AlienDetector</code> class, and you will write the code to inform
the user. (Well, OK, I'll write both, but we're pretending, remember?)</p><p>Here's my class:</p><pre class="programlisting">
class AlienDetector
{
public:
AlienDetector();
void run();
sigc::signal&lt;void&gt; signal_detected;
};
</pre><p>(I'll explain the type of signal_detected later.)</p><p>Here's your code that uses it:</p><pre class="programlisting">
void warn_people()
{
cout &lt;&lt; "There are aliens in the carpark!" &lt;&lt; endl;
}
int main()
{
AlienDetector mydetector;
mydetector.signal_detected.connect( sigc::ptr_fun(warn_people) );
mydetector.run();
return 0;
}
</pre><p>Pretty simple really - you call the <code class="literal">connect()</code> method on the signal to
connect your function. <code class="literal">connect()</code> takes a <code class="literal">slot</code> parameter (remember slots
are capable of holding any type of callback), so you convert your
<code class="literal">warn_people()</code> function to a slot using the <code class="literal">slot()</code> function.</p><p>To compile this example, use:</p><pre class="programlisting">g++ example1.cc -o example1 `pkg-config --cflags --libs sigc++-2.0`</pre><p>Note that those `` characters are backticks, not single quotes. Run it with</p><pre class="programlisting">./example1</pre><p>(Try not to panic when the aliens land!)</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ch01.html">Prev</a> </td><td width="20%" align="center"> </td><td width="40%" align="right"> <a accesskey="n" href="ch02s02.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 1. Introduction </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Using a member function</td></tr></table></div></body></html>

View File

@ -0,0 +1,26 @@
<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Using a member function</title><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="index.html" title="libsigc++"><link rel="up" href="ch02.html" title="Chapter 2. Connecting your code to signals"><link rel="prev" href="ch02.html" title="Chapter 2. Connecting your code to signals"><link rel="next" href="ch02s03.html" title="Signals with parameters"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Using a member function</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ch02.html">Prev</a> </td><th width="60%" align="center">Chapter 2. Connecting your code to signals</th><td width="20%" align="right"> <a accesskey="n" href="ch02s03.html">Next</a></td></tr></table><hr></div><div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="idm68"></a>Using a member function</h2></div></div></div><p>Suppose you found a more sophisticated alien alerter class on the web,
such as this:</p><pre class="programlisting">
class AlienAlerter : public sigc::trackable
{
public:
AlienAlerter(char const* servername);
void alert();
private:
// ...
};
</pre><p>(Handily it derives from <code class="literal">sigc::trackable</code> already. This isn't quite so
unlikely as you might think; all appropriate bits of the popular gtkmm library do so,
for example.)</p><p>You could rewrite your code as follows:</p><pre class="programlisting">
int main()
{
AlienDetector mydetector;
AlienAlerter myalerter("localhost"); // added
mydetector.signal_detected.connect( sigc::mem_fun(myalerter, &amp;AlienAlerter::alert) ); // changed
mydetector.run();
return 0;
}
</pre><p>Note that only 2 lines are different - one to create an instance of the
class, and the line to connect the method to the signal.</p><p>This code is in example2.cc, which can be compiled in the same way as
example1.cc</p></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ch02.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="ch02.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="ch02s03.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 2. Connecting your code to signals </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Signals with parameters</td></tr></table></div></body></html>

View File

@ -0,0 +1,37 @@
<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Signals with parameters</title><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="index.html" title="libsigc++"><link rel="up" href="ch02.html" title="Chapter 2. Connecting your code to signals"><link rel="prev" href="ch02s02.html" title="Using a member function"><link rel="next" href="ch02s04.html" title="Disconnecting"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Signals with parameters</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ch02s02.html">Prev</a> </td><th width="60%" align="center">Chapter 2. Connecting your code to signals</th><td width="20%" align="right"> <a accesskey="n" href="ch02s04.html">Next</a></td></tr></table><hr></div><div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="idm78"></a>Signals with parameters</h2></div></div></div><p>Functions taking no parameters and returning void are quite useful,
especially when they're members of classes that can store unlimited amounts of
safely typed data, but they're not sufficient for everything.</p><p>What if aliens don't land in the carpark, but somewhere else? Let's modify
the example so that the callback function takes a <code class="literal">std::string</code> with the location
in which aliens were detected.</p><p>I change my class to:</p><pre class="programlisting">
class AlienDetector
{
public:
AlienDetector();
void run();
sigc::signal&lt;void, std::string&gt; signal_detected; // changed
};
</pre><p>The only line I had to change was the signal line (in <code class="literal">run()</code> I need to change
my code to supply the argument when I emit the signal too, but that's not shown
here).</p><p>The name of the type is '<code class="literal">sigc::signal</code>'. The template parameters are the return type, then the argument types.</p><p>The types in the function signature are in the same order as the template
parameters, eg:</p><pre class="programlisting">
sigc::signal&lt;void, std::string&gt;
void function(std::string foo);
</pre><p>So now you can update your alerter (for simplicity, lets go back to the
free-standing function version):</p><pre class="programlisting">
void warn_people(std::string where)
{
cout &lt;&lt; "There are aliens in " &lt;&lt; where &lt;&lt; "!" &lt;&lt; endl;
}
int main()
{
AlienDetector mydetector;
mydetector.signal_detected.connect( sigc::ptr_fun(warn_people) );
mydetector.run();
return 0;
}
</pre><p>Easy.</p></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ch02s02.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="ch02.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="ch02s04.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Using a member function </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Disconnecting</td></tr></table></div></body></html>

View File

@ -0,0 +1,3 @@
<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Disconnecting</title><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="index.html" title="libsigc++"><link rel="up" href="ch02.html" title="Chapter 2. Connecting your code to signals"><link rel="prev" href="ch02s03.html" title="Signals with parameters"><link rel="next" href="ch03.html" title="Chapter 3. Writing your own signals"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Disconnecting</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ch02s03.html">Prev</a> </td><th width="60%" align="center">Chapter 2. Connecting your code to signals</th><td width="20%" align="right"> <a accesskey="n" href="ch03.html">Next</a></td></tr></table><hr></div><div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="idm94"></a>Disconnecting</h2></div></div></div><p>If you decide you no longer want your code to be called whenever a signal is
emitted, you must remember the return value of <code class="literal">connect()</code>, which we've been
ignoring until now.</p><p><code class="literal">connect()</code> returns a <code class="literal">sigc::connection</code> object, which has a <code class="literal">disconnect()</code> member method. This does just what you think it does.</p></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ch02s03.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="ch02.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="ch03.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Signals with parameters </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 3. Writing your own signals</td></tr></table></div></body></html>

View File

@ -0,0 +1,28 @@
<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Chapter 3. Writing your own signals</title><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="index.html" title="libsigc++"><link rel="up" href="index.html" title="libsigc++"><link rel="prev" href="ch02s04.html" title="Disconnecting"><link rel="next" href="ch03s02.html" title="What about return values?"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 3. Writing your own signals</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ch02s04.html">Prev</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="ch03s02.html">Next</a></td></tr></table><hr></div><div class="chapter"><div class="titlepage"><div><div><h1 class="title"><a name="sec-writing"></a>Chapter 3. Writing your own signals</h1></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl class="toc"><dt><span class="sect1"><a href="ch03.html#idm104">Quick recap</a></span></dt><dt><span class="sect1"><a href="ch03s02.html">What about return values?</a></span></dt></dl></div><div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="idm104"></a>Quick recap</h2></div></div></div><p>If all you want to do is use gtkmm, and connect your functionality to its
signals, you can probably stop reading here.</p><p>You might benefit from reading on anyway though, as this section is going to
be quite simple, and the 'Rebinding' technique from the next section is
occasionally useful.</p><p>We've already covered the way the types of signals are made up, but lets
recap:</p><p>A signal is an instance of a template, named <code class="literal">sigc::signal</code>.
The template arguments are the types,
in the order they appear in the function signature that can be connected to that
signal; that is the return type, then the argument types.</p><p>To provide a signal for people to connect to, you must make available an
instance of that <code class="literal">sigc::signal</code>. In <code class="literal">AlienDetector</code> this was done
with a public data member. That's not considered good practice usually, so you
might want to consider making a member function that returns the signal by
reference. (This is what gtkmm does.)</p><p>Once you've done this, all you have to do is emit the signal when you're
ready. Look at the code for <code class="literal">AlienDetector::run()</code>:</p><pre class="programlisting">
void AlienDetector::run()
{
sleep(3); // wait for aliens
signal_detected.emit(); // panic!
}
</pre><p>As a shortcut, <code class="literal">sigc::signal</code> defines <code class="literal">operator()</code> as a synonym for
<code class="literal">emit()</code>, so you could just write <code class="literal">signal_detected();</code> as in the second
example version:</p><pre class="programlisting">
void AlienDetector::run()
{
sleep(3); // wait for aliens
signal_detected("the carpark"); // this is the std::string version, looks like
// they landed in the carpark afterall.
}
</pre></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ch02s04.html">Prev</a> </td><td width="20%" align="center"> </td><td width="40%" align="right"> <a accesskey="n" href="ch03s02.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Disconnecting </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> What about return values?</td></tr></table></div></body></html>

View File

@ -0,0 +1,7 @@
<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>What about return values?</title><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="index.html" title="libsigc++"><link rel="up" href="ch03.html" title="Chapter 3. Writing your own signals"><link rel="prev" href="ch03.html" title="Chapter 3. Writing your own signals"><link rel="next" href="ch04.html" title="Chapter 4. Advanced topics"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">What about return values?</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ch03.html">Prev</a> </td><th width="60%" align="center">Chapter 3. Writing your own signals</th><td width="20%" align="right"> <a accesskey="n" href="ch04.html">Next</a></td></tr></table><hr></div><div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="idm123"></a>What about return values?</h2></div></div></div><p>If you only ever have one slot connected to a signal, or if you only care
about the return value of the last registered one, it's quite straightforward:</p><pre class="programlisting">
sigc::signal&lt;int&gt; somesignal;
int a_return_value;
a_return_value = somesignal.emit();
</pre></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ch03.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="ch03.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="ch04.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 3. Writing your own signals </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 4. Advanced topics</td></tr></table></div></body></html>

View File

@ -0,0 +1,28 @@
<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Chapter 4. Advanced topics</title><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="index.html" title="libsigc++"><link rel="up" href="index.html" title="libsigc++"><link rel="prev" href="ch03s02.html" title="What about return values?"><link rel="next" href="ch04s02.html" title="Retyping"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 4. Advanced topics</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ch03s02.html">Prev</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="ch04s02.html">Next</a></td></tr></table><hr></div><div class="chapter"><div class="titlepage"><div><div><h1 class="title"><a name="sec-advanced"></a>Chapter 4. Advanced topics</h1></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl class="toc"><dt><span class="sect1"><a href="ch04.html#idm129">Rebinding</a></span></dt><dt><span class="sect1"><a href="ch04s02.html">Retyping</a></span></dt></dl></div><div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="idm129"></a>Rebinding</h2></div></div></div><p>Suppose you already have a function that you want to be called when a
signal is emitted, but it takes the wrong argument types. For example, lets try
to attach the <code class="literal">warn_people(std::string)</code> function to the detected signal
from the first example, which didn't supply a location string.</p><p>Just trying to connect it with:</p><pre class="programlisting">
myaliendetector.signal_detected.connect(sigc::ptr_fun(warn_people));
</pre><p>results in a compile-time error, because the types don't match. This is good!
This is typesafety at work. In the C way of doing things, this would have just
died at runtime after trying to print a random bit of memory as the location -
ick!</p><p>We have to make up a location string, and bind it to the function, so that
when signal_detected is emitted with no arguments, something adds it in before
<code class="literal">warn_people</code> is actually called.</p><p>We could write it ourselves - it's not hard:</p><pre class="programlisting">
void warn_people_wrapper() // note this is the signature that 'signal_detected' expects
{
warn_people("the carpark");
}
</pre><p>but after our first million or so we might start looking for a better way. As
it happens, libsigc++ has one.</p><pre class="programlisting">
sigc::bind(slot, arg);
</pre><p>binds arg as the argument to slot, and returns a new slot of the same return
type, but with one fewer arguments.</p><p>Now we can write:</p><pre class="programlisting">
myaliendetector.signal_detected.connect(sigc::bind( sigc::ptr_fun(warn_people), "the carpark" ) );
</pre><p>If the input slot has multiple args, the rightmost one is bound.</p><p>The return type can also be bound with <code class="literal">sigc::bind_return(slot, returnvalue);</code> though
this is not so commonly useful.</p><p>So if we can attach the new <code class="literal">warn_people()</code> to the old detector, can we attach
the old <code class="literal">warn_people</code> (the one that didn't take an argument) to the new detector?</p><p>Of course, we just need to hide the extra argument. This can be done with
<code class="literal">sigc::hide</code>, eg.</p><pre class="programlisting">
myaliendetector.signal_detected.connect( sigc::hide&lt;std::string&gt;( sigc::ptr_fun(warn_people) ) );
</pre><p>The template arguments are the types to hide (from the right only - you can't
hide the first argument of 3, for example, only the last).</p><p><code class="literal">sigc::hide_return</code> effectively makes the return type void.</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ch03s02.html">Prev</a> </td><td width="20%" align="center"> </td><td width="40%" align="right"> <a accesskey="n" href="ch04s02.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">What about return values? </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Retyping</td></tr></table></div></body></html>

View File

@ -0,0 +1,12 @@
<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Retyping</title><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="index.html" title="libsigc++"><link rel="up" href="ch04.html" title="Chapter 4. Advanced topics"><link rel="prev" href="ch04.html" title="Chapter 4. Advanced topics"><link rel="next" href="ch05.html" title="Chapter 5. Reference"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Retyping</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ch04.html">Prev</a> </td><th width="60%" align="center">Chapter 4. Advanced topics</th><td width="20%" align="right"> <a accesskey="n" href="ch05.html">Next</a></td></tr></table><hr></div><div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="idm157"></a>Retyping</h2></div></div></div><p>A similar topic is retyping. Perhaps you have a signal that takes an <code class="literal">int</code>, but
you want to connect a function that takes a <code class="literal">double</code>.</p><p>This can be achieved with the <code class="literal">sigc::retype</code> template. <code class="literal">retype</code> has template arguments
just like <code class="literal">sigc::signal</code> - return value, signal types.</p><p>It's a function template that takes a <code class="literal">sigc::slot</code>, and returns a <code class="literal">sigc::slot</code>. eg.</p><pre class="programlisting">
void dostuff(double foo)
{
}
sigc::signal&lt;void,int&gt; asignal;
asignal.connect( sigc::retype&lt;void, int&gt;( slot(&amp;dostuff) ) );
</pre><p>If you only want to change the return type, you can use <code class="literal">sigc::retype_return</code>.
<code class="literal">retype_return</code> needs only one template argument.</p></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ch04.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="ch04.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="ch05.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 4. Advanced topics </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 5. Reference</td></tr></table></div></body></html>

View File

@ -0,0 +1 @@
<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Chapter 5. Reference</title><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="index.html" title="libsigc++"><link rel="up" href="index.html" title="libsigc++"><link rel="prev" href="ch04s02.html" title="Retyping"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 5. Reference</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ch04s02.html">Prev</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> </td></tr></table><hr></div><div class="chapter"><div class="titlepage"><div><div><h1 class="title"><a name="sec-reference"></a>Chapter 5. Reference</h1></div></div></div><p>See the reference documentation <a class="ulink" href="http://library.gnome.org/devel/libsigc++/unstable/" target="_top">online</a></p></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ch04s02.html">Prev</a> </td><td width="20%" align="center"> </td><td width="40%" align="right"> </td></tr><tr><td width="40%" align="left" valign="top">Retyping </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> </td></tr></table></div></body></html>

View File

@ -0,0 +1 @@
<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>libsigc++</title><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><meta name="description" content="libsigc++ is a C++ template library implementing typesafe callbacks. This is an intro to libsigc++."><link rel="home" href="index.html" title="libsigc++"><link rel="next" href="ch01.html" title="Chapter 1. Introduction"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">libsigc++</th></tr><tr><td width="20%" align="left"> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="ch01.html">Next</a></td></tr></table><hr></div><div lang="en" class="book"><div class="titlepage"><div><div><h1 class="title"><a name="index"></a>libsigc++</h1></div><div><div class="author"><h3 class="author"><span class="firstname">Ainsley</span> <span class="surname">Pereira</span></h3></div></div><div><p class="pubdate">September 2002. Updated January 2004 by Murray Cumming</p></div><div><div class="abstract"><p class="title"><b>Abstract</b></p><p>libsigc++ is a C++ template library implementing typesafe callbacks. This is an intro to libsigc++.</p></div></div></div><hr></div><div class="toc"><p><b>Table of Contents</b></p><dl class="toc"><dt><span class="chapter"><a href="ch01.html">1. Introduction</a></span></dt><dd><dl><dt><span class="sect1"><a href="ch01.html#idm12">Motivation</a></span></dt></dl></dd><dt><span class="chapter"><a href="ch02.html">2. Connecting your code to signals</a></span></dt><dd><dl><dt><span class="sect1"><a href="ch02.html#idm46">A simple example</a></span></dt><dt><span class="sect1"><a href="ch02s02.html">Using a member function</a></span></dt><dt><span class="sect1"><a href="ch02s03.html">Signals with parameters</a></span></dt><dt><span class="sect1"><a href="ch02s04.html">Disconnecting</a></span></dt></dl></dd><dt><span class="chapter"><a href="ch03.html">3. Writing your own signals</a></span></dt><dd><dl><dt><span class="sect1"><a href="ch03.html#idm104">Quick recap</a></span></dt><dt><span class="sect1"><a href="ch03s02.html">What about return values?</a></span></dt></dl></dd><dt><span class="chapter"><a href="ch04.html">4. Advanced topics</a></span></dt><dd><dl><dt><span class="sect1"><a href="ch04.html#idm129">Rebinding</a></span></dt><dt><span class="sect1"><a href="ch04s02.html">Retyping</a></span></dt></dl></dd><dt><span class="chapter"><a href="ch05.html">5. Reference</a></span></dt></dl></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"> </td><td width="20%" align="center"> </td><td width="40%" align="right"> <a accesskey="n" href="ch01.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"> </td><td width="20%" align="center"> </td><td width="40%" align="right" valign="top"> Chapter 1. Introduction</td></tr></table></div></body></html>

View File

@ -0,0 +1,417 @@
<?xml version="1.0"?>
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN" "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" >
<book id="index" lang="en">
<bookinfo>
<title>libsigc++</title>
<author>
<firstname>Ainsley</firstname>
<surname>Pereira</surname>
</author>
<pubdate>September 2002. Updated January 2004 by Murray Cumming</pubdate>
<abstract>
<para>libsigc++ is a C++ template library implementing typesafe callbacks. This is an intro to libsigc++.</para>
</abstract>
</bookinfo>
<chapter id="sec-introduction">
<title>Introduction</title>
<sect1>
<title>Motivation</title>
<para>There are many situations in which it is desirable to decouple code that
detects an event, and the code that deals with it. This is especially common in
GUI programming, where a toolkit might provide user interface elements such as
clickable buttons but, being a generic toolkit, doesn't know how an individual
application using that toolkit should handle the user clicking on it.</para>
<para>In C the callbacks are generally handled by the application calling a
'register' function and passing a pointer to a function and a <literal remap="tt">void *</literal>
argument, eg.</para>
<programlisting>
void clicked(void *data);
button * okbutton = create_button("ok");
static char somedata[] = "This is some data I want the clicked() function to have";
register_click_handler(okbutton, clicked, somedata);
</programlisting>
<para>When clicked, the toolkit will call <literal remap="tt">clicked()</literal> with the data pointer passed
to the <literal remap="tt">register_click_handler</literal> function.</para>
<para>This works in C, but is not typesafe. There is no compile-time way of
ensuring that <literal remap="tt">clicked()</literal> isn't expecting a struct of some sort instead of a
<literal remap="tt">char *</literal>.</para>
<para>As C++ programmers, we want type safety. We also want to be able to use
things other than free-standing functions as callbacks.</para>
<para>libsigc++ provides the concept of a slot, which holds a reference to one of
the things that can be used as a callback:
<itemizedlist>
<listitem><para>A free-standing function as in the example</para></listitem>
<listitem><para>A functor objects that defines operator()</para></listitem>
<listitem><para>A pointer-to-a-member-function and an instance of an object on which to invoke it (the
object should inherit from <literal remap="tt">sigc::trackable</literal>)</para></listitem>
</itemizedlist></para>
<para>All of which can take different numbers and types of arguments.</para>
<para>To make it easier to construct these, libsigc++ provides the sigc::ptr_fun() and sigc::mem_fun() functions, for creating slots from static functions and member functions, respectively. They return
a generic <literal remap="tt">signal::slot</literal> type that can be invoked with <literal remap="tt">emit()</literal> or <literal remap="tt">operator()</literal>.</para>
<para>For the other side of the fence, libsigc++ provides <literal remap="tt">signal</literal>s, to which the
client can attach <literal remap="tt">slot</literal>s. When the <literal remap="tt">signal</literal> is emitted, all the connected
<literal remap="tt">slot</literal>s are called.</para>
</sect1>
</chapter>
<chapter id="sec-connecting">
<title>Connecting your code to signals</title>
<sect1>
<title>A simple example</title>
<para>So to get some experience, lets look at a simple example...</para>
<para>Lets say you and I are writing an application which informs the user when
aliens land in the car park. To keep the design nice and clean, and allow for
maximum portability to different interfaces, we decide to use libsigc++ to
split the project in two parts.</para>
<para>I will write the <literal remap="tt">AlienDetector</literal> class, and you will write the code to inform
the user. (Well, OK, I'll write both, but we're pretending, remember?)</para>
<para>Here's my class:</para>
<programlisting>
class AlienDetector
{
public:
AlienDetector();
void run();
sigc::signal&lt;void&gt; signal_detected;
};
</programlisting>
<para>(I'll explain the type of signal_detected later.)</para>
<para>Here's your code that uses it:</para>
<programlisting>
void warn_people()
{
cout &lt;&lt; "There are aliens in the carpark!" &lt;&lt; endl;
}
int main()
{
AlienDetector mydetector;
mydetector.signal_detected.connect( sigc::ptr_fun(warn_people) );
mydetector.run();
return 0;
}
</programlisting>
<para>Pretty simple really - you call the <literal remap="tt">connect()</literal> method on the signal to
connect your function. <literal remap="tt">connect()</literal> takes a <literal remap="tt">slot</literal> parameter (remember slots
are capable of holding any type of callback), so you convert your
<literal remap="tt">warn_people()</literal> function to a slot using the <literal remap="tt">slot()</literal> function.</para>
<para>To compile this example, use:</para>
<programlisting>g++ example1.cc -o example1 `pkg-config --cflags --libs sigc++-2.0`</programlisting>
<para>Note that those `` characters are backticks, not single quotes. Run it with</para>
<programlisting>./example1</programlisting>
<para>(Try not to panic when the aliens land!)</para>
</sect1>
<sect1>
<title>Using a member function</title>
<para>Suppose you found a more sophisticated alien alerter class on the web,
such as this:</para>
<programlisting>
class AlienAlerter : public sigc::trackable
{
public:
AlienAlerter(char const* servername);
void alert();
private:
// ...
};
</programlisting>
<para>(Handily it derives from <literal remap="tt">sigc::trackable</literal> already. This isn't quite so
unlikely as you might think; all appropriate bits of the popular gtkmm library do so,
for example.)</para>
<para>You could rewrite your code as follows:</para>
<programlisting>
int main()
{
AlienDetector mydetector;
AlienAlerter myalerter("localhost"); // added
mydetector.signal_detected.connect( sigc::mem_fun(myalerter, &amp;AlienAlerter::alert) ); // changed
mydetector.run();
return 0;
}
</programlisting>
<para>Note that only 2 lines are different - one to create an instance of the
class, and the line to connect the method to the signal.</para>
<para>This code is in example2.cc, which can be compiled in the same way as
example1.cc</para>
</sect1>
<sect1>
<title>Signals with parameters</title>
<para>Functions taking no parameters and returning void are quite useful,
especially when they're members of classes that can store unlimited amounts of
safely typed data, but they're not sufficient for everything.</para>
<para>What if aliens don't land in the carpark, but somewhere else? Let's modify
the example so that the callback function takes a <literal remap="tt">std::string</literal> with the location
in which aliens were detected.</para>
<para>I change my class to:</para>
<programlisting>
class AlienDetector
{
public:
AlienDetector();
void run();
sigc::signal&lt;void, std::string&gt; signal_detected; // changed
};
</programlisting>
<para>The only line I had to change was the signal line (in <literal remap="tt">run()</literal> I need to change
my code to supply the argument when I emit the signal too, but that's not shown
here).</para>
<para>The name of the type is '<literal remap="tt">sigc::signal</literal>'. The template parameters are the return type, then the argument types.</para>
<para>The types in the function signature are in the same order as the template
parameters, eg:</para>
<programlisting>
sigc::signal&lt;void, std::string&gt;
void function(std::string foo);
</programlisting>
<para>So now you can update your alerter (for simplicity, lets go back to the
free-standing function version):</para>
<programlisting>
void warn_people(std::string where)
{
cout &lt;&lt; "There are aliens in " &lt;&lt; where &lt;&lt; "!" &lt;&lt; endl;
}
int main()
{
AlienDetector mydetector;
mydetector.signal_detected.connect( sigc::ptr_fun(warn_people) );
mydetector.run();
return 0;
}
</programlisting>
<para>Easy.</para>
</sect1>
<sect1>
<title>Disconnecting</title>
<para>If you decide you no longer want your code to be called whenever a signal is
emitted, you must remember the return value of <literal remap="tt">connect()</literal>, which we've been
ignoring until now.</para>
<para><literal remap="tt">connect()</literal> returns a <literal remap="tt">sigc::connection</literal> object, which has a <literal remap="tt">disconnect()</literal> member method. This does just what you think it does.</para>
</sect1>
</chapter>
<chapter id="sec-writing">
<title>Writing your own signals</title>
<sect1>
<title>Quick recap</title>
<para>If all you want to do is use gtkmm, and connect your functionality to its
signals, you can probably stop reading here.</para>
<para>You might benefit from reading on anyway though, as this section is going to
be quite simple, and the 'Rebinding' technique from the next section is
occasionally useful.</para>
<para>We've already covered the way the types of signals are made up, but lets
recap:</para>
<para>A signal is an instance of a template, named <literal remap="tt">sigc::signal</literal>.
The template arguments are the types,
in the order they appear in the function signature that can be connected to that
signal; that is the return type, then the argument types.</para>
<para>To provide a signal for people to connect to, you must make available an
instance of that <literal remap="tt">sigc::signal</literal>. In <literal remap="tt">AlienDetector</literal> this was done
with a public data member. That's not considered good practice usually, so you
might want to consider making a member function that returns the signal by
reference. (This is what gtkmm does.)</para>
<para>Once you've done this, all you have to do is emit the signal when you're
ready. Look at the code for <literal remap="tt">AlienDetector::run()</literal>:</para>
<programlisting>
void AlienDetector::run()
{
sleep(3); // wait for aliens
signal_detected.emit(); // panic!
}
</programlisting>
<para>As a shortcut, <literal remap="tt">sigc::signal</literal> defines <literal remap="tt">operator()</literal> as a synonym for
<literal remap="tt">emit()</literal>, so you could just write <literal remap="tt">signal_detected();</literal> as in the second
example version:</para>
<programlisting>
void AlienDetector::run()
{
sleep(3); // wait for aliens
signal_detected("the carpark"); // this is the std::string version, looks like
// they landed in the carpark afterall.
}
</programlisting>
</sect1>
<sect1>
<title>What about return values?</title>
<para>If you only ever have one slot connected to a signal, or if you only care
about the return value of the last registered one, it's quite straightforward:</para>
<programlisting>
sigc::signal&lt;int&gt; somesignal;
int a_return_value;
a_return_value = somesignal.emit();
</programlisting>
</sect1>
</chapter>
<chapter id="sec-advanced">
<title>Advanced topics</title>
<sect1>
<title>Rebinding</title>
<para>Suppose you already have a function that you want to be called when a
signal is emitted, but it takes the wrong argument types. For example, lets try
to attach the <literal remap="tt">warn_people(std::string)</literal> function to the detected signal
from the first example, which didn't supply a location string.</para>
<para>Just trying to connect it with:</para>
<programlisting>
myaliendetector.signal_detected.connect(sigc::ptr_fun(warn_people));
</programlisting>
<para>results in a compile-time error, because the types don't match. This is good!
This is typesafety at work. In the C way of doing things, this would have just
died at runtime after trying to print a random bit of memory as the location -
ick!</para>
<para>We have to make up a location string, and bind it to the function, so that
when signal_detected is emitted with no arguments, something adds it in before
<literal remap="tt">warn_people</literal> is actually called.</para>
<para>We could write it ourselves - it's not hard:</para>
<programlisting>
void warn_people_wrapper() // note this is the signature that 'signal_detected' expects
{
warn_people("the carpark");
}
</programlisting>
<para>but after our first million or so we might start looking for a better way. As
it happens, libsigc++ has one.</para>
<programlisting>
sigc::bind(slot, arg);
</programlisting>
<para>binds arg as the argument to slot, and returns a new slot of the same return
type, but with one fewer arguments.</para>
<para>Now we can write:</para>
<programlisting>
myaliendetector.signal_detected.connect(sigc::bind( sigc::ptr_fun(warn_people), "the carpark" ) );
</programlisting>
<para>If the input slot has multiple args, the rightmost one is bound.</para>
<para>The return type can also be bound with <literal remap="tt">sigc::bind_return(slot, returnvalue);</literal> though
this is not so commonly useful.</para>
<para>So if we can attach the new <literal remap="tt">warn_people()</literal> to the old detector, can we attach
the old <literal remap="tt">warn_people</literal> (the one that didn't take an argument) to the new detector?</para>
<para>Of course, we just need to hide the extra argument. This can be done with
<literal remap="tt">sigc::hide</literal>, eg.</para>
<programlisting>
myaliendetector.signal_detected.connect( sigc::hide&lt;std::string&gt;( sigc::ptr_fun(warn_people) ) );
</programlisting>
<para>The template arguments are the types to hide (from the right only - you can't
hide the first argument of 3, for example, only the last).</para>
<para><literal remap="tt">sigc::hide_return</literal> effectively makes the return type void.</para>
</sect1>
<sect1>
<title>Retyping</title>
<para>A similar topic is retyping. Perhaps you have a signal that takes an <literal remap="tt">int</literal>, but
you want to connect a function that takes a <literal remap="tt">double</literal>.</para>
<para>This can be achieved with the <literal remap="tt">sigc::retype</literal> template. <literal remap="tt">retype</literal> has template arguments
just like <literal remap="tt">sigc::signal</literal> - return value, signal types.</para>
<para>It's a function template that takes a <literal remap="tt">sigc::slot</literal>, and returns a <literal remap="tt">sigc::slot</literal>. eg.</para>
<programlisting>
void dostuff(double foo)
{
}
sigc::signal&lt;void,int&gt; asignal;
asignal.connect( sigc::retype&lt;void, int&gt;( slot(&amp;dostuff) ) );
</programlisting>
<para>If you only want to change the return type, you can use <literal remap="tt">sigc::retype_return</literal>.
<literal remap="tt">retype_return</literal> needs only one template argument.</para>
</sect1>
</chapter>
<chapter id="sec-reference">
<title>Reference</title>
<para>See the reference documentation <ulink url="http://library.gnome.org/devel/libsigc++/unstable/">online</ulink></para>
</chapter>
</book>

96
docs/manual/meson.build Normal file
View File

@ -0,0 +1,96 @@
# docs/manual
# input: install_datadir, sigcxx_pcname, tutorial_custom_cmd, python3,
# build_documentation, dist_cmd, install_docdir
# output: can_parse_and_validate, build_pdf_by_default, can_build_pdf,
# install_tutorialdir
# xsltproc is required by tutorial_custom_cmd html.
xsltproc = find_program('xsltproc', required: build_documentation)
xmllint = find_program('xmllint', required: false)
can_parse_and_validate = xmllint.found()
validate = get_option('validation') ? 'true' : 'false'
dblatex = find_program('dblatex', required: false)
can_build_pdf = dblatex.found() or (xmllint.found() and \
find_program('docbook2pdf', required: false).found())
build_pdf_by_default = get_option('build-pdf')
# Installation directories are relative to {prefix}.
install_tutorialdir = install_docdir / 'tutorial'
if not build_documentation
# Documentation shall not be built or installed.
# Return to the calling meson.build file.
subdir_done()
endif
install_data('..' / 'index.html', install_dir: install_docdir)
install_data('..' / 'images' / 'libsigc_logo.gif',
'..' / 'images' / 'top.gif',
install_dir: install_docdir / 'images')
doc_dist_dir = 'untracked' / 'docs' / 'manual' # Relative to MESON_DIST_ROOT
sigc_manual_xml = 'libsigc_manual.xml'
sigc_manual_pdf = 'libsigc_manual.pdf'
# Create an html version of the DocBook.
custom_target('manual_html',
input: sigc_manual_xml,
output: 'html',
command: [
python3, tutorial_custom_cmd, 'html',
'@INPUT@',
'@OUTPUT@',
],
build_by_default: true,
install: true,
install_dir: install_tutorialdir
)
if can_parse_and_validate
# Parse and possibly validate the DocBook.
custom_target('manual_xmllint',
input: sigc_manual_xml,
output: 'manual_xmllint.stamp',
command: [
python3, tutorial_custom_cmd, 'xmllint',
validate,
'@INPUT@',
'@OUTPUT@'
],
build_by_default: true,
)
endif
if can_build_pdf
# Create a PDF file of the DocBook.
# Prefer dblatex, if both dblatex and docbook2pdf are available.
custom_target('manual_pdf',
input: sigc_manual_xml,
output: sigc_manual_pdf,
command: [
python3, tutorial_custom_cmd,
dblatex.found() ? 'dblatex' : 'docbook2pdf',
'@INPUT@',
'@OUTPUT@'
],
build_by_default: build_pdf_by_default,
)
endif
if not meson.is_subproject()
# Distribute built files.
# (add_dist_script() is not allowed in a subproject)
meson.add_dist_script(
python3.path(), dist_cmd,
python3.path(), tutorial_custom_cmd, 'dist_doc',
doc_dist_dir,
meson.current_build_dir(),
meson.current_source_dir() / sigc_manual_xml,
meson.current_build_dir() / sigc_manual_pdf,
)
endif

341
docs/reference/Doxyfile.in Normal file
View File

@ -0,0 +1,341 @@
# Doxyfile 1.8.11
# @configure_input@
#---------------------------------------------------------------------------
# Project related configuration options
#---------------------------------------------------------------------------
DOXYFILE_ENCODING = UTF-8
PROJECT_NAME = @PACKAGE_NAME@
PROJECT_NUMBER = @PACKAGE_VERSION@
PROJECT_BRIEF =
PROJECT_LOGO =
OUTPUT_DIRECTORY = reference
CREATE_SUBDIRS = NO
ALLOW_UNICODE_NAMES = NO
OUTPUT_LANGUAGE = English
BRIEF_MEMBER_DESC = YES
REPEAT_BRIEF = YES
ABBREVIATE_BRIEF =
ALWAYS_DETAILED_SEC = NO
INLINE_INHERITED_MEMB = NO
FULL_PATH_NAMES = YES
STRIP_FROM_PATH = "@abs_top_builddir@/" \
"@abs_top_srcdir@/"
STRIP_FROM_INC_PATH = "@abs_top_builddir@/" \
"@abs_top_srcdir@/"
SHORT_NAMES = NO
JAVADOC_AUTOBRIEF = YES
QT_AUTOBRIEF = NO
MULTILINE_CPP_IS_BRIEF = NO
INHERIT_DOCS = YES
SEPARATE_MEMBER_PAGES = NO
TAB_SIZE = 8
ALIASES = "newin{2}=\xrefitem since_\1_\2 \"Since @PACKAGE_NAME@ \1.\2\" \"New API in @PACKAGE_NAME@ \1.\2\"" \
"newin{3}=\xrefitem since_\1_\2_\3 \"Since @PACKAGE_NAME@ \1.\2.\3\" \"New API in @PACKAGE_NAME@ \1.\2.\3\""
TCL_SUBST =
OPTIMIZE_OUTPUT_FOR_C = NO
OPTIMIZE_OUTPUT_JAVA = NO
OPTIMIZE_FOR_FORTRAN = NO
OPTIMIZE_OUTPUT_VHDL = NO
EXTENSION_MAPPING =
MARKDOWN_SUPPORT = YES
AUTOLINK_SUPPORT = YES
BUILTIN_STL_SUPPORT = NO
CPP_CLI_SUPPORT = NO
SIP_SUPPORT = NO
IDL_PROPERTY_SUPPORT = YES
DISTRIBUTE_GROUP_DOC = NO
GROUP_NESTED_COMPOUNDS = NO
SUBGROUPING = YES
INLINE_GROUPED_CLASSES = NO
INLINE_SIMPLE_STRUCTS = NO
TYPEDEF_HIDES_STRUCT = NO
LOOKUP_CACHE_SIZE = 0
#---------------------------------------------------------------------------
# Build related configuration options
#---------------------------------------------------------------------------
EXTRACT_ALL = YES
EXTRACT_PRIVATE = NO
EXTRACT_PACKAGE = NO
EXTRACT_STATIC = NO
EXTRACT_LOCAL_CLASSES = NO
EXTRACT_LOCAL_METHODS = NO
EXTRACT_ANON_NSPACES = NO
HIDE_UNDOC_MEMBERS = NO
HIDE_UNDOC_CLASSES = NO
HIDE_FRIEND_COMPOUNDS = YES
HIDE_IN_BODY_DOCS = YES
INTERNAL_DOCS = NO
CASE_SENSE_NAMES = YES
HIDE_SCOPE_NAMES = NO
HIDE_COMPOUND_REFERENCE= NO
SHOW_INCLUDE_FILES = YES
SHOW_GROUPED_MEMB_INC = NO
FORCE_LOCAL_INCLUDES = NO
INLINE_INFO = YES
SORT_MEMBER_DOCS = YES
SORT_BRIEF_DOCS = YES
SORT_MEMBERS_CTORS_1ST = YES
SORT_GROUP_NAMES = YES
SORT_BY_SCOPE_NAME = YES
STRICT_PROTO_MATCHING = NO
GENERATE_TODOLIST = NO
GENERATE_TESTLIST = NO
GENERATE_BUGLIST = NO
GENERATE_DEPRECATEDLIST= YES
ENABLED_SECTIONS =
MAX_INITIALIZER_LINES = 2
SHOW_USED_FILES = NO
SHOW_FILES = NO
SHOW_NAMESPACES = YES
FILE_VERSION_FILTER =
LAYOUT_FILE =
CITE_BIB_FILES =
#---------------------------------------------------------------------------
# Configuration options related to warning and progress messages
#---------------------------------------------------------------------------
QUIET = YES
WARNINGS = YES
WARN_IF_UNDOCUMENTED = YES
WARN_IF_DOC_ERROR = YES
WARN_NO_PARAMDOC = NO
WARN_AS_ERROR = NO
WARN_FORMAT = "$file:$line: $text"
WARN_LOGFILE = reference/doxygen.log
#---------------------------------------------------------------------------
# Configuration options related to the input files
#---------------------------------------------------------------------------
INPUT =
INPUT_ENCODING = UTF-8
FILE_PATTERNS =
RECURSIVE = NO
EXCLUDE =
EXCLUDE_SYMLINKS = NO
EXCLUDE_PATTERNS =
EXCLUDE_SYMBOLS = _* \
basic_filebuf \
binary_function \
internal \
pair \
unary_function \
hash_load_check_resize_trigger_size_base \
lu_counter_policy_base
EXAMPLE_PATH = "@abs_top_srcdir@/examples"
EXAMPLE_PATTERNS = *.cc \
*.h
EXAMPLE_RECURSIVE = NO
IMAGE_PATH =
INPUT_FILTER =
FILTER_PATTERNS =
FILTER_SOURCE_FILES = NO
FILTER_SOURCE_PATTERNS =
USE_MDFILE_AS_MAINPAGE =
#---------------------------------------------------------------------------
# Configuration options related to source browsing
#---------------------------------------------------------------------------
SOURCE_BROWSER = NO
INLINE_SOURCES = NO
STRIP_CODE_COMMENTS = NO
REFERENCED_BY_RELATION = NO
REFERENCES_RELATION = NO
REFERENCES_LINK_SOURCE = YES
SOURCE_TOOLTIPS = YES
USE_HTAGS = NO
VERBATIM_HEADERS = NO
CLANG_ASSISTED_PARSING = NO
CLANG_OPTIONS =
#---------------------------------------------------------------------------
# Configuration options related to the alphabetical class index
#---------------------------------------------------------------------------
ALPHABETICAL_INDEX = YES
COLS_IN_ALPHA_INDEX = 1
IGNORE_PREFIX =
#---------------------------------------------------------------------------
# Configuration options related to the HTML output
#---------------------------------------------------------------------------
GENERATE_HTML = YES
HTML_OUTPUT = html
HTML_FILE_EXTENSION = .html
HTML_HEADER =
HTML_FOOTER =
HTML_STYLESHEET =
HTML_EXTRA_STYLESHEET = "$(MMDOCTOOLDIR)/doxygen-extra.css"
HTML_EXTRA_FILES =
HTML_COLORSTYLE_HUE = 220
HTML_COLORSTYLE_SAT = 100
HTML_COLORSTYLE_GAMMA = 80
HTML_TIMESTAMP = YES
HTML_DYNAMIC_SECTIONS = NO
HTML_INDEX_NUM_ENTRIES = 100
GENERATE_DOCSET = NO
DOCSET_FEEDNAME = "Doxygen generated docs"
DOCSET_BUNDLE_ID = org.doxygen.Project
DOCSET_PUBLISHER_ID = org.doxygen.Publisher
DOCSET_PUBLISHER_NAME = Publisher
GENERATE_HTMLHELP = NO
CHM_FILE =
HHC_LOCATION =
GENERATE_CHI = NO
CHM_INDEX_ENCODING =
BINARY_TOC = NO
TOC_EXPAND = NO
GENERATE_QHP = NO
QCH_FILE =
QHP_NAMESPACE =
QHP_VIRTUAL_FOLDER = doc
QHP_CUST_FILTER_NAME =
QHP_CUST_FILTER_ATTRS =
QHP_SECT_FILTER_ATTRS =
QHG_LOCATION =
GENERATE_ECLIPSEHELP = NO
ECLIPSE_DOC_ID = org.doxygen.Project
DISABLE_INDEX = NO
GENERATE_TREEVIEW = NO
ENUM_VALUES_PER_LINE = 1
TREEVIEW_WIDTH = 250
EXT_LINKS_IN_WINDOW = NO
FORMULA_FONTSIZE = 10
FORMULA_TRANSPARENT = YES
USE_MATHJAX = NO
MATHJAX_FORMAT = HTML-CSS
MATHJAX_RELPATH = http://cdn.mathjax.org/mathjax/latest
MATHJAX_EXTENSIONS =
MATHJAX_CODEFILE =
SEARCHENGINE = NO
SERVER_BASED_SEARCH = NO
EXTERNAL_SEARCH = NO
SEARCHENGINE_URL =
SEARCHDATA_FILE = searchdata.xml
EXTERNAL_SEARCH_ID =
EXTRA_SEARCH_MAPPINGS =
#---------------------------------------------------------------------------
# Configuration options related to the LaTeX output
#---------------------------------------------------------------------------
GENERATE_LATEX = NO
LATEX_OUTPUT = latex
LATEX_CMD_NAME = latex
MAKEINDEX_CMD_NAME = makeindex
COMPACT_LATEX = NO
PAPER_TYPE = a4wide
EXTRA_PACKAGES =
LATEX_HEADER =
LATEX_FOOTER =
LATEX_EXTRA_STYLESHEET =
LATEX_EXTRA_FILES =
PDF_HYPERLINKS = YES
USE_PDFLATEX = YES
LATEX_BATCHMODE = NO
LATEX_HIDE_INDICES = NO
LATEX_SOURCE_CODE = NO
LATEX_BIB_STYLE = plain
LATEX_TIMESTAMP = NO
#---------------------------------------------------------------------------
# Configuration options related to the RTF output
#---------------------------------------------------------------------------
GENERATE_RTF = NO
RTF_OUTPUT = rtf
COMPACT_RTF = NO
RTF_HYPERLINKS = NO
RTF_STYLESHEET_FILE =
RTF_EXTENSIONS_FILE =
RTF_SOURCE_CODE = NO
#---------------------------------------------------------------------------
# Configuration options related to the man page output
#---------------------------------------------------------------------------
GENERATE_MAN = NO
MAN_OUTPUT = man
MAN_EXTENSION = .3
MAN_SUBDIR =
MAN_LINKS = NO
#---------------------------------------------------------------------------
# Configuration options related to the XML output
#---------------------------------------------------------------------------
GENERATE_XML = NO
XML_OUTPUT = xml
XML_PROGRAMLISTING = NO
#---------------------------------------------------------------------------
# Configuration options related to the DOCBOOK output
#---------------------------------------------------------------------------
GENERATE_DOCBOOK = NO
DOCBOOK_OUTPUT = docbook
DOCBOOK_PROGRAMLISTING = NO
#---------------------------------------------------------------------------
# Configuration options for the AutoGen Definitions output
#---------------------------------------------------------------------------
GENERATE_AUTOGEN_DEF = NO
#---------------------------------------------------------------------------
# Configuration options related to the Perl module output
#---------------------------------------------------------------------------
GENERATE_PERLMOD = NO
PERLMOD_LATEX = NO
PERLMOD_PRETTY = YES
PERLMOD_MAKEVAR_PREFIX =
#---------------------------------------------------------------------------
# Configuration options related to the preprocessor
#---------------------------------------------------------------------------
ENABLE_PREPROCESSING = YES
MACRO_EXPANSION = YES
EXPAND_ONLY_PREDEF = YES
SEARCH_INCLUDES = YES
INCLUDE_PATH = "@abs_top_builddir@" \
"@abs_top_srcdir@"
INCLUDE_FILE_PATTERNS = *.h
PREDEFINED = __cplusplus \
DOXYGEN_SHOULD_SKIP_THIS \
"SIGC_API=" \
SIGC_CONFIGURE \
SIGC_GCC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD \
SIGC_MSVC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD \
SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD
EXPAND_AS_DEFINED = SIGC_WORKAROUND_OPERATOR_PARENTHESES \
SIGCXX_MAJOR_VERSION \
SIGCXX_MINOR_VERSION \
SIGCXX_MICRO_VERSION
SKIP_FUNCTION_MACROS = YES
#---------------------------------------------------------------------------
# Configuration options related to external references
#---------------------------------------------------------------------------
TAGFILES = @DOXYGEN_TAGFILES@
GENERATE_TAGFILE = "reference/libsigc++-@SIGCXX_API_VERSION@.tag"
ALLEXTERNALS = NO
EXTERNAL_GROUPS = NO
EXTERNAL_PAGES = YES
PERL_PATH = @PERL@
#---------------------------------------------------------------------------
# Configuration options related to the dot tool
#---------------------------------------------------------------------------
CLASS_DIAGRAMS = YES
MSCGEN_PATH =
DIA_PATH =
HIDE_UNDOC_RELATIONS = NO
HAVE_DOT = YES
DOT_NUM_THREADS = 0
DOT_FONTNAME = Sans
DOT_FONTSIZE = 10
DOT_FONTPATH =
CLASS_GRAPH = YES
COLLABORATION_GRAPH = NO
GROUP_GRAPHS = NO
UML_LOOK = NO
UML_LIMIT_NUM_FIELDS = 10
TEMPLATE_RELATIONS = NO
INCLUDE_GRAPH = NO
INCLUDED_BY_GRAPH = NO
CALL_GRAPH = NO
CALLER_GRAPH = NO
GRAPHICAL_HIERARCHY = YES
DIRECTORY_GRAPH = NO
DOT_IMAGE_FORMAT = png
INTERACTIVE_SVG = NO
DOT_PATH =
DOTFILE_DIRS =
MSCFILE_DIRS =
DIAFILE_DIRS =
PLANTUML_JAR_PATH =
PLANTUML_INCLUDE_PATH =
DOT_GRAPH_MAX_NODES = 50
MAX_DOT_GRAPH_DEPTH = 0
DOT_TRANSPARENT = NO
DOT_MULTI_TARGETS = YES
GENERATE_LEGEND = YES
DOT_CLEANUP = YES

View File

@ -0,0 +1,259 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.11"/>
<title>libsigc++: Class List</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="doxygen-extra.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">libsigc++
&#160;<span id="projectnumber">2.10.3</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.11 -->
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li class="current"><a href="annotated.html"><span>Class&#160;List</span></a></li>
<li><a href="classes.html"><span>Class&#160;Index</span></a></li>
<li><a href="inherits.html"><span>Class&#160;Hierarchy</span></a></li>
<li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">Class List</div> </div>
</div><!--header-->
<div class="contents">
<div class="textblock">Here are the classes, structs, unions and interfaces with brief descriptions:</div><div class="directory">
<div class="levels">[detail level <span onclick="javascript:toggleLevel(1);">1</span><span onclick="javascript:toggleLevel(2);">2</span><span onclick="javascript:toggleLevel(3);">3</span>]</div><table class="directory">
<tr id="row_0_" class="even"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_0_" class="arrow" onclick="toggleFolder('0_')">&#9658;</span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespacesigc.html" target="_self">sigc</a></td><td class="desc">The libsigc++ namespace </td></tr>
<tr id="row_0_0_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structsigc_1_1adaptor__base.html" target="_self">adaptor_base</a></td><td class="desc">A hint to the compiler </td></tr>
<tr id="row_0_1_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structsigc_1_1adaptor__functor.html" target="_self">adaptor_functor</a></td><td class="desc">Converts an arbitrary functor into an adaptor type </td></tr>
<tr id="row_0_2_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structsigc_1_1adaptor__trait.html" target="_self">adaptor_trait</a></td><td class="desc">Trait that specifies what is the adaptor version of a functor type </td></tr>
<tr id="row_0_3_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structsigc_1_1adaptor__trait_3_01T__functor_00_01false_01_4.html" target="_self">adaptor_trait&lt; T_functor, false &gt;</a></td><td class="desc">Trait that specifies what is the adaptor version of a functor type </td></tr>
<tr id="row_0_4_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structsigc_1_1adaptor__trait_3_01T__functor_00_01true_01_4.html" target="_self">adaptor_trait&lt; T_functor, true &gt;</a></td><td class="desc">Trait that specifies what is the adaptor version of a functor type </td></tr>
<tr id="row_0_5_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structsigc_1_1adapts.html" target="_self">adapts</a></td><td class="desc">Base type for adaptors </td></tr>
<tr id="row_0_6_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structsigc_1_1bind__functor.html" target="_self">bind_functor</a></td><td class="desc">Adaptor that binds an argument to the wrapped functor </td></tr>
<tr id="row_0_7_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structsigc_1_1bind__functor_3_010_00_01T__functor_00_01T__bound_00_01nil_00_01nil_00_01nil_00_01nil_00_01nil_00_01nil_01_4.html" target="_self">bind_functor&lt; 0, T_functor, T_bound, nil, nil, nil, nil, nil, nil &gt;</a></td><td class="desc">Adaptor that binds an argument to the wrapped functor </td></tr>
<tr id="row_0_8_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structsigc_1_1bind__functor_3-1_00_01T__functor_00_01T__type1_00_01nil_00_01nil_00_01nil_00_01nil_00_01nil_00_01nil_01_4.html" target="_self">bind_functor&lt;-1, T_functor, T_type1, nil, nil, nil, nil, nil, nil &gt;</a></td><td class="desc">Adaptor that binds 1 argument(s) to the wrapped functor </td></tr>
<tr id="row_0_9_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structsigc_1_1bind__return__functor.html" target="_self">bind_return_functor</a></td><td class="desc">Adaptor that fixes the return value of the wrapped functor </td></tr>
<tr id="row_0_10_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classsigc_1_1bound__argument.html" target="_self">bound_argument</a></td><td class="desc">A bound_argument&lt;Foo&gt; object stores a bound (for instance, with <a class="el" href="group__bind.html#ga2f099bc6056b32f2a58134ba8537c6f4" title="Creates an adaptor of type sigc::bind_functor which binds the passed argument to the passed functor...">sigc::bind()</a>, or <a class="el" href="group__bind.html#gaca1ae2466988d67d00a5f2cd16c8d90a" title="Creates an adaptor of type sigc::bind_return_functor which fixes the return value of the passed funct...">sigc::bind_return()</a>) argument </td></tr>
<tr id="row_0_11_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classsigc_1_1bound__argument_3_01const__reference__wrapper_3_01T__wrapped_01_4_01_4.html" target="_self">bound_argument&lt; const_reference_wrapper&lt; T_wrapped &gt; &gt;</a></td><td class="desc">Bound_argument object for a bound argument that is passed by <a class="el" href="group__bind.html#ga2f099bc6056b32f2a58134ba8537c6f4" title="Creates an adaptor of type sigc::bind_functor which binds the passed argument to the passed functor...">bind()</a> or returned by <a class="el" href="group__bind.html#gaca1ae2466988d67d00a5f2cd16c8d90a" title="Creates an adaptor of type sigc::bind_return_functor which fixes the return value of the passed funct...">bind_return()</a> by const reference, specialized for const reference_wrapper&lt;&gt; types </td></tr>
<tr id="row_0_12_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classsigc_1_1bound__argument_3_01reference__wrapper_3_01T__wrapped_01_4_01_4.html" target="_self">bound_argument&lt; reference_wrapper&lt; T_wrapped &gt; &gt;</a></td><td class="desc">Bound_argument object for a bound argument that is passed by <a class="el" href="group__bind.html#ga2f099bc6056b32f2a58134ba8537c6f4" title="Creates an adaptor of type sigc::bind_functor which binds the passed argument to the passed functor...">bind()</a> or returned by <a class="el" href="group__bind.html#gaca1ae2466988d67d00a5f2cd16c8d90a" title="Creates an adaptor of type sigc::bind_return_functor which fixes the return value of the passed funct...">bind_return()</a> by reference, specialized for reference_wrapper&lt;&gt; types </td></tr>
<tr id="row_0_13_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classsigc_1_1bound__argument_3_01std_1_1reference__wrapper_3_01T__wrapped_01_4_01_4.html" target="_self">bound_argument&lt; std::reference_wrapper&lt; T_wrapped &gt; &gt;</a></td><td class="desc">Bound_argument object for a bound argument that is passed by <a class="el" href="group__bind.html#ga2f099bc6056b32f2a58134ba8537c6f4" title="Creates an adaptor of type sigc::bind_functor which binds the passed argument to the passed functor...">bind()</a> or returned by <a class="el" href="group__bind.html#gaca1ae2466988d67d00a5f2cd16c8d90a" title="Creates an adaptor of type sigc::bind_return_functor which fixes the return value of the passed funct...">bind_return()</a> by reference, specialized for std::reference_wrapper&lt;&gt; types </td></tr>
<tr id="row_0_14_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classsigc_1_1bound__const__mem__functor0.html" target="_self">bound_const_mem_functor0</a></td><td class="desc">Bound_const_mem_functor0 encapsulates a const method with 0 arguments and an object instance </td></tr>
<tr id="row_0_15_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classsigc_1_1bound__const__mem__functor1.html" target="_self">bound_const_mem_functor1</a></td><td class="desc">Bound_const_mem_functor1 encapsulates a const method with 1 arguments and an object instance </td></tr>
<tr id="row_0_16_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classsigc_1_1bound__const__mem__functor2.html" target="_self">bound_const_mem_functor2</a></td><td class="desc">Bound_const_mem_functor2 encapsulates a const method with 2 arguments and an object instance </td></tr>
<tr id="row_0_17_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classsigc_1_1bound__const__mem__functor3.html" target="_self">bound_const_mem_functor3</a></td><td class="desc">Bound_const_mem_functor3 encapsulates a const method with 3 arguments and an object instance </td></tr>
<tr id="row_0_18_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classsigc_1_1bound__const__mem__functor4.html" target="_self">bound_const_mem_functor4</a></td><td class="desc">Bound_const_mem_functor4 encapsulates a const method with 4 arguments and an object instance </td></tr>
<tr id="row_0_19_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classsigc_1_1bound__const__mem__functor5.html" target="_self">bound_const_mem_functor5</a></td><td class="desc">Bound_const_mem_functor5 encapsulates a const method with 5 arguments and an object instance </td></tr>
<tr id="row_0_20_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classsigc_1_1bound__const__mem__functor6.html" target="_self">bound_const_mem_functor6</a></td><td class="desc">Bound_const_mem_functor6 encapsulates a const method with 6 arguments and an object instance </td></tr>
<tr id="row_0_21_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classsigc_1_1bound__const__mem__functor7.html" target="_self">bound_const_mem_functor7</a></td><td class="desc">Bound_const_mem_functor7 encapsulates a const method with 7 arguments and an object instance </td></tr>
<tr id="row_0_22_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classsigc_1_1bound__const__volatile__mem__functor0.html" target="_self">bound_const_volatile_mem_functor0</a></td><td class="desc">Bound_const_volatile_mem_functor0 encapsulates a const volatile method with 0 arguments and an object instance </td></tr>
<tr id="row_0_23_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classsigc_1_1bound__const__volatile__mem__functor1.html" target="_self">bound_const_volatile_mem_functor1</a></td><td class="desc">Bound_const_volatile_mem_functor1 encapsulates a const volatile method with 1 arguments and an object instance </td></tr>
<tr id="row_0_24_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classsigc_1_1bound__const__volatile__mem__functor2.html" target="_self">bound_const_volatile_mem_functor2</a></td><td class="desc">Bound_const_volatile_mem_functor2 encapsulates a const volatile method with 2 arguments and an object instance </td></tr>
<tr id="row_0_25_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classsigc_1_1bound__const__volatile__mem__functor3.html" target="_self">bound_const_volatile_mem_functor3</a></td><td class="desc">Bound_const_volatile_mem_functor3 encapsulates a const volatile method with 3 arguments and an object instance </td></tr>
<tr id="row_0_26_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classsigc_1_1bound__const__volatile__mem__functor4.html" target="_self">bound_const_volatile_mem_functor4</a></td><td class="desc">Bound_const_volatile_mem_functor4 encapsulates a const volatile method with 4 arguments and an object instance </td></tr>
<tr id="row_0_27_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classsigc_1_1bound__const__volatile__mem__functor5.html" target="_self">bound_const_volatile_mem_functor5</a></td><td class="desc">Bound_const_volatile_mem_functor5 encapsulates a const volatile method with 5 arguments and an object instance </td></tr>
<tr id="row_0_28_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classsigc_1_1bound__const__volatile__mem__functor6.html" target="_self">bound_const_volatile_mem_functor6</a></td><td class="desc">Bound_const_volatile_mem_functor6 encapsulates a const volatile method with 6 arguments and an object instance </td></tr>
<tr id="row_0_29_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classsigc_1_1bound__const__volatile__mem__functor7.html" target="_self">bound_const_volatile_mem_functor7</a></td><td class="desc">Bound_const_volatile_mem_functor7 encapsulates a const volatile method with 7 arguments and an object instance </td></tr>
<tr id="row_0_30_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classsigc_1_1bound__mem__functor0.html" target="_self">bound_mem_functor0</a></td><td class="desc">Bound_mem_functor0 encapsulates a method with 0 arguments and an object instance </td></tr>
<tr id="row_0_31_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classsigc_1_1bound__mem__functor1.html" target="_self">bound_mem_functor1</a></td><td class="desc">Bound_mem_functor1 encapsulates a method with 1 arguments and an object instance </td></tr>
<tr id="row_0_32_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classsigc_1_1bound__mem__functor2.html" target="_self">bound_mem_functor2</a></td><td class="desc">Bound_mem_functor2 encapsulates a method with 2 arguments and an object instance </td></tr>
<tr id="row_0_33_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classsigc_1_1bound__mem__functor3.html" target="_self">bound_mem_functor3</a></td><td class="desc">Bound_mem_functor3 encapsulates a method with 3 arguments and an object instance </td></tr>
<tr id="row_0_34_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classsigc_1_1bound__mem__functor4.html" target="_self">bound_mem_functor4</a></td><td class="desc">Bound_mem_functor4 encapsulates a method with 4 arguments and an object instance </td></tr>
<tr id="row_0_35_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classsigc_1_1bound__mem__functor5.html" target="_self">bound_mem_functor5</a></td><td class="desc">Bound_mem_functor5 encapsulates a method with 5 arguments and an object instance </td></tr>
<tr id="row_0_36_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classsigc_1_1bound__mem__functor6.html" target="_self">bound_mem_functor6</a></td><td class="desc">Bound_mem_functor6 encapsulates a method with 6 arguments and an object instance </td></tr>
<tr id="row_0_37_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classsigc_1_1bound__mem__functor7.html" target="_self">bound_mem_functor7</a></td><td class="desc">Bound_mem_functor7 encapsulates a method with 7 arguments and an object instance </td></tr>
<tr id="row_0_38_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classsigc_1_1bound__volatile__mem__functor0.html" target="_self">bound_volatile_mem_functor0</a></td><td class="desc">Bound_volatile_mem_functor0 encapsulates a volatile method with 0 arguments and an object instance </td></tr>
<tr id="row_0_39_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classsigc_1_1bound__volatile__mem__functor1.html" target="_self">bound_volatile_mem_functor1</a></td><td class="desc">Bound_volatile_mem_functor1 encapsulates a volatile method with 1 arguments and an object instance </td></tr>
<tr id="row_0_40_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classsigc_1_1bound__volatile__mem__functor2.html" target="_self">bound_volatile_mem_functor2</a></td><td class="desc">Bound_volatile_mem_functor2 encapsulates a volatile method with 2 arguments and an object instance </td></tr>
<tr id="row_0_41_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classsigc_1_1bound__volatile__mem__functor3.html" target="_self">bound_volatile_mem_functor3</a></td><td class="desc">Bound_volatile_mem_functor3 encapsulates a volatile method with 3 arguments and an object instance </td></tr>
<tr id="row_0_42_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classsigc_1_1bound__volatile__mem__functor4.html" target="_self">bound_volatile_mem_functor4</a></td><td class="desc">Bound_volatile_mem_functor4 encapsulates a volatile method with 4 arguments and an object instance </td></tr>
<tr id="row_0_43_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classsigc_1_1bound__volatile__mem__functor5.html" target="_self">bound_volatile_mem_functor5</a></td><td class="desc">Bound_volatile_mem_functor5 encapsulates a volatile method with 5 arguments and an object instance </td></tr>
<tr id="row_0_44_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classsigc_1_1bound__volatile__mem__functor6.html" target="_self">bound_volatile_mem_functor6</a></td><td class="desc">Bound_volatile_mem_functor6 encapsulates a volatile method with 6 arguments and an object instance </td></tr>
<tr id="row_0_45_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classsigc_1_1bound__volatile__mem__functor7.html" target="_self">bound_volatile_mem_functor7</a></td><td class="desc">Bound_volatile_mem_functor7 encapsulates a volatile method with 7 arguments and an object instance </td></tr>
<tr id="row_0_46_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classsigc_1_1can__deduce__result__type__with__decltype.html" target="_self">can_deduce_result_type_with_decltype</a></td><td class="desc">Helper class, to determine if decltype() can deduce the result type of a functor </td></tr>
<tr id="row_0_47_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structsigc_1_1compose1__functor.html" target="_self">compose1_functor</a></td><td class="desc">Adaptor that combines two functors </td></tr>
<tr id="row_0_48_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structsigc_1_1compose2__functor.html" target="_self">compose2_functor</a></td><td class="desc">Adaptor that combines three functors </td></tr>
<tr id="row_0_49_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structsigc_1_1connection.html" target="_self">connection</a></td><td class="desc">Convinience class for safe disconnection </td></tr>
<tr id="row_0_50_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classsigc_1_1const__limit__reference.html" target="_self">const_limit_reference</a></td><td class="desc">A const_limit_reference&lt;Foo&gt; object stores a reference (Foo&amp;), but make sure that, if Foo inherits from <a class="el" href="structsigc_1_1trackable.html" title="Base class for objects with auto-disconnection. ">sigc::trackable</a>, then <a class="el" href="group__sigcfunctors.html#ga64cb7832acc1e58efb5ffe0b4f5e9404" title="This function performs a functor on each of the targets of a functor. ">visit_each&lt;&gt;()</a> will "limit" itself to the <a class="el" href="structsigc_1_1trackable.html" title="Base class for objects with auto-disconnection. ">sigc::trackable</a> reference instead of the derived reference </td></tr>
<tr id="row_0_51_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classsigc_1_1const__limit__reference_3_01T__type_00_01true_01_4.html" target="_self">const_limit_reference&lt; T_type, true &gt;</a></td><td class="desc">Const_limit_reference object for a class that derives from trackable </td></tr>
<tr id="row_0_52_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classsigc_1_1const__mem__functor0.html" target="_self">const_mem_functor0</a></td><td class="desc">Const_mem_functor0 wraps const methods with 0 argument(s) </td></tr>
<tr id="row_0_53_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classsigc_1_1const__mem__functor1.html" target="_self">const_mem_functor1</a></td><td class="desc">Const_mem_functor1 wraps const methods with 1 argument(s) </td></tr>
<tr id="row_0_54_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classsigc_1_1const__mem__functor2.html" target="_self">const_mem_functor2</a></td><td class="desc">Const_mem_functor2 wraps const methods with 2 argument(s) </td></tr>
<tr id="row_0_55_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classsigc_1_1const__mem__functor3.html" target="_self">const_mem_functor3</a></td><td class="desc">Const_mem_functor3 wraps const methods with 3 argument(s) </td></tr>
<tr id="row_0_56_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classsigc_1_1const__mem__functor4.html" target="_self">const_mem_functor4</a></td><td class="desc">Const_mem_functor4 wraps const methods with 4 argument(s) </td></tr>
<tr id="row_0_57_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classsigc_1_1const__mem__functor5.html" target="_self">const_mem_functor5</a></td><td class="desc">Const_mem_functor5 wraps const methods with 5 argument(s) </td></tr>
<tr id="row_0_58_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classsigc_1_1const__mem__functor6.html" target="_self">const_mem_functor6</a></td><td class="desc">Const_mem_functor6 wraps const methods with 6 argument(s) </td></tr>
<tr id="row_0_59_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classsigc_1_1const__mem__functor7.html" target="_self">const_mem_functor7</a></td><td class="desc">Const_mem_functor7 wraps const methods with 7 argument(s) </td></tr>
<tr id="row_0_60_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structsigc_1_1const__reference__wrapper.html" target="_self">const_reference_wrapper</a></td><td class="desc">Const reference wrapper </td></tr>
<tr id="row_0_61_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classsigc_1_1const__volatile__limit__reference.html" target="_self">const_volatile_limit_reference</a></td><td class="desc">A const_volatile_limit_reference&lt;Foo&gt; object stores a reference (Foo&amp;), but make sure that, if Foo inherits from <a class="el" href="structsigc_1_1trackable.html" title="Base class for objects with auto-disconnection. ">sigc::trackable</a>, then <a class="el" href="group__sigcfunctors.html#ga64cb7832acc1e58efb5ffe0b4f5e9404" title="This function performs a functor on each of the targets of a functor. ">visit_each&lt;&gt;()</a> will "limit" itself to the <a class="el" href="structsigc_1_1trackable.html" title="Base class for objects with auto-disconnection. ">sigc::trackable</a> reference instead of the derived reference </td></tr>
<tr id="row_0_62_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classsigc_1_1const__volatile__limit__reference_3_01T__type_00_01true_01_4.html" target="_self">const_volatile_limit_reference&lt; T_type, true &gt;</a></td><td class="desc">Const_volatile_limit_reference object for a class that derives from trackable </td></tr>
<tr id="row_0_63_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classsigc_1_1const__volatile__mem__functor0.html" target="_self">const_volatile_mem_functor0</a></td><td class="desc">Const_volatile_mem_functor0 wraps const volatile methods with 0 argument(s) </td></tr>
<tr id="row_0_64_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classsigc_1_1const__volatile__mem__functor1.html" target="_self">const_volatile_mem_functor1</a></td><td class="desc">Const_volatile_mem_functor1 wraps const volatile methods with 1 argument(s) </td></tr>
<tr id="row_0_65_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classsigc_1_1const__volatile__mem__functor2.html" target="_self">const_volatile_mem_functor2</a></td><td class="desc">Const_volatile_mem_functor2 wraps const volatile methods with 2 argument(s) </td></tr>
<tr id="row_0_66_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classsigc_1_1const__volatile__mem__functor3.html" target="_self">const_volatile_mem_functor3</a></td><td class="desc">Const_volatile_mem_functor3 wraps const volatile methods with 3 argument(s) </td></tr>
<tr id="row_0_67_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classsigc_1_1const__volatile__mem__functor4.html" target="_self">const_volatile_mem_functor4</a></td><td class="desc">Const_volatile_mem_functor4 wraps const volatile methods with 4 argument(s) </td></tr>
<tr id="row_0_68_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classsigc_1_1const__volatile__mem__functor5.html" target="_self">const_volatile_mem_functor5</a></td><td class="desc">Const_volatile_mem_functor5 wraps const volatile methods with 5 argument(s) </td></tr>
<tr id="row_0_69_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classsigc_1_1const__volatile__mem__functor6.html" target="_self">const_volatile_mem_functor6</a></td><td class="desc">Const_volatile_mem_functor6 wraps const volatile methods with 6 argument(s) </td></tr>
<tr id="row_0_70_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classsigc_1_1const__volatile__mem__functor7.html" target="_self">const_volatile_mem_functor7</a></td><td class="desc">Const_volatile_mem_functor7 wraps const volatile methods with 7 argument(s) </td></tr>
<tr id="row_0_71_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structsigc_1_1deduce__result__type.html" target="_self">deduce_result_type</a></td><td class="desc">Deduce the return type of a functor </td></tr>
<tr id="row_0_72_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structsigc_1_1exception__catch__functor.html" target="_self">exception_catch_functor</a></td><td class="desc"></td></tr>
<tr id="row_0_73_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structsigc_1_1exception__catch__functor_3_01T__functor_00_01T__catcher_00_01void_01_4.html" target="_self">exception_catch_functor&lt; T_functor, T_catcher, void &gt;</a></td><td class="desc"></td></tr>
<tr id="row_0_74_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structsigc_1_1functor__base.html" target="_self">functor_base</a></td><td class="desc">A hint to the compiler </td></tr>
<tr id="row_0_75_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structsigc_1_1functor__trait.html" target="_self">functor_trait</a></td><td class="desc">Trait that specifies the return type of any type </td></tr>
<tr id="row_0_76_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structsigc_1_1hide__functor.html" target="_self">hide_functor</a></td><td class="desc">Adaptor that adds a dummy parameter to the wrapped functor </td></tr>
<tr id="row_0_77_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structsigc_1_1hide__functor_3_010_00_01T__functor_01_4.html" target="_self">hide_functor&lt; 0, T_functor &gt;</a></td><td class="desc">Adaptor that adds a dummy parameter to the wrapped functor </td></tr>
<tr id="row_0_78_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structsigc_1_1hide__functor_3-1_00_01T__functor_01_4.html" target="_self">hide_functor&lt;-1, T_functor &gt;</a></td><td class="desc">Adaptor that adds a dummy parameter to the wrapped functor </td></tr>
<tr id="row_0_79_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classsigc_1_1limit__reference.html" target="_self">limit_reference</a></td><td class="desc">A limit_reference&lt;Foo&gt; object stores a reference (Foo&amp;), but make sure that, if Foo inherits from <a class="el" href="structsigc_1_1trackable.html" title="Base class for objects with auto-disconnection. ">sigc::trackable</a>, then <a class="el" href="group__sigcfunctors.html#ga64cb7832acc1e58efb5ffe0b4f5e9404" title="This function performs a functor on each of the targets of a functor. ">visit_each&lt;&gt;()</a> will "limit" itself to the <a class="el" href="structsigc_1_1trackable.html" title="Base class for objects with auto-disconnection. ">sigc::trackable</a> reference instead of the derived reference </td></tr>
<tr id="row_0_80_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classsigc_1_1limit__reference_3_01T__type_00_01true_01_4.html" target="_self">limit_reference&lt; T_type, true &gt;</a></td><td class="desc">Limit_reference object for a class that derives from trackable </td></tr>
<tr id="row_0_81_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classsigc_1_1mem__functor0.html" target="_self">mem_functor0</a></td><td class="desc">Mem_functor0 wraps methods with 0 argument(s) </td></tr>
<tr id="row_0_82_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classsigc_1_1mem__functor1.html" target="_self">mem_functor1</a></td><td class="desc">Mem_functor1 wraps methods with 1 argument(s) </td></tr>
<tr id="row_0_83_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classsigc_1_1mem__functor2.html" target="_self">mem_functor2</a></td><td class="desc">Mem_functor2 wraps methods with 2 argument(s) </td></tr>
<tr id="row_0_84_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classsigc_1_1mem__functor3.html" target="_self">mem_functor3</a></td><td class="desc">Mem_functor3 wraps methods with 3 argument(s) </td></tr>
<tr id="row_0_85_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classsigc_1_1mem__functor4.html" target="_self">mem_functor4</a></td><td class="desc">Mem_functor4 wraps methods with 4 argument(s) </td></tr>
<tr id="row_0_86_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classsigc_1_1mem__functor5.html" target="_self">mem_functor5</a></td><td class="desc">Mem_functor5 wraps methods with 5 argument(s) </td></tr>
<tr id="row_0_87_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classsigc_1_1mem__functor6.html" target="_self">mem_functor6</a></td><td class="desc">Mem_functor6 wraps methods with 6 argument(s) </td></tr>
<tr id="row_0_88_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classsigc_1_1mem__functor7.html" target="_self">mem_functor7</a></td><td class="desc">Mem_functor7 wraps methods with 7 argument(s) </td></tr>
<tr id="row_0_89_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structsigc_1_1nil.html" target="_self">nil</a></td><td class="desc">Nil struct type </td></tr>
<tr id="row_0_90_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classsigc_1_1pointer__functor0.html" target="_self">pointer_functor0</a></td><td class="desc">Pointer_functor0 wraps existing non-member functions with 0 argument(s) </td></tr>
<tr id="row_0_91_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classsigc_1_1pointer__functor1.html" target="_self">pointer_functor1</a></td><td class="desc">Pointer_functor1 wraps existing non-member functions with 1 argument(s) </td></tr>
<tr id="row_0_92_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classsigc_1_1pointer__functor2.html" target="_self">pointer_functor2</a></td><td class="desc">Pointer_functor2 wraps existing non-member functions with 2 argument(s) </td></tr>
<tr id="row_0_93_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classsigc_1_1pointer__functor3.html" target="_self">pointer_functor3</a></td><td class="desc">Pointer_functor3 wraps existing non-member functions with 3 argument(s) </td></tr>
<tr id="row_0_94_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classsigc_1_1pointer__functor4.html" target="_self">pointer_functor4</a></td><td class="desc">Pointer_functor4 wraps existing non-member functions with 4 argument(s) </td></tr>
<tr id="row_0_95_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classsigc_1_1pointer__functor5.html" target="_self">pointer_functor5</a></td><td class="desc">Pointer_functor5 wraps existing non-member functions with 5 argument(s) </td></tr>
<tr id="row_0_96_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classsigc_1_1pointer__functor6.html" target="_self">pointer_functor6</a></td><td class="desc">Pointer_functor6 wraps existing non-member functions with 6 argument(s) </td></tr>
<tr id="row_0_97_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classsigc_1_1pointer__functor7.html" target="_self">pointer_functor7</a></td><td class="desc">Pointer_functor7 wraps existing non-member functions with 7 argument(s) </td></tr>
<tr id="row_0_98_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structsigc_1_1reference__wrapper.html" target="_self">reference_wrapper</a></td><td class="desc">Reference wrapper </td></tr>
<tr id="row_0_99_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structsigc_1_1retype__functor.html" target="_self">retype_functor</a></td><td class="desc">Adaptor that performs C-style casts on the parameters passed on to the functor </td></tr>
<tr id="row_0_100_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structsigc_1_1retype__return__functor.html" target="_self">retype_return_functor</a></td><td class="desc">Adaptor that performs a C-style cast on the return value of a functor </td></tr>
<tr id="row_0_101_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structsigc_1_1retype__return__functor_3_01void_00_01T__functor_01_4.html" target="_self">retype_return_functor&lt; void, T_functor &gt;</a></td><td class="desc">Adaptor that performs a C-style cast on the return value of a functor </td></tr>
<tr id="row_0_102_" style="display:none;"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_0_102_" class="arrow" onclick="toggleFolder('0_102_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classsigc_1_1signal.html" target="_self">signal</a></td><td class="desc">Convenience wrapper for the numbered <a class="el" href="classsigc_1_1signal.html" title="Convenience wrapper for the numbered sigc::signal# templates. ">sigc::signal</a># templates </td></tr>
<tr id="row_0_102_0_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classsigc_1_1signal_1_1accumulated.html" target="_self">accumulated</a></td><td class="desc">Convenience wrapper for the numbered <a class="el" href="classsigc_1_1signal.html" title="Convenience wrapper for the numbered sigc::signal# templates. ">sigc::signal</a># templates </td></tr>
<tr id="row_0_103_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classsigc_1_1signal0.html" target="_self">signal0</a></td><td class="desc">Signal declaration </td></tr>
<tr id="row_0_104_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classsigc_1_1signal1.html" target="_self">signal1</a></td><td class="desc">Signal declaration </td></tr>
<tr id="row_0_105_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classsigc_1_1signal2.html" target="_self">signal2</a></td><td class="desc">Signal declaration </td></tr>
<tr id="row_0_106_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classsigc_1_1signal3.html" target="_self">signal3</a></td><td class="desc">Signal declaration </td></tr>
<tr id="row_0_107_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classsigc_1_1signal4.html" target="_self">signal4</a></td><td class="desc">Signal declaration </td></tr>
<tr id="row_0_108_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classsigc_1_1signal5.html" target="_self">signal5</a></td><td class="desc">Signal declaration </td></tr>
<tr id="row_0_109_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classsigc_1_1signal6.html" target="_self">signal6</a></td><td class="desc">Signal declaration </td></tr>
<tr id="row_0_110_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classsigc_1_1signal7.html" target="_self">signal7</a></td><td class="desc">Signal declaration </td></tr>
<tr id="row_0_111_" style="display:none;"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_0_111_" class="arrow" onclick="toggleFolder('0_111_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classsigc_1_1signal_3_01T__return_07_08_4.html" target="_self">signal&lt; T_return()&gt;</a></td><td class="desc">This specialization allow use of the sigc::signal&lt;R(Args...)&gt; syntax, </td></tr>
<tr id="row_0_111_0_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classsigc_1_1signal_3_01T__return_07_08_4_1_1accumulated.html" target="_self">accumulated</a></td><td class="desc">Convenience wrapper for the numbered <a class="el" href="classsigc_1_1signal0.html" title="Signal declaration. ">sigc::signal0</a> template </td></tr>
<tr id="row_0_112_" style="display:none;"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_0_112_" class="arrow" onclick="toggleFolder('0_112_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classsigc_1_1signal_3_01T__return_07T__arg1_08_4.html" target="_self">signal&lt; T_return(T_arg1)&gt;</a></td><td class="desc">This specialization allow use of the sigc::signal&lt;R(Args...)&gt; syntax, </td></tr>
<tr id="row_0_112_0_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classsigc_1_1signal_3_01T__return_07T__arg1_08_4_1_1accumulated.html" target="_self">accumulated</a></td><td class="desc">Convenience wrapper for the numbered <a class="el" href="classsigc_1_1signal1.html" title="Signal declaration. ">sigc::signal1</a> template </td></tr>
<tr id="row_0_113_" style="display:none;"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_0_113_" class="arrow" onclick="toggleFolder('0_113_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classsigc_1_1signal_3_01T__return_07T__arg1_00_01T__arg2_08_4.html" target="_self">signal&lt; T_return(T_arg1, T_arg2)&gt;</a></td><td class="desc">This specialization allow use of the sigc::signal&lt;R(Args...)&gt; syntax, </td></tr>
<tr id="row_0_113_0_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classsigc_1_1signal_3_01T__return_07T__arg1_00_01T__arg2_08_4_1_1accumulated.html" target="_self">accumulated</a></td><td class="desc">Convenience wrapper for the numbered <a class="el" href="classsigc_1_1signal2.html" title="Signal declaration. ">sigc::signal2</a> template </td></tr>
<tr id="row_0_114_" style="display:none;"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_0_114_" class="arrow" onclick="toggleFolder('0_114_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classsigc_1_1signal_3_01T__return_07T__arg1_00_01T__arg2_00_01T__arg3_08_4.html" target="_self">signal&lt; T_return(T_arg1, T_arg2, T_arg3)&gt;</a></td><td class="desc">This specialization allow use of the sigc::signal&lt;R(Args...)&gt; syntax, </td></tr>
<tr id="row_0_114_0_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classsigc_1_1signal_3_01T__return_07T__arg1_00_01T__arg2_00_01T__arg3_08_4_1_1accumulated.html" target="_self">accumulated</a></td><td class="desc">Convenience wrapper for the numbered <a class="el" href="classsigc_1_1signal3.html" title="Signal declaration. ">sigc::signal3</a> template </td></tr>
<tr id="row_0_115_" style="display:none;"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_0_115_" class="arrow" onclick="toggleFolder('0_115_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classsigc_1_1signal_3_01T__return_07T__arg1_00_01T__arg2_00_01T__arg3_00_01T__arg4_08_4.html" target="_self">signal&lt; T_return(T_arg1, T_arg2, T_arg3, T_arg4)&gt;</a></td><td class="desc">This specialization allow use of the sigc::signal&lt;R(Args...)&gt; syntax, </td></tr>
<tr id="row_0_115_0_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classsigc_1_1signal_3_01T__return_07T__arg1_00_01T__arg2_00_01T__arg3_00_01T__arg4_08_4_1_1accumulated.html" target="_self">accumulated</a></td><td class="desc">Convenience wrapper for the numbered <a class="el" href="classsigc_1_1signal4.html" title="Signal declaration. ">sigc::signal4</a> template </td></tr>
<tr id="row_0_116_" style="display:none;"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_0_116_" class="arrow" onclick="toggleFolder('0_116_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classsigc_1_1signal_3_01T__return_07T__arg1_00_01T__arg2_00_01T__arg3_00_01T__arg4_00_01T__arg5_08_4.html" target="_self">signal&lt; T_return(T_arg1, T_arg2, T_arg3, T_arg4, T_arg5)&gt;</a></td><td class="desc">This specialization allow use of the sigc::signal&lt;R(Args...)&gt; syntax, </td></tr>
<tr id="row_0_116_0_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classsigc_1_1signal_3_01T__return_07T__arg1_00_01T__arg2_00_01T__arg3_00_01T__arg4_00_01T__arg5_08_4_1_1accumulated.html" target="_self">accumulated</a></td><td class="desc">Convenience wrapper for the numbered <a class="el" href="classsigc_1_1signal5.html" title="Signal declaration. ">sigc::signal5</a> template </td></tr>
<tr id="row_0_117_" style="display:none;"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_0_117_" class="arrow" onclick="toggleFolder('0_117_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classsigc_1_1signal_3_01T__return_07T__arg1_00_01T__arg2_00_01T__arg3_00_01T__arg4_00_01T__arg5_00_01T__arg6_08_4.html" target="_self">signal&lt; T_return(T_arg1, T_arg2, T_arg3, T_arg4, T_arg5, T_arg6)&gt;</a></td><td class="desc">This specialization allow use of the sigc::signal&lt;R(Args...)&gt; syntax, </td></tr>
<tr id="row_0_117_0_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classsigc_1_1signal_3_01T__return_07T__arg1_00_01T__arg2_00_01T__arg3_00_01T__arg4_00_01T__arg5_dace8c5b03b250e13cd615dbc3de0ac4.html" target="_self">accumulated</a></td><td class="desc">Convenience wrapper for the numbered <a class="el" href="classsigc_1_1signal6.html" title="Signal declaration. ">sigc::signal6</a> template </td></tr>
<tr id="row_0_118_" style="display:none;"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_0_118_" class="arrow" onclick="toggleFolder('0_118_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classsigc_1_1signal_3_01T__return_07T__arg1_00_01T__arg2_00_01T__arg3_00_01T__arg4_00_01T__arg5_00_01T__arg6_00_01T__arg7_08_4.html" target="_self">signal&lt; T_return(T_arg1, T_arg2, T_arg3, T_arg4, T_arg5, T_arg6, T_arg7)&gt;</a></td><td class="desc">This specialization allow use of the sigc::signal&lt;R(Args...)&gt; syntax, </td></tr>
<tr id="row_0_118_0_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classsigc_1_1signal_3_01T__return_07T__arg1_00_01T__arg2_00_01T__arg3_00_01T__arg4_00_01T__arg5_e94644748df11174db4187c0801a1d95.html" target="_self">accumulated</a></td><td class="desc">Convenience wrapper for the numbered <a class="el" href="classsigc_1_1signal.html" title="Convenience wrapper for the numbered sigc::signal# templates. ">sigc::signal</a># templates </td></tr>
<tr id="row_0_119_" style="display:none;"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_0_119_" class="arrow" onclick="toggleFolder('0_119_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classsigc_1_1signal_3_01T__return_00_01nil_00_01nil_00_01nil_00_01nil_00_01nil_00_01nil_00_01nil_01_4.html" target="_self">signal&lt; T_return, nil, nil, nil, nil, nil, nil, nil &gt;</a></td><td class="desc">Convenience wrapper for the numbered <a class="el" href="classsigc_1_1signal0.html" title="Signal declaration. ">sigc::signal0</a> template </td></tr>
<tr id="row_0_119_0_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classsigc_1_1signal_3_01T__return_00_01nil_00_01nil_00_01nil_00_01nil_00_01nil_00_01nil_00_01nil_01_4_1_1accumulated.html" target="_self">accumulated</a></td><td class="desc">Convenience wrapper for the numbered <a class="el" href="classsigc_1_1signal0.html" title="Signal declaration. ">sigc::signal0</a> template </td></tr>
<tr id="row_0_120_" style="display:none;"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_0_120_" class="arrow" onclick="toggleFolder('0_120_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classsigc_1_1signal_3_01T__return_00_01T__arg1_00_01nil_00_01nil_00_01nil_00_01nil_00_01nil_00_01nil_01_4.html" target="_self">signal&lt; T_return, T_arg1, nil, nil, nil, nil, nil, nil &gt;</a></td><td class="desc">Convenience wrapper for the numbered <a class="el" href="classsigc_1_1signal1.html" title="Signal declaration. ">sigc::signal1</a> template </td></tr>
<tr id="row_0_120_0_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classsigc_1_1signal_3_01T__return_00_01T__arg1_00_01nil_00_01nil_00_01nil_00_01nil_00_01nil_00_01nil_01_4_1_1accumulated.html" target="_self">accumulated</a></td><td class="desc">Convenience wrapper for the numbered <a class="el" href="classsigc_1_1signal1.html" title="Signal declaration. ">sigc::signal1</a> template </td></tr>
<tr id="row_0_121_" style="display:none;"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_0_121_" class="arrow" onclick="toggleFolder('0_121_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classsigc_1_1signal_3_01T__return_00_01T__arg1_00_01T__arg2_00_01nil_00_01nil_00_01nil_00_01nil_00_01nil_01_4.html" target="_self">signal&lt; T_return, T_arg1, T_arg2, nil, nil, nil, nil, nil &gt;</a></td><td class="desc">Convenience wrapper for the numbered <a class="el" href="classsigc_1_1signal2.html" title="Signal declaration. ">sigc::signal2</a> template </td></tr>
<tr id="row_0_121_0_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classsigc_1_1signal_3_01T__return_00_01T__arg1_00_01T__arg2_00_01nil_00_01nil_00_01nil_00_01nil_00_01nil_01_4_1_1accumulated.html" target="_self">accumulated</a></td><td class="desc">Convenience wrapper for the numbered <a class="el" href="classsigc_1_1signal2.html" title="Signal declaration. ">sigc::signal2</a> template </td></tr>
<tr id="row_0_122_" style="display:none;"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_0_122_" class="arrow" onclick="toggleFolder('0_122_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classsigc_1_1signal_3_01T__return_00_01T__arg1_00_01T__arg2_00_01T__arg3_00_01nil_00_01nil_00_01nil_00_01nil_01_4.html" target="_self">signal&lt; T_return, T_arg1, T_arg2, T_arg3, nil, nil, nil, nil &gt;</a></td><td class="desc">Convenience wrapper for the numbered <a class="el" href="classsigc_1_1signal3.html" title="Signal declaration. ">sigc::signal3</a> template </td></tr>
<tr id="row_0_122_0_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classsigc_1_1signal_3_01T__return_00_01T__arg1_00_01T__arg2_00_01T__arg3_00_01nil_00_01nil_00_01852c349c390cefa04662a850d84c0a94.html" target="_self">accumulated</a></td><td class="desc">Convenience wrapper for the numbered <a class="el" href="classsigc_1_1signal3.html" title="Signal declaration. ">sigc::signal3</a> template </td></tr>
<tr id="row_0_123_" style="display:none;"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_0_123_" class="arrow" onclick="toggleFolder('0_123_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classsigc_1_1signal_3_01T__return_00_01T__arg1_00_01T__arg2_00_01T__arg3_00_01T__arg4_00_01nil_00_01nil_00_01nil_01_4.html" target="_self">signal&lt; T_return, T_arg1, T_arg2, T_arg3, T_arg4, nil, nil, nil &gt;</a></td><td class="desc">Convenience wrapper for the numbered <a class="el" href="classsigc_1_1signal4.html" title="Signal declaration. ">sigc::signal4</a> template </td></tr>
<tr id="row_0_123_0_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classsigc_1_1signal_3_01T__return_00_01T__arg1_00_01T__arg2_00_01T__arg3_00_01T__arg4_00_01nil_0d729ce48b1328d982e0ee754652fed04.html" target="_self">accumulated</a></td><td class="desc">Convenience wrapper for the numbered <a class="el" href="classsigc_1_1signal4.html" title="Signal declaration. ">sigc::signal4</a> template </td></tr>
<tr id="row_0_124_" style="display:none;"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_0_124_" class="arrow" onclick="toggleFolder('0_124_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classsigc_1_1signal_3_01T__return_00_01T__arg1_00_01T__arg2_00_01T__arg3_00_01T__arg4_00_01T__arg5_00_01nil_00_01nil_01_4.html" target="_self">signal&lt; T_return, T_arg1, T_arg2, T_arg3, T_arg4, T_arg5, nil, nil &gt;</a></td><td class="desc">Convenience wrapper for the numbered <a class="el" href="classsigc_1_1signal5.html" title="Signal declaration. ">sigc::signal5</a> template </td></tr>
<tr id="row_0_124_0_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classsigc_1_1signal_3_01T__return_00_01T__arg1_00_01T__arg2_00_01T__arg3_00_01T__arg4_00_01T__arcf6cb51783c363bfae7c4a91d9685109.html" target="_self">accumulated</a></td><td class="desc">Convenience wrapper for the numbered <a class="el" href="classsigc_1_1signal5.html" title="Signal declaration. ">sigc::signal5</a> template </td></tr>
<tr id="row_0_125_" style="display:none;"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_0_125_" class="arrow" onclick="toggleFolder('0_125_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classsigc_1_1signal_3_01T__return_00_01T__arg1_00_01T__arg2_00_01T__arg3_00_01T__arg4_00_01T__arg5_00_01T__arg6_00_01nil_01_4.html" target="_self">signal&lt; T_return, T_arg1, T_arg2, T_arg3, T_arg4, T_arg5, T_arg6, nil &gt;</a></td><td class="desc">Convenience wrapper for the numbered <a class="el" href="classsigc_1_1signal6.html" title="Signal declaration. ">sigc::signal6</a> template </td></tr>
<tr id="row_0_125_0_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classsigc_1_1signal_3_01T__return_00_01T__arg1_00_01T__arg2_00_01T__arg3_00_01T__arg4_00_01T__are33def4d0c1a12dcbfd220489302db67.html" target="_self">accumulated</a></td><td class="desc">Convenience wrapper for the numbered <a class="el" href="classsigc_1_1signal6.html" title="Signal declaration. ">sigc::signal6</a> template </td></tr>
<tr id="row_0_126_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structsigc_1_1signal__base.html" target="_self">signal_base</a></td><td class="desc">Base class for the <a class="el" href="classsigc_1_1signal.html" title="Convenience wrapper for the numbered sigc::signal# templates. ">sigc::signal</a># templates </td></tr>
<tr id="row_0_127_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classsigc_1_1slot.html" target="_self">slot</a></td><td class="desc">Convenience wrapper for the numbered <a class="el" href="classsigc_1_1slot.html" title="Convenience wrapper for the numbered sigc::slot# templates. ">sigc::slot</a># templates </td></tr>
<tr id="row_0_128_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classsigc_1_1slot0.html" target="_self">slot0</a></td><td class="desc">Converts an arbitrary functor to a unified type which is opaque </td></tr>
<tr id="row_0_129_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classsigc_1_1slot1.html" target="_self">slot1</a></td><td class="desc">Converts an arbitrary functor to a unified type which is opaque </td></tr>
<tr id="row_0_130_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classsigc_1_1slot2.html" target="_self">slot2</a></td><td class="desc">Converts an arbitrary functor to a unified type which is opaque </td></tr>
<tr id="row_0_131_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classsigc_1_1slot3.html" target="_self">slot3</a></td><td class="desc">Converts an arbitrary functor to a unified type which is opaque </td></tr>
<tr id="row_0_132_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classsigc_1_1slot4.html" target="_self">slot4</a></td><td class="desc">Converts an arbitrary functor to a unified type which is opaque </td></tr>
<tr id="row_0_133_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classsigc_1_1slot5.html" target="_self">slot5</a></td><td class="desc">Converts an arbitrary functor to a unified type which is opaque </td></tr>
<tr id="row_0_134_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classsigc_1_1slot6.html" target="_self">slot6</a></td><td class="desc">Converts an arbitrary functor to a unified type which is opaque </td></tr>
<tr id="row_0_135_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classsigc_1_1slot7.html" target="_self">slot7</a></td><td class="desc">Converts an arbitrary functor to a unified type which is opaque </td></tr>
<tr id="row_0_136_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classsigc_1_1slot_3_01T__return_07T__arg_8_8_8_08_4.html" target="_self">slot&lt; T_return(T_arg...)&gt;</a></td><td class="desc">Converts an arbitrary functor to a unified type which is opaque </td></tr>
<tr id="row_0_137_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classsigc_1_1slot_3_01T__return_00_01nil_00_01nil_00_01nil_00_01nil_00_01nil_00_01nil_00_01nil_01_4.html" target="_self">slot&lt; T_return, nil, nil, nil, nil, nil, nil, nil &gt;</a></td><td class="desc">Convenience wrapper for the numbered <a class="el" href="classsigc_1_1slot0.html" title="Converts an arbitrary functor to a unified type which is opaque. ">sigc::slot0</a> template </td></tr>
<tr id="row_0_138_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classsigc_1_1slot_3_01T__return_00_01T__arg1_00_01nil_00_01nil_00_01nil_00_01nil_00_01nil_00_01nil_01_4.html" target="_self">slot&lt; T_return, T_arg1, nil, nil, nil, nil, nil, nil &gt;</a></td><td class="desc">Convenience wrapper for the numbered <a class="el" href="classsigc_1_1slot1.html" title="Converts an arbitrary functor to a unified type which is opaque. ">sigc::slot1</a> template </td></tr>
<tr id="row_0_139_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classsigc_1_1slot_3_01T__return_00_01T__arg1_00_01T__arg2_00_01nil_00_01nil_00_01nil_00_01nil_00_01nil_01_4.html" target="_self">slot&lt; T_return, T_arg1, T_arg2, nil, nil, nil, nil, nil &gt;</a></td><td class="desc">Convenience wrapper for the numbered <a class="el" href="classsigc_1_1slot2.html" title="Converts an arbitrary functor to a unified type which is opaque. ">sigc::slot2</a> template </td></tr>
<tr id="row_0_140_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classsigc_1_1slot_3_01T__return_00_01T__arg1_00_01T__arg2_00_01T__arg3_00_01nil_00_01nil_00_01nil_00_01nil_01_4.html" target="_self">slot&lt; T_return, T_arg1, T_arg2, T_arg3, nil, nil, nil, nil &gt;</a></td><td class="desc">Convenience wrapper for the numbered <a class="el" href="classsigc_1_1slot3.html" title="Converts an arbitrary functor to a unified type which is opaque. ">sigc::slot3</a> template </td></tr>
<tr id="row_0_141_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classsigc_1_1slot_3_01T__return_00_01T__arg1_00_01T__arg2_00_01T__arg3_00_01T__arg4_00_01nil_00_01nil_00_01nil_01_4.html" target="_self">slot&lt; T_return, T_arg1, T_arg2, T_arg3, T_arg4, nil, nil, nil &gt;</a></td><td class="desc">Convenience wrapper for the numbered <a class="el" href="classsigc_1_1slot4.html" title="Converts an arbitrary functor to a unified type which is opaque. ">sigc::slot4</a> template </td></tr>
<tr id="row_0_142_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classsigc_1_1slot_3_01T__return_00_01T__arg1_00_01T__arg2_00_01T__arg3_00_01T__arg4_00_01T__arg5_00_01nil_00_01nil_01_4.html" target="_self">slot&lt; T_return, T_arg1, T_arg2, T_arg3, T_arg4, T_arg5, nil, nil &gt;</a></td><td class="desc">Convenience wrapper for the numbered <a class="el" href="classsigc_1_1slot5.html" title="Converts an arbitrary functor to a unified type which is opaque. ">sigc::slot5</a> template </td></tr>
<tr id="row_0_143_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classsigc_1_1slot_3_01T__return_00_01T__arg1_00_01T__arg2_00_01T__arg3_00_01T__arg4_00_01T__arg5_00_01T__arg6_00_01nil_01_4.html" target="_self">slot&lt; T_return, T_arg1, T_arg2, T_arg3, T_arg4, T_arg5, T_arg6, nil &gt;</a></td><td class="desc">Convenience wrapper for the numbered <a class="el" href="classsigc_1_1slot6.html" title="Converts an arbitrary functor to a unified type which is opaque. ">sigc::slot6</a> template </td></tr>
<tr id="row_0_144_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classsigc_1_1slot__base.html" target="_self">slot_base</a></td><td class="desc">Base type for slots </td></tr>
<tr id="row_0_145_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structsigc_1_1slot__const__iterator.html" target="_self">slot_const_iterator</a></td><td class="desc">STL-style const iterator for <a class="el" href="structsigc_1_1slot__list.html" title="STL-style list interface for sigc::signal#. ">slot_list</a> </td></tr>
<tr id="row_0_146_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structsigc_1_1slot__iterator.html" target="_self">slot_iterator</a></td><td class="desc">STL-style iterator for <a class="el" href="structsigc_1_1slot__list.html" title="STL-style list interface for sigc::signal#. ">slot_list</a> </td></tr>
<tr id="row_0_147_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structsigc_1_1slot__list.html" target="_self">slot_list</a></td><td class="desc">STL-style list interface for <a class="el" href="classsigc_1_1signal.html" title="Convenience wrapper for the numbered sigc::signal# templates. ">sigc::signal</a># </td></tr>
<tr id="row_0_148_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classsigc_1_1track__obj__functor1.html" target="_self">track_obj_functor1</a></td><td class="desc">Track_obj_functor1 wraps a functor and stores a reference to a trackable object </td></tr>
<tr id="row_0_149_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classsigc_1_1track__obj__functor2.html" target="_self">track_obj_functor2</a></td><td class="desc">Track_obj_functor2 wraps a functor and stores 2 references to trackable objects </td></tr>
<tr id="row_0_150_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classsigc_1_1track__obj__functor3.html" target="_self">track_obj_functor3</a></td><td class="desc">Track_obj_functor3 wraps a functor and stores 3 references to trackable objects </td></tr>
<tr id="row_0_151_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classsigc_1_1track__obj__functor4.html" target="_self">track_obj_functor4</a></td><td class="desc">Track_obj_functor4 wraps a functor and stores 4 references to trackable objects </td></tr>
<tr id="row_0_152_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classsigc_1_1track__obj__functor5.html" target="_self">track_obj_functor5</a></td><td class="desc">Track_obj_functor5 wraps a functor and stores 5 references to trackable objects </td></tr>
<tr id="row_0_153_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classsigc_1_1track__obj__functor6.html" target="_self">track_obj_functor6</a></td><td class="desc">Track_obj_functor6 wraps a functor and stores 6 references to trackable objects </td></tr>
<tr id="row_0_154_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classsigc_1_1track__obj__functor7.html" target="_self">track_obj_functor7</a></td><td class="desc">Track_obj_functor7 wraps a functor and stores 7 references to trackable objects </td></tr>
<tr id="row_0_155_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structsigc_1_1trackable.html" target="_self">trackable</a></td><td class="desc">Base class for objects with auto-disconnection </td></tr>
<tr id="row_0_156_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structsigc_1_1type__trait.html" target="_self">type_trait</a></td><td class="desc"></td></tr>
<tr id="row_0_157_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structsigc_1_1type__trait_3_01const_01T__type_01_6_01_4.html" target="_self">type_trait&lt; const T_type&amp; &gt;</a></td><td class="desc"></td></tr>
<tr id="row_0_158_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structsigc_1_1type__trait_3_01T__type_01_6_01_4.html" target="_self">type_trait&lt; T_type&amp; &gt;</a></td><td class="desc"></td></tr>
<tr id="row_0_159_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structsigc_1_1type__trait_3_01T__type[N]_4.html" target="_self">type_trait&lt; T_type[N]&gt;</a></td><td class="desc"></td></tr>
<tr id="row_0_160_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structsigc_1_1type__trait_3_01void_01_4.html" target="_self">type_trait&lt; void &gt;</a></td><td class="desc"></td></tr>
<tr id="row_0_161_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structsigc_1_1unwrap__reference.html" target="_self">unwrap_reference</a></td><td class="desc"></td></tr>
<tr id="row_0_162_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structsigc_1_1unwrap__reference_3_01const__reference__wrapper_3_01T__type_01_4_01_4.html" target="_self">unwrap_reference&lt; const_reference_wrapper&lt; T_type &gt; &gt;</a></td><td class="desc"></td></tr>
<tr id="row_0_163_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structsigc_1_1unwrap__reference_3_01reference__wrapper_3_01T__type_01_4_01_4.html" target="_self">unwrap_reference&lt; reference_wrapper&lt; T_type &gt; &gt;</a></td><td class="desc"></td></tr>
<tr id="row_0_164_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structsigc_1_1unwrap__reference_3_01std_1_1reference__wrapper_3_01T__type_01_4_01_4.html" target="_self">unwrap_reference&lt; std::reference_wrapper&lt; T_type &gt; &gt;</a></td><td class="desc"></td></tr>
<tr id="row_0_165_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structsigc_1_1visitor.html" target="_self">visitor</a></td><td class="desc">Sigc::visitor&lt;T_functor&gt;::do_visit_each() performs a functor on each of the targets of a functor </td></tr>
<tr id="row_0_166_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classsigc_1_1volatile__limit__reference.html" target="_self">volatile_limit_reference</a></td><td class="desc">A volatile_limit_reference&lt;Foo&gt; object stores a reference (Foo&amp;), but make sure that, if Foo inherits from <a class="el" href="structsigc_1_1trackable.html" title="Base class for objects with auto-disconnection. ">sigc::trackable</a>, then <a class="el" href="group__sigcfunctors.html#ga64cb7832acc1e58efb5ffe0b4f5e9404" title="This function performs a functor on each of the targets of a functor. ">visit_each&lt;&gt;()</a> will "limit" itself to the <a class="el" href="structsigc_1_1trackable.html" title="Base class for objects with auto-disconnection. ">sigc::trackable</a> reference instead of the derived reference </td></tr>
<tr id="row_0_167_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classsigc_1_1volatile__limit__reference_3_01T__type_00_01true_01_4.html" target="_self">volatile_limit_reference&lt; T_type, true &gt;</a></td><td class="desc">Volatile_limit_reference object for a class that derives from trackable </td></tr>
<tr id="row_0_168_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classsigc_1_1volatile__mem__functor0.html" target="_self">volatile_mem_functor0</a></td><td class="desc">Volatile_mem_functor0 wraps volatile methods with 0 argument(s) </td></tr>
<tr id="row_0_169_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classsigc_1_1volatile__mem__functor1.html" target="_self">volatile_mem_functor1</a></td><td class="desc">Volatile_mem_functor1 wraps volatile methods with 1 argument(s) </td></tr>
<tr id="row_0_170_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classsigc_1_1volatile__mem__functor2.html" target="_self">volatile_mem_functor2</a></td><td class="desc">Volatile_mem_functor2 wraps volatile methods with 2 argument(s) </td></tr>
<tr id="row_0_171_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classsigc_1_1volatile__mem__functor3.html" target="_self">volatile_mem_functor3</a></td><td class="desc">Volatile_mem_functor3 wraps volatile methods with 3 argument(s) </td></tr>
<tr id="row_0_172_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classsigc_1_1volatile__mem__functor4.html" target="_self">volatile_mem_functor4</a></td><td class="desc">Volatile_mem_functor4 wraps volatile methods with 4 argument(s) </td></tr>
<tr id="row_0_173_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classsigc_1_1volatile__mem__functor5.html" target="_self">volatile_mem_functor5</a></td><td class="desc">Volatile_mem_functor5 wraps volatile methods with 5 argument(s) </td></tr>
<tr id="row_0_174_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classsigc_1_1volatile__mem__functor6.html" target="_self">volatile_mem_functor6</a></td><td class="desc">Volatile_mem_functor6 wraps volatile methods with 6 argument(s) </td></tr>
<tr id="row_0_175_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classsigc_1_1volatile__mem__functor7.html" target="_self">volatile_mem_functor7</a></td><td class="desc">Volatile_mem_functor7 wraps volatile methods with 7 argument(s) </td></tr>
</table>
</div><!-- directory -->
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Wed Mar 25 2020 10:13:31 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.11
</small></address>
</body>
</html>

Binary file not shown.

After

Width:  |  Height:  |  Size: 246 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 229 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 676 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 147 B

View File

@ -0,0 +1,307 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.11"/>
<title>libsigc++: Class Index</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="doxygen-extra.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">libsigc++
&#160;<span id="projectnumber">2.10.3</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.11 -->
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="annotated.html"><span>Class&#160;List</span></a></li>
<li class="current"><a href="classes.html"><span>Class&#160;Index</span></a></li>
<li><a href="inherits.html"><span>Class&#160;Hierarchy</span></a></li>
<li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">Class Index</div> </div>
</div><!--header-->
<div class="contents">
<div class="qindex"><a class="qindex" href="#letter_A">A</a>&#160;|&#160;<a class="qindex" href="#letter_B">B</a>&#160;|&#160;<a class="qindex" href="#letter_C">C</a>&#160;|&#160;<a class="qindex" href="#letter_D">D</a>&#160;|&#160;<a class="qindex" href="#letter_E">E</a>&#160;|&#160;<a class="qindex" href="#letter_F">F</a>&#160;|&#160;<a class="qindex" href="#letter_H">H</a>&#160;|&#160;<a class="qindex" href="#letter_L">L</a>&#160;|&#160;<a class="qindex" href="#letter_M">M</a>&#160;|&#160;<a class="qindex" href="#letter_N">N</a>&#160;|&#160;<a class="qindex" href="#letter_P">P</a>&#160;|&#160;<a class="qindex" href="#letter_R">R</a>&#160;|&#160;<a class="qindex" href="#letter_S">S</a>&#160;|&#160;<a class="qindex" href="#letter_T">T</a>&#160;|&#160;<a class="qindex" href="#letter_U">U</a>&#160;|&#160;<a class="qindex" href="#letter_V">V</a></div>
<table class="classindex">
<tr><td rowspan="2" valign="bottom"><a name="letter_a"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;a&#160;&#160;</div></td></tr></table>
</td></tr>
<tr></tr>
<tr><td valign="top"><a class="el" href="structsigc_1_1adaptor__base.html">adaptor_base</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="structsigc_1_1adaptor__functor.html">adaptor_functor</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="structsigc_1_1adaptor__trait.html">adaptor_trait</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="structsigc_1_1adaptor__trait_3_01T__functor_00_01false_01_4.html">adaptor_trait&lt; T_functor, false &gt;</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="structsigc_1_1adaptor__trait_3_01T__functor_00_01true_01_4.html">adaptor_trait&lt; T_functor, true &gt;</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="structsigc_1_1adapts.html">adapts</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="classsigc_1_1signal_1_1accumulated.html">signal::accumulated</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="classsigc_1_1signal_3_01T__return_07_08_4_1_1accumulated.html">signal&lt; T_return()&gt;::accumulated</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="classsigc_1_1signal_3_01T__return_07T__arg1_08_4_1_1accumulated.html">signal&lt; T_return(T_arg1)&gt;::accumulated</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="classsigc_1_1signal_3_01T__return_07T__arg1_00_01T__arg2_08_4_1_1accumulated.html">signal&lt; T_return(T_arg1, T_arg2)&gt;::accumulated</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="classsigc_1_1signal_3_01T__return_07T__arg1_00_01T__arg2_00_01T__arg3_08_4_1_1accumulated.html">signal&lt; T_return(T_arg1, T_arg2, T_arg3)&gt;::accumulated</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="classsigc_1_1signal_3_01T__return_07T__arg1_00_01T__arg2_00_01T__arg3_00_01T__arg4_08_4_1_1accumulated.html">signal&lt; T_return(T_arg1, T_arg2, T_arg3, T_arg4)&gt;::accumulated</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="classsigc_1_1signal_3_01T__return_07T__arg1_00_01T__arg2_00_01T__arg3_00_01T__arg4_00_01T__arg5_08_4_1_1accumulated.html">signal&lt; T_return(T_arg1, T_arg2, T_arg3, T_arg4, T_arg5)&gt;::accumulated</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="classsigc_1_1signal_3_01T__return_07T__arg1_00_01T__arg2_00_01T__arg3_00_01T__arg4_00_01T__arg5_dace8c5b03b250e13cd615dbc3de0ac4.html">signal&lt; T_return(T_arg1, T_arg2, T_arg3, T_arg4, T_arg5, T_arg6)&gt;::accumulated</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="classsigc_1_1signal_3_01T__return_07T__arg1_00_01T__arg2_00_01T__arg3_00_01T__arg4_00_01T__arg5_e94644748df11174db4187c0801a1d95.html">signal&lt; T_return(T_arg1, T_arg2, T_arg3, T_arg4, T_arg5, T_arg6, T_arg7)&gt;::accumulated</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="classsigc_1_1signal_3_01T__return_00_01nil_00_01nil_00_01nil_00_01nil_00_01nil_00_01nil_00_01nil_01_4_1_1accumulated.html">signal&lt; T_return, nil, nil, nil, nil, nil, nil, nil &gt;::accumulated</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="classsigc_1_1signal_3_01T__return_00_01T__arg1_00_01nil_00_01nil_00_01nil_00_01nil_00_01nil_00_01nil_01_4_1_1accumulated.html">signal&lt; T_return, T_arg1, nil, nil, nil, nil, nil, nil &gt;::accumulated</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="classsigc_1_1signal_3_01T__return_00_01T__arg1_00_01T__arg2_00_01nil_00_01nil_00_01nil_00_01nil_00_01nil_01_4_1_1accumulated.html">signal&lt; T_return, T_arg1, T_arg2, nil, nil, nil, nil, nil &gt;::accumulated</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="classsigc_1_1signal_3_01T__return_00_01T__arg1_00_01T__arg2_00_01T__arg3_00_01nil_00_01nil_00_01852c349c390cefa04662a850d84c0a94.html">signal&lt; T_return, T_arg1, T_arg2, T_arg3, nil, nil, nil, nil &gt;::accumulated</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="classsigc_1_1signal_3_01T__return_00_01T__arg1_00_01T__arg2_00_01T__arg3_00_01T__arg4_00_01nil_0d729ce48b1328d982e0ee754652fed04.html">signal&lt; T_return, T_arg1, T_arg2, T_arg3, T_arg4, nil, nil, nil &gt;::accumulated</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="classsigc_1_1signal_3_01T__return_00_01T__arg1_00_01T__arg2_00_01T__arg3_00_01T__arg4_00_01T__arcf6cb51783c363bfae7c4a91d9685109.html">signal&lt; T_return, T_arg1, T_arg2, T_arg3, T_arg4, T_arg5, nil, nil &gt;::accumulated</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="classsigc_1_1signal_3_01T__return_00_01T__arg1_00_01T__arg2_00_01T__arg3_00_01T__arg4_00_01T__are33def4d0c1a12dcbfd220489302db67.html">signal&lt; T_return, T_arg1, T_arg2, T_arg3, T_arg4, T_arg5, T_arg6, nil &gt;::accumulated</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td rowspan="2" valign="bottom"><a name="letter_b"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;b&#160;&#160;</div></td></tr></table>
</td></tr>
<tr></tr>
<tr><td valign="top"><a class="el" href="structsigc_1_1bind__functor.html">bind_functor</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="structsigc_1_1bind__functor_3_010_00_01T__functor_00_01T__bound_00_01nil_00_01nil_00_01nil_00_01nil_00_01nil_00_01nil_01_4.html">bind_functor&lt; 0, T_functor, T_bound, nil, nil, nil, nil, nil, nil &gt;</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="structsigc_1_1bind__functor_3-1_00_01T__functor_00_01T__type1_00_01nil_00_01nil_00_01nil_00_01nil_00_01nil_00_01nil_01_4.html">bind_functor&lt;-1, T_functor, T_type1, nil, nil, nil, nil, nil, nil &gt;</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="structsigc_1_1bind__return__functor.html">bind_return_functor</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="classsigc_1_1bound__argument.html">bound_argument</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="classsigc_1_1bound__argument_3_01const__reference__wrapper_3_01T__wrapped_01_4_01_4.html">bound_argument&lt; const_reference_wrapper&lt; T_wrapped &gt; &gt;</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="classsigc_1_1bound__argument_3_01reference__wrapper_3_01T__wrapped_01_4_01_4.html">bound_argument&lt; reference_wrapper&lt; T_wrapped &gt; &gt;</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="classsigc_1_1bound__argument_3_01std_1_1reference__wrapper_3_01T__wrapped_01_4_01_4.html">bound_argument&lt; std::reference_wrapper&lt; T_wrapped &gt; &gt;</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="classsigc_1_1bound__const__mem__functor0.html">bound_const_mem_functor0</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="classsigc_1_1bound__const__mem__functor1.html">bound_const_mem_functor1</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="classsigc_1_1bound__const__mem__functor2.html">bound_const_mem_functor2</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="classsigc_1_1bound__const__mem__functor3.html">bound_const_mem_functor3</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="classsigc_1_1bound__const__mem__functor4.html">bound_const_mem_functor4</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="classsigc_1_1bound__const__mem__functor5.html">bound_const_mem_functor5</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="classsigc_1_1bound__const__mem__functor6.html">bound_const_mem_functor6</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="classsigc_1_1bound__const__mem__functor7.html">bound_const_mem_functor7</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="classsigc_1_1bound__const__volatile__mem__functor0.html">bound_const_volatile_mem_functor0</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="classsigc_1_1bound__const__volatile__mem__functor1.html">bound_const_volatile_mem_functor1</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="classsigc_1_1bound__const__volatile__mem__functor2.html">bound_const_volatile_mem_functor2</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="classsigc_1_1bound__const__volatile__mem__functor3.html">bound_const_volatile_mem_functor3</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="classsigc_1_1bound__const__volatile__mem__functor4.html">bound_const_volatile_mem_functor4</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="classsigc_1_1bound__const__volatile__mem__functor5.html">bound_const_volatile_mem_functor5</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="classsigc_1_1bound__const__volatile__mem__functor6.html">bound_const_volatile_mem_functor6</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="classsigc_1_1bound__const__volatile__mem__functor7.html">bound_const_volatile_mem_functor7</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="classsigc_1_1bound__mem__functor0.html">bound_mem_functor0</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="classsigc_1_1bound__mem__functor1.html">bound_mem_functor1</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="classsigc_1_1bound__mem__functor2.html">bound_mem_functor2</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="classsigc_1_1bound__mem__functor3.html">bound_mem_functor3</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="classsigc_1_1bound__mem__functor4.html">bound_mem_functor4</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="classsigc_1_1bound__mem__functor5.html">bound_mem_functor5</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="classsigc_1_1bound__mem__functor6.html">bound_mem_functor6</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="classsigc_1_1bound__mem__functor7.html">bound_mem_functor7</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="classsigc_1_1bound__volatile__mem__functor0.html">bound_volatile_mem_functor0</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="classsigc_1_1bound__volatile__mem__functor1.html">bound_volatile_mem_functor1</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="classsigc_1_1bound__volatile__mem__functor2.html">bound_volatile_mem_functor2</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="classsigc_1_1bound__volatile__mem__functor3.html">bound_volatile_mem_functor3</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="classsigc_1_1bound__volatile__mem__functor4.html">bound_volatile_mem_functor4</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="classsigc_1_1bound__volatile__mem__functor5.html">bound_volatile_mem_functor5</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="classsigc_1_1bound__volatile__mem__functor6.html">bound_volatile_mem_functor6</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="classsigc_1_1bound__volatile__mem__functor7.html">bound_volatile_mem_functor7</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td rowspan="2" valign="bottom"><a name="letter_c"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;c&#160;&#160;</div></td></tr></table>
</td></tr>
<tr></tr>
<tr><td valign="top"><a class="el" href="classsigc_1_1can__deduce__result__type__with__decltype.html">can_deduce_result_type_with_decltype</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="structsigc_1_1compose1__functor.html">compose1_functor</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="structsigc_1_1compose2__functor.html">compose2_functor</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="structsigc_1_1connection.html">connection</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="classsigc_1_1const__limit__reference.html">const_limit_reference</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="classsigc_1_1const__limit__reference_3_01T__type_00_01true_01_4.html">const_limit_reference&lt; T_type, true &gt;</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="classsigc_1_1const__mem__functor0.html">const_mem_functor0</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="classsigc_1_1const__mem__functor1.html">const_mem_functor1</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="classsigc_1_1const__mem__functor2.html">const_mem_functor2</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="classsigc_1_1const__mem__functor3.html">const_mem_functor3</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="classsigc_1_1const__mem__functor4.html">const_mem_functor4</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="classsigc_1_1const__mem__functor5.html">const_mem_functor5</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="classsigc_1_1const__mem__functor6.html">const_mem_functor6</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="classsigc_1_1const__mem__functor7.html">const_mem_functor7</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="structsigc_1_1const__reference__wrapper.html">const_reference_wrapper</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="classsigc_1_1const__volatile__limit__reference.html">const_volatile_limit_reference</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="classsigc_1_1const__volatile__limit__reference_3_01T__type_00_01true_01_4.html">const_volatile_limit_reference&lt; T_type, true &gt;</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="classsigc_1_1const__volatile__mem__functor0.html">const_volatile_mem_functor0</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="classsigc_1_1const__volatile__mem__functor1.html">const_volatile_mem_functor1</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="classsigc_1_1const__volatile__mem__functor2.html">const_volatile_mem_functor2</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="classsigc_1_1const__volatile__mem__functor3.html">const_volatile_mem_functor3</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="classsigc_1_1const__volatile__mem__functor4.html">const_volatile_mem_functor4</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="classsigc_1_1const__volatile__mem__functor5.html">const_volatile_mem_functor5</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="classsigc_1_1const__volatile__mem__functor6.html">const_volatile_mem_functor6</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="classsigc_1_1const__volatile__mem__functor7.html">const_volatile_mem_functor7</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td rowspan="2" valign="bottom"><a name="letter_d"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;d&#160;&#160;</div></td></tr></table>
</td></tr>
<tr></tr>
<tr><td valign="top"><a class="el" href="structsigc_1_1deduce__result__type.html">deduce_result_type</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td rowspan="2" valign="bottom"><a name="letter_e"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;e&#160;&#160;</div></td></tr></table>
</td></tr>
<tr></tr>
<tr><td valign="top"><a class="el" href="structsigc_1_1exception__catch__functor.html">exception_catch_functor</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="structsigc_1_1exception__catch__functor_3_01T__functor_00_01T__catcher_00_01void_01_4.html">exception_catch_functor&lt; T_functor, T_catcher, void &gt;</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td rowspan="2" valign="bottom"><a name="letter_f"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;f&#160;&#160;</div></td></tr></table>
</td></tr>
<tr></tr>
<tr><td valign="top"><a class="el" href="structsigc_1_1functor__base.html">functor_base</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="structsigc_1_1functor__trait.html">functor_trait</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td rowspan="2" valign="bottom"><a name="letter_h"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;h&#160;&#160;</div></td></tr></table>
</td></tr>
<tr></tr>
<tr><td valign="top"><a class="el" href="structsigc_1_1hide__functor.html">hide_functor</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="structsigc_1_1hide__functor_3_010_00_01T__functor_01_4.html">hide_functor&lt; 0, T_functor &gt;</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="structsigc_1_1hide__functor_3-1_00_01T__functor_01_4.html">hide_functor&lt;-1, T_functor &gt;</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td rowspan="2" valign="bottom"><a name="letter_l"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;l&#160;&#160;</div></td></tr></table>
</td></tr>
<tr></tr>
<tr><td valign="top"><a class="el" href="classsigc_1_1limit__reference.html">limit_reference</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="classsigc_1_1limit__reference_3_01T__type_00_01true_01_4.html">limit_reference&lt; T_type, true &gt;</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td rowspan="2" valign="bottom"><a name="letter_m"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;m&#160;&#160;</div></td></tr></table>
</td></tr>
<tr></tr>
<tr><td valign="top"><a class="el" href="classsigc_1_1mem__functor0.html">mem_functor0</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="classsigc_1_1mem__functor1.html">mem_functor1</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="classsigc_1_1mem__functor2.html">mem_functor2</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="classsigc_1_1mem__functor3.html">mem_functor3</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="classsigc_1_1mem__functor4.html">mem_functor4</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="classsigc_1_1mem__functor5.html">mem_functor5</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="classsigc_1_1mem__functor6.html">mem_functor6</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="classsigc_1_1mem__functor7.html">mem_functor7</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td rowspan="2" valign="bottom"><a name="letter_n"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;n&#160;&#160;</div></td></tr></table>
</td></tr>
<tr></tr>
<tr><td valign="top"><a class="el" href="structsigc_1_1nil.html">nil</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td rowspan="2" valign="bottom"><a name="letter_p"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;p&#160;&#160;</div></td></tr></table>
</td></tr>
<tr></tr>
<tr><td valign="top"><a class="el" href="classsigc_1_1pointer__functor0.html">pointer_functor0</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="classsigc_1_1pointer__functor1.html">pointer_functor1</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="classsigc_1_1pointer__functor2.html">pointer_functor2</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="classsigc_1_1pointer__functor3.html">pointer_functor3</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="classsigc_1_1pointer__functor4.html">pointer_functor4</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="classsigc_1_1pointer__functor5.html">pointer_functor5</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="classsigc_1_1pointer__functor6.html">pointer_functor6</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="classsigc_1_1pointer__functor7.html">pointer_functor7</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td rowspan="2" valign="bottom"><a name="letter_r"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;r&#160;&#160;</div></td></tr></table>
</td></tr>
<tr></tr>
<tr><td valign="top"><a class="el" href="structsigc_1_1reference__wrapper.html">reference_wrapper</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="structsigc_1_1retype__functor.html">retype_functor</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="structsigc_1_1retype__return__functor.html">retype_return_functor</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="structsigc_1_1retype__return__functor_3_01void_00_01T__functor_01_4.html">retype_return_functor&lt; void, T_functor &gt;</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td rowspan="2" valign="bottom"><a name="letter_s"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;s&#160;&#160;</div></td></tr></table>
</td></tr>
<tr></tr>
<tr><td valign="top"><a class="el" href="classsigc_1_1signal.html">signal</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="classsigc_1_1signal0.html">signal0</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="classsigc_1_1signal1.html">signal1</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="classsigc_1_1signal2.html">signal2</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="classsigc_1_1signal3.html">signal3</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="classsigc_1_1signal4.html">signal4</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="classsigc_1_1signal5.html">signal5</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="classsigc_1_1signal6.html">signal6</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="classsigc_1_1signal7.html">signal7</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="classsigc_1_1signal_3_01T__return_07_08_4.html">signal&lt; T_return()&gt;</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="classsigc_1_1signal_3_01T__return_07T__arg1_08_4.html">signal&lt; T_return(T_arg1)&gt;</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="classsigc_1_1signal_3_01T__return_07T__arg1_00_01T__arg2_08_4.html">signal&lt; T_return(T_arg1, T_arg2)&gt;</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="classsigc_1_1signal_3_01T__return_07T__arg1_00_01T__arg2_00_01T__arg3_08_4.html">signal&lt; T_return(T_arg1, T_arg2, T_arg3)&gt;</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="classsigc_1_1signal_3_01T__return_07T__arg1_00_01T__arg2_00_01T__arg3_00_01T__arg4_08_4.html">signal&lt; T_return(T_arg1, T_arg2, T_arg3, T_arg4)&gt;</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="classsigc_1_1signal_3_01T__return_07T__arg1_00_01T__arg2_00_01T__arg3_00_01T__arg4_00_01T__arg5_08_4.html">signal&lt; T_return(T_arg1, T_arg2, T_arg3, T_arg4, T_arg5)&gt;</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="classsigc_1_1signal_3_01T__return_07T__arg1_00_01T__arg2_00_01T__arg3_00_01T__arg4_00_01T__arg5_00_01T__arg6_08_4.html">signal&lt; T_return(T_arg1, T_arg2, T_arg3, T_arg4, T_arg5, T_arg6)&gt;</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="classsigc_1_1signal_3_01T__return_07T__arg1_00_01T__arg2_00_01T__arg3_00_01T__arg4_00_01T__arg5_00_01T__arg6_00_01T__arg7_08_4.html">signal&lt; T_return(T_arg1, T_arg2, T_arg3, T_arg4, T_arg5, T_arg6, T_arg7)&gt;</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="classsigc_1_1signal_3_01T__return_00_01nil_00_01nil_00_01nil_00_01nil_00_01nil_00_01nil_00_01nil_01_4.html">signal&lt; T_return, nil, nil, nil, nil, nil, nil, nil &gt;</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="classsigc_1_1signal_3_01T__return_00_01T__arg1_00_01nil_00_01nil_00_01nil_00_01nil_00_01nil_00_01nil_01_4.html">signal&lt; T_return, T_arg1, nil, nil, nil, nil, nil, nil &gt;</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="classsigc_1_1signal_3_01T__return_00_01T__arg1_00_01T__arg2_00_01nil_00_01nil_00_01nil_00_01nil_00_01nil_01_4.html">signal&lt; T_return, T_arg1, T_arg2, nil, nil, nil, nil, nil &gt;</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="classsigc_1_1signal_3_01T__return_00_01T__arg1_00_01T__arg2_00_01T__arg3_00_01nil_00_01nil_00_01nil_00_01nil_01_4.html">signal&lt; T_return, T_arg1, T_arg2, T_arg3, nil, nil, nil, nil &gt;</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="classsigc_1_1signal_3_01T__return_00_01T__arg1_00_01T__arg2_00_01T__arg3_00_01T__arg4_00_01nil_00_01nil_00_01nil_01_4.html">signal&lt; T_return, T_arg1, T_arg2, T_arg3, T_arg4, nil, nil, nil &gt;</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="classsigc_1_1signal_3_01T__return_00_01T__arg1_00_01T__arg2_00_01T__arg3_00_01T__arg4_00_01T__arg5_00_01nil_00_01nil_01_4.html">signal&lt; T_return, T_arg1, T_arg2, T_arg3, T_arg4, T_arg5, nil, nil &gt;</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="classsigc_1_1signal_3_01T__return_00_01T__arg1_00_01T__arg2_00_01T__arg3_00_01T__arg4_00_01T__arg5_00_01T__arg6_00_01nil_01_4.html">signal&lt; T_return, T_arg1, T_arg2, T_arg3, T_arg4, T_arg5, T_arg6, nil &gt;</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="structsigc_1_1signal__base.html">signal_base</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="classsigc_1_1slot.html">slot</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="classsigc_1_1slot0.html">slot0</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="classsigc_1_1slot1.html">slot1</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="classsigc_1_1slot2.html">slot2</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="classsigc_1_1slot3.html">slot3</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="classsigc_1_1slot4.html">slot4</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="classsigc_1_1slot5.html">slot5</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="classsigc_1_1slot6.html">slot6</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="classsigc_1_1slot7.html">slot7</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="classsigc_1_1slot_3_01T__return_07T__arg_8_8_8_08_4.html">slot&lt; T_return(T_arg...)&gt;</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="classsigc_1_1slot_3_01T__return_00_01nil_00_01nil_00_01nil_00_01nil_00_01nil_00_01nil_00_01nil_01_4.html">slot&lt; T_return, nil, nil, nil, nil, nil, nil, nil &gt;</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="classsigc_1_1slot_3_01T__return_00_01T__arg1_00_01nil_00_01nil_00_01nil_00_01nil_00_01nil_00_01nil_01_4.html">slot&lt; T_return, T_arg1, nil, nil, nil, nil, nil, nil &gt;</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="classsigc_1_1slot_3_01T__return_00_01T__arg1_00_01T__arg2_00_01nil_00_01nil_00_01nil_00_01nil_00_01nil_01_4.html">slot&lt; T_return, T_arg1, T_arg2, nil, nil, nil, nil, nil &gt;</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="classsigc_1_1slot_3_01T__return_00_01T__arg1_00_01T__arg2_00_01T__arg3_00_01nil_00_01nil_00_01nil_00_01nil_01_4.html">slot&lt; T_return, T_arg1, T_arg2, T_arg3, nil, nil, nil, nil &gt;</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="classsigc_1_1slot_3_01T__return_00_01T__arg1_00_01T__arg2_00_01T__arg3_00_01T__arg4_00_01nil_00_01nil_00_01nil_01_4.html">slot&lt; T_return, T_arg1, T_arg2, T_arg3, T_arg4, nil, nil, nil &gt;</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="classsigc_1_1slot_3_01T__return_00_01T__arg1_00_01T__arg2_00_01T__arg3_00_01T__arg4_00_01T__arg5_00_01nil_00_01nil_01_4.html">slot&lt; T_return, T_arg1, T_arg2, T_arg3, T_arg4, T_arg5, nil, nil &gt;</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="classsigc_1_1slot_3_01T__return_00_01T__arg1_00_01T__arg2_00_01T__arg3_00_01T__arg4_00_01T__arg5_00_01T__arg6_00_01nil_01_4.html">slot&lt; T_return, T_arg1, T_arg2, T_arg3, T_arg4, T_arg5, T_arg6, nil &gt;</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="classsigc_1_1slot__base.html">slot_base</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="structsigc_1_1slot__const__iterator.html">slot_const_iterator</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="structsigc_1_1slot__iterator.html">slot_iterator</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="structsigc_1_1slot__list.html">slot_list</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td rowspan="2" valign="bottom"><a name="letter_t"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;t&#160;&#160;</div></td></tr></table>
</td></tr>
<tr></tr>
<tr><td valign="top"><a class="el" href="classsigc_1_1track__obj__functor1.html">track_obj_functor1</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="classsigc_1_1track__obj__functor2.html">track_obj_functor2</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="classsigc_1_1track__obj__functor3.html">track_obj_functor3</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="classsigc_1_1track__obj__functor4.html">track_obj_functor4</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="classsigc_1_1track__obj__functor5.html">track_obj_functor5</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="classsigc_1_1track__obj__functor6.html">track_obj_functor6</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="classsigc_1_1track__obj__functor7.html">track_obj_functor7</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="structsigc_1_1trackable.html">trackable</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="structsigc_1_1type__trait.html">type_trait</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="structsigc_1_1type__trait_3_01const_01T__type_01_6_01_4.html">type_trait&lt; const T_type&amp; &gt;</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="structsigc_1_1type__trait_3_01T__type_01_6_01_4.html">type_trait&lt; T_type&amp; &gt;</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="structsigc_1_1type__trait_3_01T__type[N]_4.html">type_trait&lt; T_type[N]&gt;</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="structsigc_1_1type__trait_3_01void_01_4.html">type_trait&lt; void &gt;</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td rowspan="2" valign="bottom"><a name="letter_u"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;u&#160;&#160;</div></td></tr></table>
</td></tr>
<tr></tr>
<tr><td valign="top"><a class="el" href="structsigc_1_1unwrap__reference.html">unwrap_reference</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="structsigc_1_1unwrap__reference_3_01const__reference__wrapper_3_01T__type_01_4_01_4.html">unwrap_reference&lt; const_reference_wrapper&lt; T_type &gt; &gt;</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="structsigc_1_1unwrap__reference_3_01reference__wrapper_3_01T__type_01_4_01_4.html">unwrap_reference&lt; reference_wrapper&lt; T_type &gt; &gt;</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="structsigc_1_1unwrap__reference_3_01std_1_1reference__wrapper_3_01T__type_01_4_01_4.html">unwrap_reference&lt; std::reference_wrapper&lt; T_type &gt; &gt;</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td rowspan="2" valign="bottom"><a name="letter_v"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;v&#160;&#160;</div></td></tr></table>
</td></tr>
<tr></tr>
<tr><td valign="top"><a class="el" href="structsigc_1_1visitor.html">visitor</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="classsigc_1_1volatile__limit__reference.html">volatile_limit_reference</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="classsigc_1_1volatile__limit__reference_3_01T__type_00_01true_01_4.html">volatile_limit_reference&lt; T_type, true &gt;</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="classsigc_1_1volatile__mem__functor0.html">volatile_mem_functor0</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="classsigc_1_1volatile__mem__functor1.html">volatile_mem_functor1</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="classsigc_1_1volatile__mem__functor2.html">volatile_mem_functor2</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="classsigc_1_1volatile__mem__functor3.html">volatile_mem_functor3</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="classsigc_1_1volatile__mem__functor4.html">volatile_mem_functor4</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="classsigc_1_1volatile__mem__functor5.html">volatile_mem_functor5</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="classsigc_1_1volatile__mem__functor6.html">volatile_mem_functor6</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="classsigc_1_1volatile__mem__functor7.html">volatile_mem_functor7</a> (<a class="el" href="namespacesigc.html">sigc</a>)&#160;&#160;&#160;</td></tr>
<tr><td></td></tr>
</table>
<div class="qindex"><a class="qindex" href="#letter_A">A</a>&#160;|&#160;<a class="qindex" href="#letter_B">B</a>&#160;|&#160;<a class="qindex" href="#letter_C">C</a>&#160;|&#160;<a class="qindex" href="#letter_D">D</a>&#160;|&#160;<a class="qindex" href="#letter_E">E</a>&#160;|&#160;<a class="qindex" href="#letter_F">F</a>&#160;|&#160;<a class="qindex" href="#letter_H">H</a>&#160;|&#160;<a class="qindex" href="#letter_L">L</a>&#160;|&#160;<a class="qindex" href="#letter_M">M</a>&#160;|&#160;<a class="qindex" href="#letter_N">N</a>&#160;|&#160;<a class="qindex" href="#letter_P">P</a>&#160;|&#160;<a class="qindex" href="#letter_R">R</a>&#160;|&#160;<a class="qindex" href="#letter_S">S</a>&#160;|&#160;<a class="qindex" href="#letter_T">T</a>&#160;|&#160;<a class="qindex" href="#letter_U">U</a>&#160;|&#160;<a class="qindex" href="#letter_V">V</a></div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Wed Mar 25 2020 10:13:31 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.11
</small></address>
</body>
</html>

View File

@ -0,0 +1,72 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.11"/>
<title>libsigc++: Member List</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="doxygen-extra.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">libsigc++
&#160;<span id="projectnumber">2.10.3</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.11 -->
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="annotated.html"><span>Class&#160;List</span></a></li>
<li><a href="classes.html"><span>Class&#160;Index</span></a></li>
<li><a href="inherits.html"><span>Class&#160;Hierarchy</span></a></li>
<li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="namespacesigc.html">sigc</a></li><li class="navelem"><a class="el" href="classsigc_1_1bound__argument.html">bound_argument</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">sigc::bound_argument&lt; T_type &gt; Member List</div> </div>
</div><!--header-->
<div class="contents">
<p>This is the complete list of members for <a class="el" href="classsigc_1_1bound__argument.html">sigc::bound_argument&lt; T_type &gt;</a>, including all inherited members.</p>
<table class="directory">
<tr class="even"><td class="entry"><a class="el" href="classsigc_1_1bound__argument.html#a495bb69a41b38eda5d6ace5a36807a37">bound_argument</a>(const T_type&amp; _A_argument)</td><td class="entry"><a class="el" href="classsigc_1_1bound__argument.html">sigc::bound_argument&lt; T_type &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="classsigc_1_1bound__argument.html#af1cf20526bade89328a1ed398055bbba">invoke</a>()</td><td class="entry"><a class="el" href="classsigc_1_1bound__argument.html">sigc::bound_argument&lt; T_type &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classsigc_1_1bound__argument.html#ae4816ddf9275c55962542dc7bba20397">visit</a>() const </td><td class="entry"><a class="el" href="classsigc_1_1bound__argument.html">sigc::bound_argument&lt; T_type &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Wed Mar 25 2020 10:13:28 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.11
</small></address>
</body>
</html>

View File

@ -0,0 +1,189 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.11"/>
<title>libsigc++: sigc::bound_argument&lt; T_type &gt; Class Template Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="doxygen-extra.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">libsigc++
&#160;<span id="projectnumber">2.10.3</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.11 -->
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="annotated.html"><span>Class&#160;List</span></a></li>
<li><a href="classes.html"><span>Class&#160;Index</span></a></li>
<li><a href="inherits.html"><span>Class&#160;Hierarchy</span></a></li>
<li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="namespacesigc.html">sigc</a></li><li class="navelem"><a class="el" href="classsigc_1_1bound__argument.html">bound_argument</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="classsigc_1_1bound__argument-members.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">sigc::bound_argument&lt; T_type &gt; Class Template Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>A bound_argument&lt;Foo&gt; object stores a bound (for instance, with <a class="el" href="group__bind.html#ga2f099bc6056b32f2a58134ba8537c6f4" title="Creates an adaptor of type sigc::bind_functor which binds the passed argument to the passed functor...">sigc::bind()</a>, or <a class="el" href="group__bind.html#gaca1ae2466988d67d00a5f2cd16c8d90a" title="Creates an adaptor of type sigc::bind_return_functor which fixes the return value of the passed funct...">sigc::bind_return()</a>) argument.
<a href="classsigc_1_1bound__argument.html#details">More...</a></p>
<p><code>#include &lt;sigc++/adaptors/bound_argument.h&gt;</code></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a495bb69a41b38eda5d6ace5a36807a37"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsigc_1_1bound__argument.html#a495bb69a41b38eda5d6ace5a36807a37">bound_argument</a> (const T_type&amp; _A_argument)</td></tr>
<tr class="memdesc:a495bb69a41b38eda5d6ace5a36807a37"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor. <a href="#a495bb69a41b38eda5d6ace5a36807a37">More...</a><br /></td></tr>
<tr class="separator:a495bb69a41b38eda5d6ace5a36807a37"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af1cf20526bade89328a1ed398055bbba"><td class="memItemLeft" align="right" valign="top">T_type&amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsigc_1_1bound__argument.html#af1cf20526bade89328a1ed398055bbba">invoke</a> ()</td></tr>
<tr class="memdesc:af1cf20526bade89328a1ed398055bbba"><td class="mdescLeft">&#160;</td><td class="mdescRight">Retrieve the entity to pass to the bound functor or return. <a href="#af1cf20526bade89328a1ed398055bbba">More...</a><br /></td></tr>
<tr class="separator:af1cf20526bade89328a1ed398055bbba"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae4816ddf9275c55962542dc7bba20397"><td class="memItemLeft" align="right" valign="top">const T_type&amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsigc_1_1bound__argument.html#ae4816ddf9275c55962542dc7bba20397">visit</a> () const </td></tr>
<tr class="memdesc:ae4816ddf9275c55962542dc7bba20397"><td class="mdescLeft">&#160;</td><td class="mdescRight">Retrieve the entity to visit in <a class="el" href="group__sigcfunctors.html#ga64cb7832acc1e58efb5ffe0b4f5e9404" title="This function performs a functor on each of the targets of a functor. ">visit_each()</a>. <a href="#ae4816ddf9275c55962542dc7bba20397">More...</a><br /></td></tr>
<tr class="separator:ae4816ddf9275c55962542dc7bba20397"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><h3>template&lt;class T_type&gt;<br />
class sigc::bound_argument&lt; T_type &gt;</h3>
<p>A bound_argument&lt;Foo&gt; object stores a bound (for instance, with <a class="el" href="group__bind.html#ga2f099bc6056b32f2a58134ba8537c6f4" title="Creates an adaptor of type sigc::bind_functor which binds the passed argument to the passed functor...">sigc::bind()</a>, or <a class="el" href="group__bind.html#gaca1ae2466988d67d00a5f2cd16c8d90a" title="Creates an adaptor of type sigc::bind_return_functor which fixes the return value of the passed funct...">sigc::bind_return()</a>) argument. </p>
<p>If Foo is a wrapped reference to a class Bar (reference_wrapper&lt;Bar&gt;) then this object is implemented on top of a <a class="el" href="classsigc_1_1limit__reference.html" title="A limit_reference&lt;Foo&gt; object stores a reference (Foo&amp;), but make sure that, if Foo inherits from sig...">limit_reference</a>. When the slot is invoked, the <a class="el" href="classsigc_1_1limit__reference.html#a951ae1d15397406945d4a6b67f30936f" title="Retrieve the reference. ">limit_reference::invoke()</a> method provides the argument (a Bar&amp;). When the slot is visited (e.g. <a class="el" href="group__sigcfunctors.html#ga64cb7832acc1e58efb5ffe0b4f5e9404" title="This function performs a functor on each of the targets of a functor. ">visit_each&lt;&gt;()</a>), we simply visit the <a class="el" href="classsigc_1_1limit__reference.html" title="A limit_reference&lt;Foo&gt; object stores a reference (Foo&amp;), but make sure that, if Foo inherits from sig...">limit_reference</a>, which will visit the derived type, or a <a class="el" href="structsigc_1_1trackable.html" title="Base class for objects with auto-disconnection. ">sigc::trackable</a> base if necessary.</p>
<p>Likewise, If Foo is a wrapped const reference to a class Bar (const_reference_wrapper&lt;Bar&gt;) then this object is implemented on top of a <a class="el" href="classsigc_1_1const__limit__reference.html" title="A const_limit_reference&lt;Foo&gt; object stores a reference (Foo&amp;), but make sure that, if Foo inherits from sigc::trackable, then visit_each&lt;&gt;() will &quot;limit&quot; itself to the sigc::trackable reference instead of the derived reference. ">const_limit_reference</a>.</p>
<p>If Foo is something else (such as an argument that is bound by value) <a class="el" href="classsigc_1_1bound__argument.html" title="A bound_argument&lt;Foo&gt; object stores a bound (for instance, with sigc::bind(), or sigc::bind_return())...">bound_argument</a> just stores a cop of that value, and both <a class="el" href="classsigc_1_1bound__argument.html#af1cf20526bade89328a1ed398055bbba" title="Retrieve the entity to pass to the bound functor or return. ">invoke()</a> and <a class="el" href="classsigc_1_1bound__argument.html#ae4816ddf9275c55962542dc7bba20397" title="Retrieve the entity to visit in visit_each(). ">visit()</a> simply return it.</p>
<p>This object is used by the bind_functor&lt;&gt; and bind_return_functor&lt;&gt; objects, depending on whether the argument is bound as a parameter or as a return value.</p>
<p>The general template implementation is used for parameters that are passed by value. <em>T_type</em> The type of the bound argument. </p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="a495bb69a41b38eda5d6ace5a36807a37"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template &lt;class T_type&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classsigc_1_1bound__argument.html">sigc::bound_argument</a>&lt; T_type &gt;::<a class="el" href="classsigc_1_1bound__argument.html">bound_argument</a> </td>
<td>(</td>
<td class="paramtype">const T_type &amp;&#160;</td>
<td class="paramname"><em>_A_argument</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Constructor. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">_A_argument</td><td>The argument to bind. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a class="anchor" id="af1cf20526bade89328a1ed398055bbba"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template &lt;class T_type&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">T_type&amp; <a class="el" href="classsigc_1_1bound__argument.html">sigc::bound_argument</a>&lt; T_type &gt;::invoke </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Retrieve the entity to pass to the bound functor or return. </p>
<dl class="section return"><dt>Returns</dt><dd>The bound argument. </dd></dl>
</div>
</div>
<a class="anchor" id="ae4816ddf9275c55962542dc7bba20397"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template &lt;class T_type&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">const T_type&amp; <a class="el" href="classsigc_1_1bound__argument.html">sigc::bound_argument</a>&lt; T_type &gt;::visit </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Retrieve the entity to visit in <a class="el" href="group__sigcfunctors.html#ga64cb7832acc1e58efb5ffe0b4f5e9404" title="This function performs a functor on each of the targets of a functor. ">visit_each()</a>. </p>
<dl class="section return"><dt>Returns</dt><dd>The bound argument. </dd></dl>
</div>
</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Wed Mar 25 2020 10:13:28 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.11
</small></address>
</body>
</html>

View File

@ -0,0 +1,72 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.11"/>
<title>libsigc++: Member List</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="doxygen-extra.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">libsigc++
&#160;<span id="projectnumber">2.10.3</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.11 -->
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="annotated.html"><span>Class&#160;List</span></a></li>
<li><a href="classes.html"><span>Class&#160;Index</span></a></li>
<li><a href="inherits.html"><span>Class&#160;Hierarchy</span></a></li>
<li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="namespacesigc.html">sigc</a></li><li class="navelem"><a class="el" href="classsigc_1_1bound__argument_3_01const__reference__wrapper_3_01T__wrapped_01_4_01_4.html">bound_argument&lt; const_reference_wrapper&lt; T_wrapped &gt; &gt;</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">sigc::bound_argument&lt; const_reference_wrapper&lt; T_wrapped &gt; &gt; Member List</div> </div>
</div><!--header-->
<div class="contents">
<p>This is the complete list of members for <a class="el" href="classsigc_1_1bound__argument_3_01const__reference__wrapper_3_01T__wrapped_01_4_01_4.html">sigc::bound_argument&lt; const_reference_wrapper&lt; T_wrapped &gt; &gt;</a>, including all inherited members.</p>
<table class="directory">
<tr class="even"><td class="entry"><a class="el" href="classsigc_1_1bound__argument_3_01const__reference__wrapper_3_01T__wrapped_01_4_01_4.html#afdfab4386d34bd03e82b05a2eb1f2afe">bound_argument</a>(const const_reference_wrapper&lt; T_wrapped &gt;&amp; _A_argument)</td><td class="entry"><a class="el" href="classsigc_1_1bound__argument_3_01const__reference__wrapper_3_01T__wrapped_01_4_01_4.html">sigc::bound_argument&lt; const_reference_wrapper&lt; T_wrapped &gt; &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="classsigc_1_1bound__argument_3_01const__reference__wrapper_3_01T__wrapped_01_4_01_4.html#aa08b2efa73ad0a928f0be217da940671">invoke</a>()</td><td class="entry"><a class="el" href="classsigc_1_1bound__argument_3_01const__reference__wrapper_3_01T__wrapped_01_4_01_4.html">sigc::bound_argument&lt; const_reference_wrapper&lt; T_wrapped &gt; &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classsigc_1_1bound__argument_3_01const__reference__wrapper_3_01T__wrapped_01_4_01_4.html#af582d504a83ac50bf326c05f80adc79b">visit</a>() const </td><td class="entry"><a class="el" href="classsigc_1_1bound__argument_3_01const__reference__wrapper_3_01T__wrapped_01_4_01_4.html">sigc::bound_argument&lt; const_reference_wrapper&lt; T_wrapped &gt; &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Wed Mar 25 2020 10:13:28 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.11
</small></address>
</body>
</html>

View File

@ -0,0 +1,187 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.11"/>
<title>libsigc++: sigc::bound_argument&lt; const_reference_wrapper&lt; T_wrapped &gt; &gt; Class Template Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="doxygen-extra.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">libsigc++
&#160;<span id="projectnumber">2.10.3</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.11 -->
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="annotated.html"><span>Class&#160;List</span></a></li>
<li><a href="classes.html"><span>Class&#160;Index</span></a></li>
<li><a href="inherits.html"><span>Class&#160;Hierarchy</span></a></li>
<li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="namespacesigc.html">sigc</a></li><li class="navelem"><a class="el" href="classsigc_1_1bound__argument_3_01const__reference__wrapper_3_01T__wrapped_01_4_01_4.html">bound_argument&lt; const_reference_wrapper&lt; T_wrapped &gt; &gt;</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="classsigc_1_1bound__argument_3_01const__reference__wrapper_3_01T__wrapped_01_4_01_4-members.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">sigc::bound_argument&lt; const_reference_wrapper&lt; T_wrapped &gt; &gt; Class Template Reference</div> </div>
</div><!--header-->
<div class="contents">
<p><a class="el" href="classsigc_1_1bound__argument.html" title="A bound_argument&lt;Foo&gt; object stores a bound (for instance, with sigc::bind(), or sigc::bind_return())...">bound_argument</a> object for a bound argument that is passed by <a class="el" href="group__bind.html#ga2f099bc6056b32f2a58134ba8537c6f4" title="Creates an adaptor of type sigc::bind_functor which binds the passed argument to the passed functor...">bind()</a> or returned by <a class="el" href="group__bind.html#gaca1ae2466988d67d00a5f2cd16c8d90a" title="Creates an adaptor of type sigc::bind_return_functor which fixes the return value of the passed funct...">bind_return()</a> by const reference, specialized for const reference_wrapper&lt;&gt; types.
<a href="classsigc_1_1bound__argument_3_01const__reference__wrapper_3_01T__wrapped_01_4_01_4.html#details">More...</a></p>
<p><code>#include &lt;sigc++/adaptors/bound_argument.h&gt;</code></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:afdfab4386d34bd03e82b05a2eb1f2afe"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsigc_1_1bound__argument_3_01const__reference__wrapper_3_01T__wrapped_01_4_01_4.html#afdfab4386d34bd03e82b05a2eb1f2afe">bound_argument</a> (const <a class="el" href="structsigc_1_1const__reference__wrapper.html">const_reference_wrapper</a>&lt; T_wrapped &gt;&amp; _A_argument)</td></tr>
<tr class="memdesc:afdfab4386d34bd03e82b05a2eb1f2afe"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor. <a href="#afdfab4386d34bd03e82b05a2eb1f2afe">More...</a><br /></td></tr>
<tr class="separator:afdfab4386d34bd03e82b05a2eb1f2afe"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa08b2efa73ad0a928f0be217da940671"><td class="memItemLeft" align="right" valign="top">const T_wrapped&amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsigc_1_1bound__argument_3_01const__reference__wrapper_3_01T__wrapped_01_4_01_4.html#aa08b2efa73ad0a928f0be217da940671">invoke</a> ()</td></tr>
<tr class="memdesc:aa08b2efa73ad0a928f0be217da940671"><td class="mdescLeft">&#160;</td><td class="mdescRight">Retrieve the entity to pass to the bound functor or return. <a href="#aa08b2efa73ad0a928f0be217da940671">More...</a><br /></td></tr>
<tr class="separator:aa08b2efa73ad0a928f0be217da940671"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af582d504a83ac50bf326c05f80adc79b"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classsigc_1_1const__limit__reference.html">const_limit_reference</a>&lt; T_wrapped &gt;&amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsigc_1_1bound__argument_3_01const__reference__wrapper_3_01T__wrapped_01_4_01_4.html#af582d504a83ac50bf326c05f80adc79b">visit</a> () const </td></tr>
<tr class="memdesc:af582d504a83ac50bf326c05f80adc79b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Retrieve the entity to visit in <a class="el" href="group__sigcfunctors.html#ga64cb7832acc1e58efb5ffe0b4f5e9404" title="This function performs a functor on each of the targets of a functor. ">visit_each()</a>. <a href="#af582d504a83ac50bf326c05f80adc79b">More...</a><br /></td></tr>
<tr class="separator:af582d504a83ac50bf326c05f80adc79b"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><h3>template&lt;class T_wrapped&gt;<br />
class sigc::bound_argument&lt; const_reference_wrapper&lt; T_wrapped &gt; &gt;</h3>
<p><a class="el" href="classsigc_1_1bound__argument.html" title="A bound_argument&lt;Foo&gt; object stores a bound (for instance, with sigc::bind(), or sigc::bind_return())...">bound_argument</a> object for a bound argument that is passed by <a class="el" href="group__bind.html#ga2f099bc6056b32f2a58134ba8537c6f4" title="Creates an adaptor of type sigc::bind_functor which binds the passed argument to the passed functor...">bind()</a> or returned by <a class="el" href="group__bind.html#gaca1ae2466988d67d00a5f2cd16c8d90a" title="Creates an adaptor of type sigc::bind_return_functor which fixes the return value of the passed funct...">bind_return()</a> by const reference, specialized for const reference_wrapper&lt;&gt; types. </p>
<ul>
<li><em>T_wrapped</em> The type of the bound argument. </li>
</ul>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="afdfab4386d34bd03e82b05a2eb1f2afe"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template &lt;class T_wrapped &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classsigc_1_1bound__argument.html">sigc::bound_argument</a>&lt; <a class="el" href="structsigc_1_1const__reference__wrapper.html">const_reference_wrapper</a>&lt; T_wrapped &gt; &gt;::<a class="el" href="classsigc_1_1bound__argument.html">bound_argument</a> </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="structsigc_1_1const__reference__wrapper.html">const_reference_wrapper</a>&lt; T_wrapped &gt;&amp;&#160;</td>
<td class="paramname"><em>_A_argument</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Constructor. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">_A_argument</td><td>The argument to bind. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a class="anchor" id="aa08b2efa73ad0a928f0be217da940671"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template &lt;class T_wrapped &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">const T_wrapped&amp; <a class="el" href="classsigc_1_1bound__argument.html">sigc::bound_argument</a>&lt; <a class="el" href="structsigc_1_1const__reference__wrapper.html">const_reference_wrapper</a>&lt; T_wrapped &gt; &gt;::invoke </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Retrieve the entity to pass to the bound functor or return. </p>
<dl class="section return"><dt>Returns</dt><dd>The bound argument. </dd></dl>
</div>
</div>
<a class="anchor" id="af582d504a83ac50bf326c05f80adc79b"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template &lt;class T_wrapped &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">const <a class="el" href="classsigc_1_1const__limit__reference.html">const_limit_reference</a>&lt;T_wrapped&gt;&amp; <a class="el" href="classsigc_1_1bound__argument.html">sigc::bound_argument</a>&lt; <a class="el" href="structsigc_1_1const__reference__wrapper.html">const_reference_wrapper</a>&lt; T_wrapped &gt; &gt;::visit </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Retrieve the entity to visit in <a class="el" href="group__sigcfunctors.html#ga64cb7832acc1e58efb5ffe0b4f5e9404" title="This function performs a functor on each of the targets of a functor. ">visit_each()</a>. </p>
<dl class="section return"><dt>Returns</dt><dd>The const_limited_reference to the bound argument. </dd></dl>
</div>
</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Wed Mar 25 2020 10:13:28 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.11
</small></address>
</body>
</html>

View File

@ -0,0 +1,72 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.11"/>
<title>libsigc++: Member List</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="doxygen-extra.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">libsigc++
&#160;<span id="projectnumber">2.10.3</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.11 -->
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="annotated.html"><span>Class&#160;List</span></a></li>
<li><a href="classes.html"><span>Class&#160;Index</span></a></li>
<li><a href="inherits.html"><span>Class&#160;Hierarchy</span></a></li>
<li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="namespacesigc.html">sigc</a></li><li class="navelem"><a class="el" href="classsigc_1_1bound__argument_3_01reference__wrapper_3_01T__wrapped_01_4_01_4.html">bound_argument&lt; reference_wrapper&lt; T_wrapped &gt; &gt;</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">sigc::bound_argument&lt; reference_wrapper&lt; T_wrapped &gt; &gt; Member List</div> </div>
</div><!--header-->
<div class="contents">
<p>This is the complete list of members for <a class="el" href="classsigc_1_1bound__argument_3_01reference__wrapper_3_01T__wrapped_01_4_01_4.html">sigc::bound_argument&lt; reference_wrapper&lt; T_wrapped &gt; &gt;</a>, including all inherited members.</p>
<table class="directory">
<tr class="even"><td class="entry"><a class="el" href="classsigc_1_1bound__argument_3_01reference__wrapper_3_01T__wrapped_01_4_01_4.html#a46f705d774a2436055785b7a55830349">bound_argument</a>(const reference_wrapper&lt; T_wrapped &gt;&amp; _A_argument)</td><td class="entry"><a class="el" href="classsigc_1_1bound__argument_3_01reference__wrapper_3_01T__wrapped_01_4_01_4.html">sigc::bound_argument&lt; reference_wrapper&lt; T_wrapped &gt; &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="classsigc_1_1bound__argument_3_01reference__wrapper_3_01T__wrapped_01_4_01_4.html#adbeb73917559e0764bf367dfc6c4141d">invoke</a>()</td><td class="entry"><a class="el" href="classsigc_1_1bound__argument_3_01reference__wrapper_3_01T__wrapped_01_4_01_4.html">sigc::bound_argument&lt; reference_wrapper&lt; T_wrapped &gt; &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classsigc_1_1bound__argument_3_01reference__wrapper_3_01T__wrapped_01_4_01_4.html#a20a829c033c5b6dda01b7d27d5505988">visit</a>() const </td><td class="entry"><a class="el" href="classsigc_1_1bound__argument_3_01reference__wrapper_3_01T__wrapped_01_4_01_4.html">sigc::bound_argument&lt; reference_wrapper&lt; T_wrapped &gt; &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Wed Mar 25 2020 10:13:28 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.11
</small></address>
</body>
</html>

View File

@ -0,0 +1,185 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.11"/>
<title>libsigc++: sigc::bound_argument&lt; reference_wrapper&lt; T_wrapped &gt; &gt; Class Template Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="doxygen-extra.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">libsigc++
&#160;<span id="projectnumber">2.10.3</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.11 -->
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="annotated.html"><span>Class&#160;List</span></a></li>
<li><a href="classes.html"><span>Class&#160;Index</span></a></li>
<li><a href="inherits.html"><span>Class&#160;Hierarchy</span></a></li>
<li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="namespacesigc.html">sigc</a></li><li class="navelem"><a class="el" href="classsigc_1_1bound__argument_3_01reference__wrapper_3_01T__wrapped_01_4_01_4.html">bound_argument&lt; reference_wrapper&lt; T_wrapped &gt; &gt;</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="classsigc_1_1bound__argument_3_01reference__wrapper_3_01T__wrapped_01_4_01_4-members.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">sigc::bound_argument&lt; reference_wrapper&lt; T_wrapped &gt; &gt; Class Template Reference</div> </div>
</div><!--header-->
<div class="contents">
<p><a class="el" href="classsigc_1_1bound__argument.html" title="A bound_argument&lt;Foo&gt; object stores a bound (for instance, with sigc::bind(), or sigc::bind_return())...">bound_argument</a> object for a bound argument that is passed by <a class="el" href="group__bind.html#ga2f099bc6056b32f2a58134ba8537c6f4" title="Creates an adaptor of type sigc::bind_functor which binds the passed argument to the passed functor...">bind()</a> or returned by <a class="el" href="group__bind.html#gaca1ae2466988d67d00a5f2cd16c8d90a" title="Creates an adaptor of type sigc::bind_return_functor which fixes the return value of the passed funct...">bind_return()</a> by reference, specialized for reference_wrapper&lt;&gt; types.
<a href="classsigc_1_1bound__argument_3_01reference__wrapper_3_01T__wrapped_01_4_01_4.html#details">More...</a></p>
<p><code>#include &lt;sigc++/adaptors/bound_argument.h&gt;</code></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a46f705d774a2436055785b7a55830349"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsigc_1_1bound__argument_3_01reference__wrapper_3_01T__wrapped_01_4_01_4.html#a46f705d774a2436055785b7a55830349">bound_argument</a> (const <a class="el" href="structsigc_1_1reference__wrapper.html">reference_wrapper</a>&lt; T_wrapped &gt;&amp; _A_argument)</td></tr>
<tr class="memdesc:a46f705d774a2436055785b7a55830349"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor. <a href="#a46f705d774a2436055785b7a55830349">More...</a><br /></td></tr>
<tr class="separator:a46f705d774a2436055785b7a55830349"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adbeb73917559e0764bf367dfc6c4141d"><td class="memItemLeft" align="right" valign="top">T_wrapped&amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsigc_1_1bound__argument_3_01reference__wrapper_3_01T__wrapped_01_4_01_4.html#adbeb73917559e0764bf367dfc6c4141d">invoke</a> ()</td></tr>
<tr class="memdesc:adbeb73917559e0764bf367dfc6c4141d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Retrieve the entity to pass to the bound functor or return. <a href="#adbeb73917559e0764bf367dfc6c4141d">More...</a><br /></td></tr>
<tr class="separator:adbeb73917559e0764bf367dfc6c4141d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a20a829c033c5b6dda01b7d27d5505988"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classsigc_1_1limit__reference.html">limit_reference</a>&lt; T_wrapped &gt;&amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsigc_1_1bound__argument_3_01reference__wrapper_3_01T__wrapped_01_4_01_4.html#a20a829c033c5b6dda01b7d27d5505988">visit</a> () const </td></tr>
<tr class="memdesc:a20a829c033c5b6dda01b7d27d5505988"><td class="mdescLeft">&#160;</td><td class="mdescRight">Retrieve the entity to visit in <a class="el" href="group__sigcfunctors.html#ga64cb7832acc1e58efb5ffe0b4f5e9404" title="This function performs a functor on each of the targets of a functor. ">visit_each()</a>. <a href="#a20a829c033c5b6dda01b7d27d5505988">More...</a><br /></td></tr>
<tr class="separator:a20a829c033c5b6dda01b7d27d5505988"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><h3>template&lt;class T_wrapped&gt;<br />
class sigc::bound_argument&lt; reference_wrapper&lt; T_wrapped &gt; &gt;</h3>
<p><a class="el" href="classsigc_1_1bound__argument.html" title="A bound_argument&lt;Foo&gt; object stores a bound (for instance, with sigc::bind(), or sigc::bind_return())...">bound_argument</a> object for a bound argument that is passed by <a class="el" href="group__bind.html#ga2f099bc6056b32f2a58134ba8537c6f4" title="Creates an adaptor of type sigc::bind_functor which binds the passed argument to the passed functor...">bind()</a> or returned by <a class="el" href="group__bind.html#gaca1ae2466988d67d00a5f2cd16c8d90a" title="Creates an adaptor of type sigc::bind_return_functor which fixes the return value of the passed funct...">bind_return()</a> by reference, specialized for reference_wrapper&lt;&gt; types. </p>
<p><em>T_wrapped</em> The type of the bound argument. </p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="a46f705d774a2436055785b7a55830349"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template &lt;class T_wrapped &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classsigc_1_1bound__argument.html">sigc::bound_argument</a>&lt; <a class="el" href="structsigc_1_1reference__wrapper.html">reference_wrapper</a>&lt; T_wrapped &gt; &gt;::<a class="el" href="classsigc_1_1bound__argument.html">bound_argument</a> </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="structsigc_1_1reference__wrapper.html">reference_wrapper</a>&lt; T_wrapped &gt;&amp;&#160;</td>
<td class="paramname"><em>_A_argument</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Constructor. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">_A_argument</td><td>The argument to bind. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a class="anchor" id="adbeb73917559e0764bf367dfc6c4141d"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template &lt;class T_wrapped &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">T_wrapped&amp; <a class="el" href="classsigc_1_1bound__argument.html">sigc::bound_argument</a>&lt; <a class="el" href="structsigc_1_1reference__wrapper.html">reference_wrapper</a>&lt; T_wrapped &gt; &gt;::invoke </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Retrieve the entity to pass to the bound functor or return. </p>
<dl class="section return"><dt>Returns</dt><dd>The bound argument. </dd></dl>
</div>
</div>
<a class="anchor" id="a20a829c033c5b6dda01b7d27d5505988"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template &lt;class T_wrapped &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">const <a class="el" href="classsigc_1_1limit__reference.html">limit_reference</a>&lt;T_wrapped&gt;&amp; <a class="el" href="classsigc_1_1bound__argument.html">sigc::bound_argument</a>&lt; <a class="el" href="structsigc_1_1reference__wrapper.html">reference_wrapper</a>&lt; T_wrapped &gt; &gt;::visit </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Retrieve the entity to visit in <a class="el" href="group__sigcfunctors.html#ga64cb7832acc1e58efb5ffe0b4f5e9404" title="This function performs a functor on each of the targets of a functor. ">visit_each()</a>. </p>
<dl class="section return"><dt>Returns</dt><dd>The limited_reference to the bound argument. </dd></dl>
</div>
</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Wed Mar 25 2020 10:13:28 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.11
</small></address>
</body>
</html>

View File

@ -0,0 +1,72 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.11"/>
<title>libsigc++: Member List</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="doxygen-extra.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">libsigc++
&#160;<span id="projectnumber">2.10.3</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.11 -->
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="annotated.html"><span>Class&#160;List</span></a></li>
<li><a href="classes.html"><span>Class&#160;Index</span></a></li>
<li><a href="inherits.html"><span>Class&#160;Hierarchy</span></a></li>
<li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="namespacesigc.html">sigc</a></li><li class="navelem"><a class="el" href="classsigc_1_1bound__argument_3_01std_1_1reference__wrapper_3_01T__wrapped_01_4_01_4.html">bound_argument&lt; std::reference_wrapper&lt; T_wrapped &gt; &gt;</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">sigc::bound_argument&lt; std::reference_wrapper&lt; T_wrapped &gt; &gt; Member List</div> </div>
</div><!--header-->
<div class="contents">
<p>This is the complete list of members for <a class="el" href="classsigc_1_1bound__argument_3_01std_1_1reference__wrapper_3_01T__wrapped_01_4_01_4.html">sigc::bound_argument&lt; std::reference_wrapper&lt; T_wrapped &gt; &gt;</a>, including all inherited members.</p>
<table class="directory">
<tr class="even"><td class="entry"><a class="el" href="classsigc_1_1bound__argument_3_01std_1_1reference__wrapper_3_01T__wrapped_01_4_01_4.html#a597709183c9a0b753f4674aaab80b4ff">bound_argument</a>(const std::reference_wrapper&lt; T_wrapped &gt;&amp; _A_argument)</td><td class="entry"><a class="el" href="classsigc_1_1bound__argument_3_01std_1_1reference__wrapper_3_01T__wrapped_01_4_01_4.html">sigc::bound_argument&lt; std::reference_wrapper&lt; T_wrapped &gt; &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="classsigc_1_1bound__argument_3_01std_1_1reference__wrapper_3_01T__wrapped_01_4_01_4.html#a38950827998907494c25397f01552730">invoke</a>()</td><td class="entry"><a class="el" href="classsigc_1_1bound__argument_3_01std_1_1reference__wrapper_3_01T__wrapped_01_4_01_4.html">sigc::bound_argument&lt; std::reference_wrapper&lt; T_wrapped &gt; &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classsigc_1_1bound__argument_3_01std_1_1reference__wrapper_3_01T__wrapped_01_4_01_4.html#ae6a4426ca39736a475bbcc81d7fcd9b2">visit</a>() const </td><td class="entry"><a class="el" href="classsigc_1_1bound__argument_3_01std_1_1reference__wrapper_3_01T__wrapped_01_4_01_4.html">sigc::bound_argument&lt; std::reference_wrapper&lt; T_wrapped &gt; &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Wed Mar 25 2020 10:13:28 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.11
</small></address>
</body>
</html>

View File

@ -0,0 +1,185 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.11"/>
<title>libsigc++: sigc::bound_argument&lt; std::reference_wrapper&lt; T_wrapped &gt; &gt; Class Template Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="doxygen-extra.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">libsigc++
&#160;<span id="projectnumber">2.10.3</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.11 -->
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="annotated.html"><span>Class&#160;List</span></a></li>
<li><a href="classes.html"><span>Class&#160;Index</span></a></li>
<li><a href="inherits.html"><span>Class&#160;Hierarchy</span></a></li>
<li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="namespacesigc.html">sigc</a></li><li class="navelem"><a class="el" href="classsigc_1_1bound__argument_3_01std_1_1reference__wrapper_3_01T__wrapped_01_4_01_4.html">bound_argument&lt; std::reference_wrapper&lt; T_wrapped &gt; &gt;</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="classsigc_1_1bound__argument_3_01std_1_1reference__wrapper_3_01T__wrapped_01_4_01_4-members.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">sigc::bound_argument&lt; std::reference_wrapper&lt; T_wrapped &gt; &gt; Class Template Reference</div> </div>
</div><!--header-->
<div class="contents">
<p><a class="el" href="classsigc_1_1bound__argument.html" title="A bound_argument&lt;Foo&gt; object stores a bound (for instance, with sigc::bind(), or sigc::bind_return())...">bound_argument</a> object for a bound argument that is passed by <a class="el" href="group__bind.html#ga2f099bc6056b32f2a58134ba8537c6f4" title="Creates an adaptor of type sigc::bind_functor which binds the passed argument to the passed functor...">bind()</a> or returned by <a class="el" href="group__bind.html#gaca1ae2466988d67d00a5f2cd16c8d90a" title="Creates an adaptor of type sigc::bind_return_functor which fixes the return value of the passed funct...">bind_return()</a> by reference, specialized for std::reference_wrapper&lt;&gt; types.
<a href="classsigc_1_1bound__argument_3_01std_1_1reference__wrapper_3_01T__wrapped_01_4_01_4.html#details">More...</a></p>
<p><code>#include &lt;sigc++/adaptors/bound_argument.h&gt;</code></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a597709183c9a0b753f4674aaab80b4ff"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsigc_1_1bound__argument_3_01std_1_1reference__wrapper_3_01T__wrapped_01_4_01_4.html#a597709183c9a0b753f4674aaab80b4ff">bound_argument</a> (const <a class="elRef" doxygen="libstdc++.tag:http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/" href="http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/a05776.html">std::reference_wrapper</a>&lt; T_wrapped &gt;&amp; _A_argument)</td></tr>
<tr class="memdesc:a597709183c9a0b753f4674aaab80b4ff"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor. <a href="#a597709183c9a0b753f4674aaab80b4ff">More...</a><br /></td></tr>
<tr class="separator:a597709183c9a0b753f4674aaab80b4ff"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a38950827998907494c25397f01552730"><td class="memItemLeft" align="right" valign="top">T_wrapped&amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsigc_1_1bound__argument_3_01std_1_1reference__wrapper_3_01T__wrapped_01_4_01_4.html#a38950827998907494c25397f01552730">invoke</a> ()</td></tr>
<tr class="memdesc:a38950827998907494c25397f01552730"><td class="mdescLeft">&#160;</td><td class="mdescRight">Retrieve the entity to pass to the bound functor or return. <a href="#a38950827998907494c25397f01552730">More...</a><br /></td></tr>
<tr class="separator:a38950827998907494c25397f01552730"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae6a4426ca39736a475bbcc81d7fcd9b2"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classsigc_1_1limit__reference.html">limit_reference</a>&lt; T_wrapped &gt;&amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsigc_1_1bound__argument_3_01std_1_1reference__wrapper_3_01T__wrapped_01_4_01_4.html#ae6a4426ca39736a475bbcc81d7fcd9b2">visit</a> () const </td></tr>
<tr class="memdesc:ae6a4426ca39736a475bbcc81d7fcd9b2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Retrieve the entity to visit in <a class="el" href="group__sigcfunctors.html#ga64cb7832acc1e58efb5ffe0b4f5e9404" title="This function performs a functor on each of the targets of a functor. ">visit_each()</a>. <a href="#ae6a4426ca39736a475bbcc81d7fcd9b2">More...</a><br /></td></tr>
<tr class="separator:ae6a4426ca39736a475bbcc81d7fcd9b2"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><h3>template&lt;class T_wrapped&gt;<br />
class sigc::bound_argument&lt; std::reference_wrapper&lt; T_wrapped &gt; &gt;</h3>
<p><a class="el" href="classsigc_1_1bound__argument.html" title="A bound_argument&lt;Foo&gt; object stores a bound (for instance, with sigc::bind(), or sigc::bind_return())...">bound_argument</a> object for a bound argument that is passed by <a class="el" href="group__bind.html#ga2f099bc6056b32f2a58134ba8537c6f4" title="Creates an adaptor of type sigc::bind_functor which binds the passed argument to the passed functor...">bind()</a> or returned by <a class="el" href="group__bind.html#gaca1ae2466988d67d00a5f2cd16c8d90a" title="Creates an adaptor of type sigc::bind_return_functor which fixes the return value of the passed funct...">bind_return()</a> by reference, specialized for std::reference_wrapper&lt;&gt; types. </p>
<p><em>T_wrapped</em> The type of the bound argument. </p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="a597709183c9a0b753f4674aaab80b4ff"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template &lt;class T_wrapped &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classsigc_1_1bound__argument.html">sigc::bound_argument</a>&lt; <a class="elRef" doxygen="libstdc++.tag:http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/" href="http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/a05776.html">std::reference_wrapper</a>&lt; T_wrapped &gt; &gt;::<a class="el" href="classsigc_1_1bound__argument.html">bound_argument</a> </td>
<td>(</td>
<td class="paramtype">const <a class="elRef" doxygen="libstdc++.tag:http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/" href="http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/a05776.html">std::reference_wrapper</a>&lt; T_wrapped &gt; &amp;&#160;</td>
<td class="paramname"><em>_A_argument</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Constructor. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">_A_argument</td><td>The argument to bind. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a class="anchor" id="a38950827998907494c25397f01552730"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template &lt;class T_wrapped &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">T_wrapped&amp; <a class="el" href="classsigc_1_1bound__argument.html">sigc::bound_argument</a>&lt; <a class="elRef" doxygen="libstdc++.tag:http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/" href="http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/a05776.html">std::reference_wrapper</a>&lt; T_wrapped &gt; &gt;::invoke </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Retrieve the entity to pass to the bound functor or return. </p>
<dl class="section return"><dt>Returns</dt><dd>The bound argument. </dd></dl>
</div>
</div>
<a class="anchor" id="ae6a4426ca39736a475bbcc81d7fcd9b2"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template &lt;class T_wrapped &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">const <a class="el" href="classsigc_1_1limit__reference.html">limit_reference</a>&lt;T_wrapped&gt;&amp; <a class="el" href="classsigc_1_1bound__argument.html">sigc::bound_argument</a>&lt; <a class="elRef" doxygen="libstdc++.tag:http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/" href="http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/a05776.html">std::reference_wrapper</a>&lt; T_wrapped &gt; &gt;::visit </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Retrieve the entity to visit in <a class="el" href="group__sigcfunctors.html#ga64cb7832acc1e58efb5ffe0b4f5e9404" title="This function performs a functor on each of the targets of a functor. ">visit_each()</a>. </p>
<dl class="section return"><dt>Returns</dt><dd>The limited_reference to the bound argument. </dd></dl>
</div>
</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Wed Mar 25 2020 10:13:28 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.11
</small></address>
</body>
</html>

View File

@ -0,0 +1,80 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.11"/>
<title>libsigc++: Member List</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="doxygen-extra.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">libsigc++
&#160;<span id="projectnumber">2.10.3</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.11 -->
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="annotated.html"><span>Class&#160;List</span></a></li>
<li><a href="classes.html"><span>Class&#160;Index</span></a></li>
<li><a href="inherits.html"><span>Class&#160;Hierarchy</span></a></li>
<li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="namespacesigc.html">sigc</a></li><li class="navelem"><a class="el" href="classsigc_1_1bound__const__mem__functor0.html">bound_const_mem_functor0</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">sigc::bound_const_mem_functor0&lt; T_return, T_obj &gt; Member List</div> </div>
</div><!--header-->
<div class="contents">
<p>This is the complete list of members for <a class="el" href="classsigc_1_1bound__const__mem__functor0.html">sigc::bound_const_mem_functor0&lt; T_return, T_obj &gt;</a>, including all inherited members.</p>
<table class="directory">
<tr class="even"><td class="entry"><a class="el" href="classsigc_1_1bound__const__mem__functor0.html#a67756fc7a32eb42309a1d55aea2eeb19">bound_const_mem_functor0</a>(const T_obj* _A_obj, function_type _A_func)</td><td class="entry"><a class="el" href="classsigc_1_1bound__const__mem__functor0.html">sigc::bound_const_mem_functor0&lt; T_return, T_obj &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="classsigc_1_1bound__const__mem__functor0.html#a44aeae8d1432f66fce9cd385094b78fa">bound_const_mem_functor0</a>(const T_obj&amp; _A_obj, function_type _A_func)</td><td class="entry"><a class="el" href="classsigc_1_1bound__const__mem__functor0.html">sigc::bound_const_mem_functor0&lt; T_return, T_obj &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classsigc_1_1const__mem__functor0.html#a49bba4c8045b8b6933b8f5a854ac98d6">const_mem_functor0</a>()</td><td class="entry"><a class="el" href="classsigc_1_1const__mem__functor0.html">sigc::const_mem_functor0&lt; T_return, T_obj &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="classsigc_1_1const__mem__functor0.html#a27895e58972642453f7b853f25a66f42">const_mem_functor0</a>(function_type _A_func)</td><td class="entry"><a class="el" href="classsigc_1_1const__mem__functor0.html">sigc::const_mem_functor0&lt; T_return, T_obj &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">explicit</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classsigc_1_1const__mem__functor0.html#a215359b20450c2afe93496826ac45c1d">func_ptr_</a></td><td class="entry"><a class="el" href="classsigc_1_1const__mem__functor0.html">sigc::const_mem_functor0&lt; T_return, T_obj &gt;</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
<tr><td class="entry"><a class="el" href="classsigc_1_1bound__const__mem__functor0.html#a12ae83ad7820bd716ed8a07484a339d9">function_type</a> typedef</td><td class="entry"><a class="el" href="classsigc_1_1bound__const__mem__functor0.html">sigc::bound_const_mem_functor0&lt; T_return, T_obj &gt;</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classsigc_1_1bound__const__mem__functor0.html#afe36947825350dc17d7fed286f57c32a">obj_</a></td><td class="entry"><a class="el" href="classsigc_1_1bound__const__mem__functor0.html">sigc::bound_const_mem_functor0&lt; T_return, T_obj &gt;</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classsigc_1_1bound__const__mem__functor0.html#aea061fca09cdc46ee32bc23fcee56f2c">operator()</a>() const </td><td class="entry"><a class="el" href="classsigc_1_1bound__const__mem__functor0.html">sigc::bound_const_mem_functor0&lt; T_return, T_obj &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classsigc_1_1const__mem__functor0.html#a261a8a2fc4fca25717ee0d50a0a718c2">sigc::const_mem_functor0::operator()</a>(const T_obj* _A_obj) const </td><td class="entry"><a class="el" href="classsigc_1_1const__mem__functor0.html">sigc::const_mem_functor0&lt; T_return, T_obj &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="classsigc_1_1const__mem__functor0.html#ab282ef8746fa5de89ddbb91907d0e131">sigc::const_mem_functor0::operator()</a>(const T_obj&amp; _A_obj) const </td><td class="entry"><a class="el" href="classsigc_1_1const__mem__functor0.html">sigc::const_mem_functor0&lt; T_return, T_obj &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classsigc_1_1const__mem__functor0.html#a553cd4d85524b5deea445b67773527bf">result_type</a> typedef</td><td class="entry"><a class="el" href="classsigc_1_1const__mem__functor0.html">sigc::const_mem_functor0&lt; T_return, T_obj &gt;</a></td><td class="entry"></td></tr>
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Wed Mar 25 2020 10:13:28 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.11
</small></address>
</body>
</html>

View File

@ -0,0 +1,293 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.11"/>
<title>libsigc++: sigc::bound_const_mem_functor0&lt; T_return, T_obj &gt; Class Template Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="doxygen-extra.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">libsigc++
&#160;<span id="projectnumber">2.10.3</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.11 -->
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="annotated.html"><span>Class&#160;List</span></a></li>
<li><a href="classes.html"><span>Class&#160;Index</span></a></li>
<li><a href="inherits.html"><span>Class&#160;Hierarchy</span></a></li>
<li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="namespacesigc.html">sigc</a></li><li class="navelem"><a class="el" href="classsigc_1_1bound__const__mem__functor0.html">bound_const_mem_functor0</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-types">Public Types</a> &#124;
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pub-attribs">Public Attributes</a> &#124;
<a href="classsigc_1_1bound__const__mem__functor0-members.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">sigc::bound_const_mem_functor0&lt; T_return, T_obj &gt; Class Template Reference<div class="ingroups"><a class="el" href="group__sigcfunctors.html">Functors</a> &raquo; <a class="el" href="group__mem__fun.html">mem_fun()</a></div></div> </div>
</div><!--header-->
<div class="contents">
<p><a class="el" href="classsigc_1_1bound__const__mem__functor0.html" title="bound_const_mem_functor0 encapsulates a const method with 0 arguments and an object instance...">bound_const_mem_functor0</a> encapsulates a const method with 0 arguments and an object instance.
<a href="classsigc_1_1bound__const__mem__functor0.html#details">More...</a></p>
<p><code>#include &lt;sigc++/functors/mem_fun.h&gt;</code></p>
<div class="dynheader">
Inheritance diagram for sigc::bound_const_mem_functor0&lt; T_return, T_obj &gt;:</div>
<div class="dyncontent">
<div class="center"><img src="classsigc_1_1bound__const__mem__functor0__inherit__graph.png" border="0" usemap="#sigc_1_1bound__const__mem__functor0_3_01T__return_00_01T__obj_01_4_inherit__map" alt="Inheritance graph"/></div>
<map name="sigc_1_1bound__const__mem__functor0_3_01T__return_00_01T__obj_01_4_inherit__map" id="sigc_1_1bound__const__mem__functor0_3_01T__return_00_01T__obj_01_4_inherit__map">
<area shape="rect" id="node2" href="classsigc_1_1const__mem__functor0.html" title="const_mem_functor0 wraps const methods with 0 argument(s). " alt="" coords="5,80,199,121"/>
<area shape="rect" id="node3" href="structsigc_1_1functor__base.html" title="A hint to the compiler. " alt="" coords="32,5,172,32"/>
</map>
<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
Public Types</h2></td></tr>
<tr class="memitem:a12ae83ad7820bd716ed8a07484a339d9"><td class="memItemLeft" align="right" valign="top">typedef base_type_::function_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsigc_1_1bound__const__mem__functor0.html#a12ae83ad7820bd716ed8a07484a339d9">function_type</a></td></tr>
<tr class="separator:a12ae83ad7820bd716ed8a07484a339d9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_types_classsigc_1_1const__mem__functor0"><td colspan="2" onclick="javascript:toggleInherit('pub_types_classsigc_1_1const__mem__functor0')"><img src="closed.png" alt="-"/>&#160;Public Types inherited from <a class="el" href="classsigc_1_1const__mem__functor0.html">sigc::const_mem_functor0&lt; T_return, T_obj &gt;</a></td></tr>
<tr class="memitem:ae6407fcbb13872122e704dadf4a98546 inherit pub_types_classsigc_1_1const__mem__functor0"><td class="memItemLeft" align="right" valign="top">typedef T_return(T_obj::*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsigc_1_1const__mem__functor0.html#ae6407fcbb13872122e704dadf4a98546">function_type</a>) () const </td></tr>
<tr class="separator:ae6407fcbb13872122e704dadf4a98546 inherit pub_types_classsigc_1_1const__mem__functor0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a553cd4d85524b5deea445b67773527bf inherit pub_types_classsigc_1_1const__mem__functor0"><td class="memItemLeft" align="right" valign="top">typedef T_return&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsigc_1_1const__mem__functor0.html#a553cd4d85524b5deea445b67773527bf">result_type</a></td></tr>
<tr class="separator:a553cd4d85524b5deea445b67773527bf inherit pub_types_classsigc_1_1const__mem__functor0"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a67756fc7a32eb42309a1d55aea2eeb19"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsigc_1_1bound__const__mem__functor0.html#a67756fc7a32eb42309a1d55aea2eeb19">bound_const_mem_functor0</a> (const T_obj* _A_obj, <a class="el" href="classsigc_1_1bound__const__mem__functor0.html#a12ae83ad7820bd716ed8a07484a339d9">function_type</a> _A_func)</td></tr>
<tr class="memdesc:a67756fc7a32eb42309a1d55aea2eeb19"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructs a <a class="el" href="classsigc_1_1bound__const__mem__functor0.html" title="bound_const_mem_functor0 encapsulates a const method with 0 arguments and an object instance...">bound_const_mem_functor0</a> object that wraps the passed method. <a href="#a67756fc7a32eb42309a1d55aea2eeb19">More...</a><br /></td></tr>
<tr class="separator:a67756fc7a32eb42309a1d55aea2eeb19"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a44aeae8d1432f66fce9cd385094b78fa"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsigc_1_1bound__const__mem__functor0.html#a44aeae8d1432f66fce9cd385094b78fa">bound_const_mem_functor0</a> (const T_obj&amp; _A_obj, <a class="el" href="classsigc_1_1bound__const__mem__functor0.html#a12ae83ad7820bd716ed8a07484a339d9">function_type</a> _A_func)</td></tr>
<tr class="memdesc:a44aeae8d1432f66fce9cd385094b78fa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructs a <a class="el" href="classsigc_1_1bound__const__mem__functor0.html" title="bound_const_mem_functor0 encapsulates a const method with 0 arguments and an object instance...">bound_const_mem_functor0</a> object that wraps the passed method. <a href="#a44aeae8d1432f66fce9cd385094b78fa">More...</a><br /></td></tr>
<tr class="separator:a44aeae8d1432f66fce9cd385094b78fa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aea061fca09cdc46ee32bc23fcee56f2c"><td class="memItemLeft" align="right" valign="top">T_return&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsigc_1_1bound__const__mem__functor0.html#aea061fca09cdc46ee32bc23fcee56f2c">operator()</a> () const </td></tr>
<tr class="memdesc:aea061fca09cdc46ee32bc23fcee56f2c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Execute the wrapped method operating on the stored instance. <a href="#aea061fca09cdc46ee32bc23fcee56f2c">More...</a><br /></td></tr>
<tr class="separator:aea061fca09cdc46ee32bc23fcee56f2c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classsigc_1_1const__mem__functor0"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classsigc_1_1const__mem__functor0')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classsigc_1_1const__mem__functor0.html">sigc::const_mem_functor0&lt; T_return, T_obj &gt;</a></td></tr>
<tr class="memitem:a49bba4c8045b8b6933b8f5a854ac98d6 inherit pub_methods_classsigc_1_1const__mem__functor0"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsigc_1_1const__mem__functor0.html#a49bba4c8045b8b6933b8f5a854ac98d6">const_mem_functor0</a> ()</td></tr>
<tr class="memdesc:a49bba4c8045b8b6933b8f5a854ac98d6 inherit pub_methods_classsigc_1_1const__mem__functor0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructs an invalid functor. <a href="#a49bba4c8045b8b6933b8f5a854ac98d6">More...</a><br /></td></tr>
<tr class="separator:a49bba4c8045b8b6933b8f5a854ac98d6 inherit pub_methods_classsigc_1_1const__mem__functor0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a27895e58972642453f7b853f25a66f42 inherit pub_methods_classsigc_1_1const__mem__functor0"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsigc_1_1const__mem__functor0.html#a27895e58972642453f7b853f25a66f42">const_mem_functor0</a> (<a class="el" href="classsigc_1_1const__mem__functor0.html#ae6407fcbb13872122e704dadf4a98546">function_type</a> _A_func)</td></tr>
<tr class="memdesc:a27895e58972642453f7b853f25a66f42 inherit pub_methods_classsigc_1_1const__mem__functor0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructs a <a class="el" href="classsigc_1_1const__mem__functor0.html" title="const_mem_functor0 wraps const methods with 0 argument(s). ">const_mem_functor0</a> object that wraps the passed method. <a href="#a27895e58972642453f7b853f25a66f42">More...</a><br /></td></tr>
<tr class="separator:a27895e58972642453f7b853f25a66f42 inherit pub_methods_classsigc_1_1const__mem__functor0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a261a8a2fc4fca25717ee0d50a0a718c2 inherit pub_methods_classsigc_1_1const__mem__functor0"><td class="memItemLeft" align="right" valign="top">T_return&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsigc_1_1const__mem__functor0.html#a261a8a2fc4fca25717ee0d50a0a718c2">operator()</a> (const T_obj* _A_obj) const </td></tr>
<tr class="memdesc:a261a8a2fc4fca25717ee0d50a0a718c2 inherit pub_methods_classsigc_1_1const__mem__functor0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Execute the wrapped method operating on the passed instance. <a href="#a261a8a2fc4fca25717ee0d50a0a718c2">More...</a><br /></td></tr>
<tr class="separator:a261a8a2fc4fca25717ee0d50a0a718c2 inherit pub_methods_classsigc_1_1const__mem__functor0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab282ef8746fa5de89ddbb91907d0e131 inherit pub_methods_classsigc_1_1const__mem__functor0"><td class="memItemLeft" align="right" valign="top">T_return&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsigc_1_1const__mem__functor0.html#ab282ef8746fa5de89ddbb91907d0e131">operator()</a> (const T_obj&amp; _A_obj) const </td></tr>
<tr class="memdesc:ab282ef8746fa5de89ddbb91907d0e131 inherit pub_methods_classsigc_1_1const__mem__functor0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Execute the wrapped method operating on the passed instance. <a href="#ab282ef8746fa5de89ddbb91907d0e131">More...</a><br /></td></tr>
<tr class="separator:ab282ef8746fa5de89ddbb91907d0e131 inherit pub_methods_classsigc_1_1const__mem__functor0"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
Public Attributes</h2></td></tr>
<tr class="memitem:afe36947825350dc17d7fed286f57c32a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classsigc_1_1const__limit__reference.html">const_limit_reference</a>&lt; T_obj &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsigc_1_1bound__const__mem__functor0.html#afe36947825350dc17d7fed286f57c32a">obj_</a></td></tr>
<tr class="separator:afe36947825350dc17d7fed286f57c32a"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
Additional Inherited Members</h2></td></tr>
<tr class="inherit_header pro_attribs_classsigc_1_1const__mem__functor0"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_classsigc_1_1const__mem__functor0')"><img src="closed.png" alt="-"/>&#160;Protected Attributes inherited from <a class="el" href="classsigc_1_1const__mem__functor0.html">sigc::const_mem_functor0&lt; T_return, T_obj &gt;</a></td></tr>
<tr class="memitem:a215359b20450c2afe93496826ac45c1d inherit pro_attribs_classsigc_1_1const__mem__functor0"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classsigc_1_1const__mem__functor0.html#ae6407fcbb13872122e704dadf4a98546">function_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsigc_1_1const__mem__functor0.html#a215359b20450c2afe93496826ac45c1d">func_ptr_</a></td></tr>
<tr class="separator:a215359b20450c2afe93496826ac45c1d inherit pro_attribs_classsigc_1_1const__mem__functor0"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><h3>template&lt;class T_return, class T_obj&gt;<br />
class sigc::bound_const_mem_functor0&lt; T_return, T_obj &gt;</h3>
<p><a class="el" href="classsigc_1_1bound__const__mem__functor0.html" title="bound_const_mem_functor0 encapsulates a const method with 0 arguments and an object instance...">bound_const_mem_functor0</a> encapsulates a const method with 0 arguments and an object instance. </p>
<p>Use the convenience function <a class="el" href="group__mem__fun.html#gadf6b6d22c503b439019f0a2e77352419" title="Creates a functor of type sigc::mem_functor0 which wraps a method. ">mem_fun()</a> to create an instance of <a class="el" href="classsigc_1_1bound__const__mem__functor0.html" title="bound_const_mem_functor0 encapsulates a const method with 0 arguments and an object instance...">bound_const_mem_functor0</a>.</p>
<p>The following template arguments are used:</p><ul>
<li><em>T_return</em> The return type of <a class="el" href="classsigc_1_1bound__const__mem__functor0.html#aea061fca09cdc46ee32bc23fcee56f2c" title="Execute the wrapped method operating on the stored instance. ">operator()()</a>.</li>
<li><em>T_obj</em> The object type. </li>
</ul>
</div><h2 class="groupheader">Member Typedef Documentation</h2>
<a class="anchor" id="a12ae83ad7820bd716ed8a07484a339d9"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template &lt;class T_return , class T_obj &gt; </div>
<table class="memname">
<tr>
<td class="memname">typedef base_type_::function_type <a class="el" href="classsigc_1_1bound__const__mem__functor0.html">sigc::bound_const_mem_functor0</a>&lt; T_return, T_obj &gt;::<a class="el" href="classsigc_1_1bound__const__mem__functor0.html#a12ae83ad7820bd716ed8a07484a339d9">function_type</a></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="a67756fc7a32eb42309a1d55aea2eeb19"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template &lt;class T_return , class T_obj &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classsigc_1_1bound__const__mem__functor0.html">sigc::bound_const_mem_functor0</a>&lt; T_return, T_obj &gt;::<a class="el" href="classsigc_1_1bound__const__mem__functor0.html">bound_const_mem_functor0</a> </td>
<td>(</td>
<td class="paramtype">const T_obj *&#160;</td>
<td class="paramname"><em>_A_obj</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classsigc_1_1bound__const__mem__functor0.html#a12ae83ad7820bd716ed8a07484a339d9">function_type</a>&#160;</td>
<td class="paramname"><em>_A_func</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Constructs a <a class="el" href="classsigc_1_1bound__const__mem__functor0.html" title="bound_const_mem_functor0 encapsulates a const method with 0 arguments and an object instance...">bound_const_mem_functor0</a> object that wraps the passed method. </p>
<dl class="deprecated"><dt><b><a class="el" href="deprecated.html#_deprecated000182">Deprecated:</a></b></dt><dd>Please use the constructor that takes the object by reference instead.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">_A_obj</td><td>Pointer to instance the method will operate on. </td></tr>
<tr><td class="paramname">_A_func</td><td>Pointer to method will be invoked from <a class="el" href="classsigc_1_1bound__const__mem__functor0.html#aea061fca09cdc46ee32bc23fcee56f2c" title="Execute the wrapped method operating on the stored instance. ">operator()()</a>. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="a44aeae8d1432f66fce9cd385094b78fa"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template &lt;class T_return , class T_obj &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classsigc_1_1bound__const__mem__functor0.html">sigc::bound_const_mem_functor0</a>&lt; T_return, T_obj &gt;::<a class="el" href="classsigc_1_1bound__const__mem__functor0.html">bound_const_mem_functor0</a> </td>
<td>(</td>
<td class="paramtype">const T_obj &amp;&#160;</td>
<td class="paramname"><em>_A_obj</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classsigc_1_1bound__const__mem__functor0.html#a12ae83ad7820bd716ed8a07484a339d9">function_type</a>&#160;</td>
<td class="paramname"><em>_A_func</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Constructs a <a class="el" href="classsigc_1_1bound__const__mem__functor0.html" title="bound_const_mem_functor0 encapsulates a const method with 0 arguments and an object instance...">bound_const_mem_functor0</a> object that wraps the passed method. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">_A_obj</td><td>Reference to instance the method will operate on. </td></tr>
<tr><td class="paramname">_A_func</td><td>Pointer to method will be invoked from <a class="el" href="classsigc_1_1bound__const__mem__functor0.html#aea061fca09cdc46ee32bc23fcee56f2c" title="Execute the wrapped method operating on the stored instance. ">operator()()</a>. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a class="anchor" id="aea061fca09cdc46ee32bc23fcee56f2c"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template &lt;class T_return , class T_obj &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">T_return <a class="el" href="classsigc_1_1bound__const__mem__functor0.html">sigc::bound_const_mem_functor0</a>&lt; T_return, T_obj &gt;::operator() </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Execute the wrapped method operating on the stored instance. </p>
<dl class="section return"><dt>Returns</dt><dd>The return value of the method invocation. </dd></dl>
</div>
</div>
<h2 class="groupheader">Member Data Documentation</h2>
<a class="anchor" id="afe36947825350dc17d7fed286f57c32a"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template &lt;class T_return , class T_obj &gt; </div>
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classsigc_1_1const__limit__reference.html">const_limit_reference</a>&lt;T_obj&gt; <a class="el" href="classsigc_1_1bound__const__mem__functor0.html">sigc::bound_const_mem_functor0</a>&lt; T_return, T_obj &gt;::obj_</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Wed Mar 25 2020 10:13:28 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.11
</small></address>
</body>
</html>

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

View File

@ -0,0 +1,80 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.11"/>
<title>libsigc++: Member List</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="doxygen-extra.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">libsigc++
&#160;<span id="projectnumber">2.10.3</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.11 -->
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="annotated.html"><span>Class&#160;List</span></a></li>
<li><a href="classes.html"><span>Class&#160;Index</span></a></li>
<li><a href="inherits.html"><span>Class&#160;Hierarchy</span></a></li>
<li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="namespacesigc.html">sigc</a></li><li class="navelem"><a class="el" href="classsigc_1_1bound__const__mem__functor1.html">bound_const_mem_functor1</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">sigc::bound_const_mem_functor1&lt; T_return, T_obj, T_arg1 &gt; Member List</div> </div>
</div><!--header-->
<div class="contents">
<p>This is the complete list of members for <a class="el" href="classsigc_1_1bound__const__mem__functor1.html">sigc::bound_const_mem_functor1&lt; T_return, T_obj, T_arg1 &gt;</a>, including all inherited members.</p>
<table class="directory">
<tr class="even"><td class="entry"><a class="el" href="classsigc_1_1bound__const__mem__functor1.html#aca80f40c27a3346521ffee81ba79da77">bound_const_mem_functor1</a>(const T_obj* _A_obj, function_type _A_func)</td><td class="entry"><a class="el" href="classsigc_1_1bound__const__mem__functor1.html">sigc::bound_const_mem_functor1&lt; T_return, T_obj, T_arg1 &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="classsigc_1_1bound__const__mem__functor1.html#af62c239e5612df1b7c4c91a52a2e0c62">bound_const_mem_functor1</a>(const T_obj&amp; _A_obj, function_type _A_func)</td><td class="entry"><a class="el" href="classsigc_1_1bound__const__mem__functor1.html">sigc::bound_const_mem_functor1&lt; T_return, T_obj, T_arg1 &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classsigc_1_1const__mem__functor1.html#a2c171737e0c7dc6ae00f73f1580a976d">const_mem_functor1</a>()</td><td class="entry"><a class="el" href="classsigc_1_1const__mem__functor1.html">sigc::const_mem_functor1&lt; T_return, T_obj, T_arg1 &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="classsigc_1_1const__mem__functor1.html#aba30421222bd496f9dec9b733fe70447">const_mem_functor1</a>(function_type _A_func)</td><td class="entry"><a class="el" href="classsigc_1_1const__mem__functor1.html">sigc::const_mem_functor1&lt; T_return, T_obj, T_arg1 &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">explicit</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classsigc_1_1const__mem__functor1.html#af791174008d5b58aa0f4fb42a531cc4a">func_ptr_</a></td><td class="entry"><a class="el" href="classsigc_1_1const__mem__functor1.html">sigc::const_mem_functor1&lt; T_return, T_obj, T_arg1 &gt;</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
<tr><td class="entry"><a class="el" href="classsigc_1_1bound__const__mem__functor1.html#a65f0cde178bdd7a26fe687a8748dac4e">function_type</a> typedef</td><td class="entry"><a class="el" href="classsigc_1_1bound__const__mem__functor1.html">sigc::bound_const_mem_functor1&lt; T_return, T_obj, T_arg1 &gt;</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classsigc_1_1bound__const__mem__functor1.html#ac4141561bf43206a396d082dd0089fb2">obj_</a></td><td class="entry"><a class="el" href="classsigc_1_1bound__const__mem__functor1.html">sigc::bound_const_mem_functor1&lt; T_return, T_obj, T_arg1 &gt;</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classsigc_1_1bound__const__mem__functor1.html#abf57a498c309b0291f1293215dd41504">operator()</a>(type_trait_take_t&lt; T_arg1 &gt; _A_a1) const </td><td class="entry"><a class="el" href="classsigc_1_1bound__const__mem__functor1.html">sigc::bound_const_mem_functor1&lt; T_return, T_obj, T_arg1 &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classsigc_1_1const__mem__functor1.html#a2c6f54619e3ff9c15ddaba1e39771cc1">sigc::const_mem_functor1::operator()</a>(const T_obj* _A_obj, type_trait_take_t&lt; T_arg1 &gt; _A_a1) const </td><td class="entry"><a class="el" href="classsigc_1_1const__mem__functor1.html">sigc::const_mem_functor1&lt; T_return, T_obj, T_arg1 &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="classsigc_1_1const__mem__functor1.html#ac8fce16f2a4d5f7f07abf4331267f8a0">sigc::const_mem_functor1::operator()</a>(const T_obj&amp; _A_obj, type_trait_take_t&lt; T_arg1 &gt; _A_a1) const </td><td class="entry"><a class="el" href="classsigc_1_1const__mem__functor1.html">sigc::const_mem_functor1&lt; T_return, T_obj, T_arg1 &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classsigc_1_1const__mem__functor1.html#a8ba6a6565b8a29812e266aa4e5261a2d">result_type</a> typedef</td><td class="entry"><a class="el" href="classsigc_1_1const__mem__functor1.html">sigc::const_mem_functor1&lt; T_return, T_obj, T_arg1 &gt;</a></td><td class="entry"></td></tr>
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Wed Mar 25 2020 10:13:28 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.11
</small></address>
</body>
</html>

View File

@ -0,0 +1,301 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.11"/>
<title>libsigc++: sigc::bound_const_mem_functor1&lt; T_return, T_obj, T_arg1 &gt; Class Template Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="doxygen-extra.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">libsigc++
&#160;<span id="projectnumber">2.10.3</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.11 -->
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="annotated.html"><span>Class&#160;List</span></a></li>
<li><a href="classes.html"><span>Class&#160;Index</span></a></li>
<li><a href="inherits.html"><span>Class&#160;Hierarchy</span></a></li>
<li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="namespacesigc.html">sigc</a></li><li class="navelem"><a class="el" href="classsigc_1_1bound__const__mem__functor1.html">bound_const_mem_functor1</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-types">Public Types</a> &#124;
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pub-attribs">Public Attributes</a> &#124;
<a href="classsigc_1_1bound__const__mem__functor1-members.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">sigc::bound_const_mem_functor1&lt; T_return, T_obj, T_arg1 &gt; Class Template Reference<div class="ingroups"><a class="el" href="group__sigcfunctors.html">Functors</a> &raquo; <a class="el" href="group__mem__fun.html">mem_fun()</a></div></div> </div>
</div><!--header-->
<div class="contents">
<p><a class="el" href="classsigc_1_1bound__const__mem__functor1.html" title="bound_const_mem_functor1 encapsulates a const method with 1 arguments and an object instance...">bound_const_mem_functor1</a> encapsulates a const method with 1 arguments and an object instance.
<a href="classsigc_1_1bound__const__mem__functor1.html#details">More...</a></p>
<p><code>#include &lt;sigc++/functors/mem_fun.h&gt;</code></p>
<div class="dynheader">
Inheritance diagram for sigc::bound_const_mem_functor1&lt; T_return, T_obj, T_arg1 &gt;:</div>
<div class="dyncontent">
<div class="center"><img src="classsigc_1_1bound__const__mem__functor1__inherit__graph.png" border="0" usemap="#sigc_1_1bound__const__mem__functor1_3_01T__return_00_01T__obj_00_01T__arg1_01_4_inherit__map" alt="Inheritance graph"/></div>
<map name="sigc_1_1bound__const__mem__functor1_3_01T__return_00_01T__obj_00_01T__arg1_01_4_inherit__map" id="sigc_1_1bound__const__mem__functor1_3_01T__return_00_01T__obj_00_01T__arg1_01_4_inherit__map">
<area shape="rect" id="node2" href="classsigc_1_1const__mem__functor1.html" title="const_mem_functor1 wraps const methods with 1 argument(s). " alt="" coords="5,80,207,121"/>
<area shape="rect" id="node3" href="structsigc_1_1functor__base.html" title="A hint to the compiler. " alt="" coords="36,5,176,32"/>
</map>
<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
Public Types</h2></td></tr>
<tr class="memitem:a65f0cde178bdd7a26fe687a8748dac4e"><td class="memItemLeft" align="right" valign="top">typedef base_type_::function_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsigc_1_1bound__const__mem__functor1.html#a65f0cde178bdd7a26fe687a8748dac4e">function_type</a></td></tr>
<tr class="separator:a65f0cde178bdd7a26fe687a8748dac4e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_types_classsigc_1_1const__mem__functor1"><td colspan="2" onclick="javascript:toggleInherit('pub_types_classsigc_1_1const__mem__functor1')"><img src="closed.png" alt="-"/>&#160;Public Types inherited from <a class="el" href="classsigc_1_1const__mem__functor1.html">sigc::const_mem_functor1&lt; T_return, T_obj, T_arg1 &gt;</a></td></tr>
<tr class="memitem:a563ba65003a6373a2270f8460f4149e6 inherit pub_types_classsigc_1_1const__mem__functor1"><td class="memItemLeft" align="right" valign="top">typedef T_return(T_obj::*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsigc_1_1const__mem__functor1.html#a563ba65003a6373a2270f8460f4149e6">function_type</a>) (T_arg1) const </td></tr>
<tr class="separator:a563ba65003a6373a2270f8460f4149e6 inherit pub_types_classsigc_1_1const__mem__functor1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8ba6a6565b8a29812e266aa4e5261a2d inherit pub_types_classsigc_1_1const__mem__functor1"><td class="memItemLeft" align="right" valign="top">typedef T_return&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsigc_1_1const__mem__functor1.html#a8ba6a6565b8a29812e266aa4e5261a2d">result_type</a></td></tr>
<tr class="separator:a8ba6a6565b8a29812e266aa4e5261a2d inherit pub_types_classsigc_1_1const__mem__functor1"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:aca80f40c27a3346521ffee81ba79da77"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsigc_1_1bound__const__mem__functor1.html#aca80f40c27a3346521ffee81ba79da77">bound_const_mem_functor1</a> (const T_obj* _A_obj, <a class="el" href="classsigc_1_1bound__const__mem__functor1.html#a65f0cde178bdd7a26fe687a8748dac4e">function_type</a> _A_func)</td></tr>
<tr class="memdesc:aca80f40c27a3346521ffee81ba79da77"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructs a <a class="el" href="classsigc_1_1bound__const__mem__functor1.html" title="bound_const_mem_functor1 encapsulates a const method with 1 arguments and an object instance...">bound_const_mem_functor1</a> object that wraps the passed method. <a href="#aca80f40c27a3346521ffee81ba79da77">More...</a><br /></td></tr>
<tr class="separator:aca80f40c27a3346521ffee81ba79da77"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af62c239e5612df1b7c4c91a52a2e0c62"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsigc_1_1bound__const__mem__functor1.html#af62c239e5612df1b7c4c91a52a2e0c62">bound_const_mem_functor1</a> (const T_obj&amp; _A_obj, <a class="el" href="classsigc_1_1bound__const__mem__functor1.html#a65f0cde178bdd7a26fe687a8748dac4e">function_type</a> _A_func)</td></tr>
<tr class="memdesc:af62c239e5612df1b7c4c91a52a2e0c62"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructs a <a class="el" href="classsigc_1_1bound__const__mem__functor1.html" title="bound_const_mem_functor1 encapsulates a const method with 1 arguments and an object instance...">bound_const_mem_functor1</a> object that wraps the passed method. <a href="#af62c239e5612df1b7c4c91a52a2e0c62">More...</a><br /></td></tr>
<tr class="separator:af62c239e5612df1b7c4c91a52a2e0c62"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abf57a498c309b0291f1293215dd41504"><td class="memItemLeft" align="right" valign="top">T_return&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsigc_1_1bound__const__mem__functor1.html#abf57a498c309b0291f1293215dd41504">operator()</a> (<a class="el" href="namespacesigc.html#aa0d56c61023af35c47b79db80b32fd2e">type_trait_take_t</a>&lt; T_arg1 &gt; _A_a1) const </td></tr>
<tr class="memdesc:abf57a498c309b0291f1293215dd41504"><td class="mdescLeft">&#160;</td><td class="mdescRight">Execute the wrapped method operating on the stored instance. <a href="#abf57a498c309b0291f1293215dd41504">More...</a><br /></td></tr>
<tr class="separator:abf57a498c309b0291f1293215dd41504"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classsigc_1_1const__mem__functor1"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classsigc_1_1const__mem__functor1')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classsigc_1_1const__mem__functor1.html">sigc::const_mem_functor1&lt; T_return, T_obj, T_arg1 &gt;</a></td></tr>
<tr class="memitem:a2c171737e0c7dc6ae00f73f1580a976d inherit pub_methods_classsigc_1_1const__mem__functor1"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsigc_1_1const__mem__functor1.html#a2c171737e0c7dc6ae00f73f1580a976d">const_mem_functor1</a> ()</td></tr>
<tr class="memdesc:a2c171737e0c7dc6ae00f73f1580a976d inherit pub_methods_classsigc_1_1const__mem__functor1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructs an invalid functor. <a href="#a2c171737e0c7dc6ae00f73f1580a976d">More...</a><br /></td></tr>
<tr class="separator:a2c171737e0c7dc6ae00f73f1580a976d inherit pub_methods_classsigc_1_1const__mem__functor1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aba30421222bd496f9dec9b733fe70447 inherit pub_methods_classsigc_1_1const__mem__functor1"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsigc_1_1const__mem__functor1.html#aba30421222bd496f9dec9b733fe70447">const_mem_functor1</a> (<a class="el" href="classsigc_1_1const__mem__functor1.html#a563ba65003a6373a2270f8460f4149e6">function_type</a> _A_func)</td></tr>
<tr class="memdesc:aba30421222bd496f9dec9b733fe70447 inherit pub_methods_classsigc_1_1const__mem__functor1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructs a <a class="el" href="classsigc_1_1const__mem__functor1.html" title="const_mem_functor1 wraps const methods with 1 argument(s). ">const_mem_functor1</a> object that wraps the passed method. <a href="#aba30421222bd496f9dec9b733fe70447">More...</a><br /></td></tr>
<tr class="separator:aba30421222bd496f9dec9b733fe70447 inherit pub_methods_classsigc_1_1const__mem__functor1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2c6f54619e3ff9c15ddaba1e39771cc1 inherit pub_methods_classsigc_1_1const__mem__functor1"><td class="memItemLeft" align="right" valign="top">T_return&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsigc_1_1const__mem__functor1.html#a2c6f54619e3ff9c15ddaba1e39771cc1">operator()</a> (const T_obj* _A_obj, <a class="el" href="namespacesigc.html#aa0d56c61023af35c47b79db80b32fd2e">type_trait_take_t</a>&lt; T_arg1 &gt; _A_a1) const </td></tr>
<tr class="memdesc:a2c6f54619e3ff9c15ddaba1e39771cc1 inherit pub_methods_classsigc_1_1const__mem__functor1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Execute the wrapped method operating on the passed instance. <a href="#a2c6f54619e3ff9c15ddaba1e39771cc1">More...</a><br /></td></tr>
<tr class="separator:a2c6f54619e3ff9c15ddaba1e39771cc1 inherit pub_methods_classsigc_1_1const__mem__functor1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac8fce16f2a4d5f7f07abf4331267f8a0 inherit pub_methods_classsigc_1_1const__mem__functor1"><td class="memItemLeft" align="right" valign="top">T_return&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsigc_1_1const__mem__functor1.html#ac8fce16f2a4d5f7f07abf4331267f8a0">operator()</a> (const T_obj&amp; _A_obj, <a class="el" href="namespacesigc.html#aa0d56c61023af35c47b79db80b32fd2e">type_trait_take_t</a>&lt; T_arg1 &gt; _A_a1) const </td></tr>
<tr class="memdesc:ac8fce16f2a4d5f7f07abf4331267f8a0 inherit pub_methods_classsigc_1_1const__mem__functor1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Execute the wrapped method operating on the passed instance. <a href="#ac8fce16f2a4d5f7f07abf4331267f8a0">More...</a><br /></td></tr>
<tr class="separator:ac8fce16f2a4d5f7f07abf4331267f8a0 inherit pub_methods_classsigc_1_1const__mem__functor1"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
Public Attributes</h2></td></tr>
<tr class="memitem:ac4141561bf43206a396d082dd0089fb2"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classsigc_1_1const__limit__reference.html">const_limit_reference</a>&lt; T_obj &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsigc_1_1bound__const__mem__functor1.html#ac4141561bf43206a396d082dd0089fb2">obj_</a></td></tr>
<tr class="separator:ac4141561bf43206a396d082dd0089fb2"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
Additional Inherited Members</h2></td></tr>
<tr class="inherit_header pro_attribs_classsigc_1_1const__mem__functor1"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_classsigc_1_1const__mem__functor1')"><img src="closed.png" alt="-"/>&#160;Protected Attributes inherited from <a class="el" href="classsigc_1_1const__mem__functor1.html">sigc::const_mem_functor1&lt; T_return, T_obj, T_arg1 &gt;</a></td></tr>
<tr class="memitem:af791174008d5b58aa0f4fb42a531cc4a inherit pro_attribs_classsigc_1_1const__mem__functor1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classsigc_1_1const__mem__functor1.html#a563ba65003a6373a2270f8460f4149e6">function_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsigc_1_1const__mem__functor1.html#af791174008d5b58aa0f4fb42a531cc4a">func_ptr_</a></td></tr>
<tr class="separator:af791174008d5b58aa0f4fb42a531cc4a inherit pro_attribs_classsigc_1_1const__mem__functor1"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><h3>template&lt;class T_return, class T_obj, class T_arg1&gt;<br />
class sigc::bound_const_mem_functor1&lt; T_return, T_obj, T_arg1 &gt;</h3>
<p><a class="el" href="classsigc_1_1bound__const__mem__functor1.html" title="bound_const_mem_functor1 encapsulates a const method with 1 arguments and an object instance...">bound_const_mem_functor1</a> encapsulates a const method with 1 arguments and an object instance. </p>
<p>Use the convenience function <a class="el" href="group__mem__fun.html#gadf6b6d22c503b439019f0a2e77352419" title="Creates a functor of type sigc::mem_functor0 which wraps a method. ">mem_fun()</a> to create an instance of <a class="el" href="classsigc_1_1bound__const__mem__functor1.html" title="bound_const_mem_functor1 encapsulates a const method with 1 arguments and an object instance...">bound_const_mem_functor1</a>.</p>
<p>The following template arguments are used:</p><ul>
<li><em>T_arg1</em> Argument type used in the definition of <a class="el" href="classsigc_1_1bound__const__mem__functor1.html#abf57a498c309b0291f1293215dd41504" title="Execute the wrapped method operating on the stored instance. ">operator()()</a>.</li>
<li><em>T_return</em> The return type of <a class="el" href="classsigc_1_1bound__const__mem__functor1.html#abf57a498c309b0291f1293215dd41504" title="Execute the wrapped method operating on the stored instance. ">operator()()</a>.</li>
<li><em>T_obj</em> The object type. </li>
</ul>
</div><h2 class="groupheader">Member Typedef Documentation</h2>
<a class="anchor" id="a65f0cde178bdd7a26fe687a8748dac4e"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template &lt;class T_return , class T_obj , class T_arg1 &gt; </div>
<table class="memname">
<tr>
<td class="memname">typedef base_type_::function_type <a class="el" href="classsigc_1_1bound__const__mem__functor1.html">sigc::bound_const_mem_functor1</a>&lt; T_return, T_obj, T_arg1 &gt;::<a class="el" href="classsigc_1_1bound__const__mem__functor1.html#a65f0cde178bdd7a26fe687a8748dac4e">function_type</a></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="aca80f40c27a3346521ffee81ba79da77"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template &lt;class T_return , class T_obj , class T_arg1 &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classsigc_1_1bound__const__mem__functor1.html">sigc::bound_const_mem_functor1</a>&lt; T_return, T_obj, T_arg1 &gt;::<a class="el" href="classsigc_1_1bound__const__mem__functor1.html">bound_const_mem_functor1</a> </td>
<td>(</td>
<td class="paramtype">const T_obj *&#160;</td>
<td class="paramname"><em>_A_obj</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classsigc_1_1bound__const__mem__functor1.html#a65f0cde178bdd7a26fe687a8748dac4e">function_type</a>&#160;</td>
<td class="paramname"><em>_A_func</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Constructs a <a class="el" href="classsigc_1_1bound__const__mem__functor1.html" title="bound_const_mem_functor1 encapsulates a const method with 1 arguments and an object instance...">bound_const_mem_functor1</a> object that wraps the passed method. </p>
<dl class="deprecated"><dt><b><a class="el" href="deprecated.html#_deprecated000183">Deprecated:</a></b></dt><dd>Please use the constructor that takes the object by reference instead.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">_A_obj</td><td>Pointer to instance the method will operate on. </td></tr>
<tr><td class="paramname">_A_func</td><td>Pointer to method will be invoked from <a class="el" href="classsigc_1_1bound__const__mem__functor1.html#abf57a498c309b0291f1293215dd41504" title="Execute the wrapped method operating on the stored instance. ">operator()()</a>. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="af62c239e5612df1b7c4c91a52a2e0c62"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template &lt;class T_return , class T_obj , class T_arg1 &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classsigc_1_1bound__const__mem__functor1.html">sigc::bound_const_mem_functor1</a>&lt; T_return, T_obj, T_arg1 &gt;::<a class="el" href="classsigc_1_1bound__const__mem__functor1.html">bound_const_mem_functor1</a> </td>
<td>(</td>
<td class="paramtype">const T_obj &amp;&#160;</td>
<td class="paramname"><em>_A_obj</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classsigc_1_1bound__const__mem__functor1.html#a65f0cde178bdd7a26fe687a8748dac4e">function_type</a>&#160;</td>
<td class="paramname"><em>_A_func</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Constructs a <a class="el" href="classsigc_1_1bound__const__mem__functor1.html" title="bound_const_mem_functor1 encapsulates a const method with 1 arguments and an object instance...">bound_const_mem_functor1</a> object that wraps the passed method. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">_A_obj</td><td>Reference to instance the method will operate on. </td></tr>
<tr><td class="paramname">_A_func</td><td>Pointer to method will be invoked from <a class="el" href="classsigc_1_1bound__const__mem__functor1.html#abf57a498c309b0291f1293215dd41504" title="Execute the wrapped method operating on the stored instance. ">operator()()</a>. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a class="anchor" id="abf57a498c309b0291f1293215dd41504"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template &lt;class T_return , class T_obj , class T_arg1 &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">T_return <a class="el" href="classsigc_1_1bound__const__mem__functor1.html">sigc::bound_const_mem_functor1</a>&lt; T_return, T_obj, T_arg1 &gt;::operator() </td>
<td>(</td>
<td class="paramtype"><a class="el" href="namespacesigc.html#aa0d56c61023af35c47b79db80b32fd2e">type_trait_take_t</a>&lt; T_arg1 &gt;&#160;</td>
<td class="paramname"><em>_A_a1</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Execute the wrapped method operating on the stored instance. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">_A_a1</td><td>Argument to be passed on to the method. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The return value of the method invocation. </dd></dl>
</div>
</div>
<h2 class="groupheader">Member Data Documentation</h2>
<a class="anchor" id="ac4141561bf43206a396d082dd0089fb2"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template &lt;class T_return , class T_obj , class T_arg1 &gt; </div>
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classsigc_1_1const__limit__reference.html">const_limit_reference</a>&lt;T_obj&gt; <a class="el" href="classsigc_1_1bound__const__mem__functor1.html">sigc::bound_const_mem_functor1</a>&lt; T_return, T_obj, T_arg1 &gt;::obj_</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Wed Mar 25 2020 10:13:28 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.11
</small></address>
</body>
</html>

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

View File

@ -0,0 +1,80 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.11"/>
<title>libsigc++: Member List</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="doxygen-extra.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">libsigc++
&#160;<span id="projectnumber">2.10.3</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.11 -->
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="annotated.html"><span>Class&#160;List</span></a></li>
<li><a href="classes.html"><span>Class&#160;Index</span></a></li>
<li><a href="inherits.html"><span>Class&#160;Hierarchy</span></a></li>
<li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="namespacesigc.html">sigc</a></li><li class="navelem"><a class="el" href="classsigc_1_1bound__const__mem__functor2.html">bound_const_mem_functor2</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">sigc::bound_const_mem_functor2&lt; T_return, T_obj, T_arg1, T_arg2 &gt; Member List</div> </div>
</div><!--header-->
<div class="contents">
<p>This is the complete list of members for <a class="el" href="classsigc_1_1bound__const__mem__functor2.html">sigc::bound_const_mem_functor2&lt; T_return, T_obj, T_arg1, T_arg2 &gt;</a>, including all inherited members.</p>
<table class="directory">
<tr class="even"><td class="entry"><a class="el" href="classsigc_1_1bound__const__mem__functor2.html#a6732b8f5b308ff8ff1adea9e3734f4bf">bound_const_mem_functor2</a>(const T_obj* _A_obj, function_type _A_func)</td><td class="entry"><a class="el" href="classsigc_1_1bound__const__mem__functor2.html">sigc::bound_const_mem_functor2&lt; T_return, T_obj, T_arg1, T_arg2 &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="classsigc_1_1bound__const__mem__functor2.html#ab5213783f248b53b357ea6385b7bbe7a">bound_const_mem_functor2</a>(const T_obj&amp; _A_obj, function_type _A_func)</td><td class="entry"><a class="el" href="classsigc_1_1bound__const__mem__functor2.html">sigc::bound_const_mem_functor2&lt; T_return, T_obj, T_arg1, T_arg2 &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classsigc_1_1const__mem__functor2.html#a6265bdc51f35d8d5274bfeb8cdafc1dc">const_mem_functor2</a>()</td><td class="entry"><a class="el" href="classsigc_1_1const__mem__functor2.html">sigc::const_mem_functor2&lt; T_return, T_obj, T_arg1, T_arg2 &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="classsigc_1_1const__mem__functor2.html#ab281b110d1fbba86e2d58f9607d0f0c3">const_mem_functor2</a>(function_type _A_func)</td><td class="entry"><a class="el" href="classsigc_1_1const__mem__functor2.html">sigc::const_mem_functor2&lt; T_return, T_obj, T_arg1, T_arg2 &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">explicit</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classsigc_1_1const__mem__functor2.html#a4445ff55323e94d525c1b2574ee32ddc">func_ptr_</a></td><td class="entry"><a class="el" href="classsigc_1_1const__mem__functor2.html">sigc::const_mem_functor2&lt; T_return, T_obj, T_arg1, T_arg2 &gt;</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
<tr><td class="entry"><a class="el" href="classsigc_1_1bound__const__mem__functor2.html#abe2916ee9b6867554b48370000eb6886">function_type</a> typedef</td><td class="entry"><a class="el" href="classsigc_1_1bound__const__mem__functor2.html">sigc::bound_const_mem_functor2&lt; T_return, T_obj, T_arg1, T_arg2 &gt;</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classsigc_1_1bound__const__mem__functor2.html#a3994b65f2ec0b45f5b502f07bf7baca1">obj_</a></td><td class="entry"><a class="el" href="classsigc_1_1bound__const__mem__functor2.html">sigc::bound_const_mem_functor2&lt; T_return, T_obj, T_arg1, T_arg2 &gt;</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classsigc_1_1bound__const__mem__functor2.html#ab6f79018c4e2f09fc153e211ec0ddff2">operator()</a>(type_trait_take_t&lt; T_arg1 &gt; _A_a1, type_trait_take_t&lt; T_arg2 &gt; _A_a2) const </td><td class="entry"><a class="el" href="classsigc_1_1bound__const__mem__functor2.html">sigc::bound_const_mem_functor2&lt; T_return, T_obj, T_arg1, T_arg2 &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classsigc_1_1const__mem__functor2.html#acf0ce3cce7eb053b8b4b21945a68bc80">sigc::const_mem_functor2::operator()</a>(const T_obj* _A_obj, type_trait_take_t&lt; T_arg1 &gt; _A_a1, type_trait_take_t&lt; T_arg2 &gt; _A_a2) const </td><td class="entry"><a class="el" href="classsigc_1_1const__mem__functor2.html">sigc::const_mem_functor2&lt; T_return, T_obj, T_arg1, T_arg2 &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="classsigc_1_1const__mem__functor2.html#a2c0d7b7b2b32a221feb6edaebd3aee3d">sigc::const_mem_functor2::operator()</a>(const T_obj&amp; _A_obj, type_trait_take_t&lt; T_arg1 &gt; _A_a1, type_trait_take_t&lt; T_arg2 &gt; _A_a2) const </td><td class="entry"><a class="el" href="classsigc_1_1const__mem__functor2.html">sigc::const_mem_functor2&lt; T_return, T_obj, T_arg1, T_arg2 &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classsigc_1_1const__mem__functor2.html#a5eaa5f2ab10ad755c89ff5b09c1e281d">result_type</a> typedef</td><td class="entry"><a class="el" href="classsigc_1_1const__mem__functor2.html">sigc::const_mem_functor2&lt; T_return, T_obj, T_arg1, T_arg2 &gt;</a></td><td class="entry"></td></tr>
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Wed Mar 25 2020 10:13:28 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.11
</small></address>
</body>
</html>

View File

@ -0,0 +1,313 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.11"/>
<title>libsigc++: sigc::bound_const_mem_functor2&lt; T_return, T_obj, T_arg1, T_arg2 &gt; Class Template Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="doxygen-extra.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">libsigc++
&#160;<span id="projectnumber">2.10.3</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.11 -->
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="annotated.html"><span>Class&#160;List</span></a></li>
<li><a href="classes.html"><span>Class&#160;Index</span></a></li>
<li><a href="inherits.html"><span>Class&#160;Hierarchy</span></a></li>
<li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="namespacesigc.html">sigc</a></li><li class="navelem"><a class="el" href="classsigc_1_1bound__const__mem__functor2.html">bound_const_mem_functor2</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-types">Public Types</a> &#124;
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pub-attribs">Public Attributes</a> &#124;
<a href="classsigc_1_1bound__const__mem__functor2-members.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">sigc::bound_const_mem_functor2&lt; T_return, T_obj, T_arg1, T_arg2 &gt; Class Template Reference<div class="ingroups"><a class="el" href="group__sigcfunctors.html">Functors</a> &raquo; <a class="el" href="group__mem__fun.html">mem_fun()</a></div></div> </div>
</div><!--header-->
<div class="contents">
<p><a class="el" href="classsigc_1_1bound__const__mem__functor2.html" title="bound_const_mem_functor2 encapsulates a const method with 2 arguments and an object instance...">bound_const_mem_functor2</a> encapsulates a const method with 2 arguments and an object instance.
<a href="classsigc_1_1bound__const__mem__functor2.html#details">More...</a></p>
<p><code>#include &lt;sigc++/functors/mem_fun.h&gt;</code></p>
<div class="dynheader">
Inheritance diagram for sigc::bound_const_mem_functor2&lt; T_return, T_obj, T_arg1, T_arg2 &gt;:</div>
<div class="dyncontent">
<div class="center"><img src="classsigc_1_1bound__const__mem__functor2__inherit__graph.png" border="0" usemap="#sigc_1_1bound__const__mem__functor2_3_01T__return_00_01T__obj_00_01T__arg1_00_01T__arg2_01_4_inherit__map" alt="Inheritance graph"/></div>
<map name="sigc_1_1bound__const__mem__functor2_3_01T__return_00_01T__obj_00_01T__arg1_00_01T__arg2_01_4_inherit__map" id="sigc_1_1bound__const__mem__functor2_3_01T__return_00_01T__obj_00_01T__arg1_00_01T__arg2_01_4_inherit__map">
<area shape="rect" id="node2" href="classsigc_1_1const__mem__functor2.html" title="const_mem_functor2 wraps const methods with 2 argument(s). " alt="" coords="5,80,199,136"/>
<area shape="rect" id="node3" href="structsigc_1_1functor__base.html" title="A hint to the compiler. " alt="" coords="32,5,172,32"/>
</map>
<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
Public Types</h2></td></tr>
<tr class="memitem:abe2916ee9b6867554b48370000eb6886"><td class="memItemLeft" align="right" valign="top">typedef base_type_::function_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsigc_1_1bound__const__mem__functor2.html#abe2916ee9b6867554b48370000eb6886">function_type</a></td></tr>
<tr class="separator:abe2916ee9b6867554b48370000eb6886"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_types_classsigc_1_1const__mem__functor2"><td colspan="2" onclick="javascript:toggleInherit('pub_types_classsigc_1_1const__mem__functor2')"><img src="closed.png" alt="-"/>&#160;Public Types inherited from <a class="el" href="classsigc_1_1const__mem__functor2.html">sigc::const_mem_functor2&lt; T_return, T_obj, T_arg1, T_arg2 &gt;</a></td></tr>
<tr class="memitem:a555af83ca054b90b23ad8c70d62a64e7 inherit pub_types_classsigc_1_1const__mem__functor2"><td class="memItemLeft" align="right" valign="top">typedef T_return(T_obj::*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsigc_1_1const__mem__functor2.html#a555af83ca054b90b23ad8c70d62a64e7">function_type</a>) (T_arg1, T_arg2) const </td></tr>
<tr class="separator:a555af83ca054b90b23ad8c70d62a64e7 inherit pub_types_classsigc_1_1const__mem__functor2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5eaa5f2ab10ad755c89ff5b09c1e281d inherit pub_types_classsigc_1_1const__mem__functor2"><td class="memItemLeft" align="right" valign="top">typedef T_return&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsigc_1_1const__mem__functor2.html#a5eaa5f2ab10ad755c89ff5b09c1e281d">result_type</a></td></tr>
<tr class="separator:a5eaa5f2ab10ad755c89ff5b09c1e281d inherit pub_types_classsigc_1_1const__mem__functor2"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a6732b8f5b308ff8ff1adea9e3734f4bf"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsigc_1_1bound__const__mem__functor2.html#a6732b8f5b308ff8ff1adea9e3734f4bf">bound_const_mem_functor2</a> (const T_obj* _A_obj, <a class="el" href="classsigc_1_1bound__const__mem__functor2.html#abe2916ee9b6867554b48370000eb6886">function_type</a> _A_func)</td></tr>
<tr class="memdesc:a6732b8f5b308ff8ff1adea9e3734f4bf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructs a <a class="el" href="classsigc_1_1bound__const__mem__functor2.html" title="bound_const_mem_functor2 encapsulates a const method with 2 arguments and an object instance...">bound_const_mem_functor2</a> object that wraps the passed method. <a href="#a6732b8f5b308ff8ff1adea9e3734f4bf">More...</a><br /></td></tr>
<tr class="separator:a6732b8f5b308ff8ff1adea9e3734f4bf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab5213783f248b53b357ea6385b7bbe7a"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsigc_1_1bound__const__mem__functor2.html#ab5213783f248b53b357ea6385b7bbe7a">bound_const_mem_functor2</a> (const T_obj&amp; _A_obj, <a class="el" href="classsigc_1_1bound__const__mem__functor2.html#abe2916ee9b6867554b48370000eb6886">function_type</a> _A_func)</td></tr>
<tr class="memdesc:ab5213783f248b53b357ea6385b7bbe7a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructs a <a class="el" href="classsigc_1_1bound__const__mem__functor2.html" title="bound_const_mem_functor2 encapsulates a const method with 2 arguments and an object instance...">bound_const_mem_functor2</a> object that wraps the passed method. <a href="#ab5213783f248b53b357ea6385b7bbe7a">More...</a><br /></td></tr>
<tr class="separator:ab5213783f248b53b357ea6385b7bbe7a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab6f79018c4e2f09fc153e211ec0ddff2"><td class="memItemLeft" align="right" valign="top">T_return&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsigc_1_1bound__const__mem__functor2.html#ab6f79018c4e2f09fc153e211ec0ddff2">operator()</a> (<a class="el" href="namespacesigc.html#aa0d56c61023af35c47b79db80b32fd2e">type_trait_take_t</a>&lt; T_arg1 &gt; _A_a1, <a class="el" href="namespacesigc.html#aa0d56c61023af35c47b79db80b32fd2e">type_trait_take_t</a>&lt; T_arg2 &gt; _A_a2) const </td></tr>
<tr class="memdesc:ab6f79018c4e2f09fc153e211ec0ddff2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Execute the wrapped method operating on the stored instance. <a href="#ab6f79018c4e2f09fc153e211ec0ddff2">More...</a><br /></td></tr>
<tr class="separator:ab6f79018c4e2f09fc153e211ec0ddff2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classsigc_1_1const__mem__functor2"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classsigc_1_1const__mem__functor2')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classsigc_1_1const__mem__functor2.html">sigc::const_mem_functor2&lt; T_return, T_obj, T_arg1, T_arg2 &gt;</a></td></tr>
<tr class="memitem:a6265bdc51f35d8d5274bfeb8cdafc1dc inherit pub_methods_classsigc_1_1const__mem__functor2"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsigc_1_1const__mem__functor2.html#a6265bdc51f35d8d5274bfeb8cdafc1dc">const_mem_functor2</a> ()</td></tr>
<tr class="memdesc:a6265bdc51f35d8d5274bfeb8cdafc1dc inherit pub_methods_classsigc_1_1const__mem__functor2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructs an invalid functor. <a href="#a6265bdc51f35d8d5274bfeb8cdafc1dc">More...</a><br /></td></tr>
<tr class="separator:a6265bdc51f35d8d5274bfeb8cdafc1dc inherit pub_methods_classsigc_1_1const__mem__functor2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab281b110d1fbba86e2d58f9607d0f0c3 inherit pub_methods_classsigc_1_1const__mem__functor2"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsigc_1_1const__mem__functor2.html#ab281b110d1fbba86e2d58f9607d0f0c3">const_mem_functor2</a> (<a class="el" href="classsigc_1_1const__mem__functor2.html#a555af83ca054b90b23ad8c70d62a64e7">function_type</a> _A_func)</td></tr>
<tr class="memdesc:ab281b110d1fbba86e2d58f9607d0f0c3 inherit pub_methods_classsigc_1_1const__mem__functor2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructs a <a class="el" href="classsigc_1_1const__mem__functor2.html" title="const_mem_functor2 wraps const methods with 2 argument(s). ">const_mem_functor2</a> object that wraps the passed method. <a href="#ab281b110d1fbba86e2d58f9607d0f0c3">More...</a><br /></td></tr>
<tr class="separator:ab281b110d1fbba86e2d58f9607d0f0c3 inherit pub_methods_classsigc_1_1const__mem__functor2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acf0ce3cce7eb053b8b4b21945a68bc80 inherit pub_methods_classsigc_1_1const__mem__functor2"><td class="memItemLeft" align="right" valign="top">T_return&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsigc_1_1const__mem__functor2.html#acf0ce3cce7eb053b8b4b21945a68bc80">operator()</a> (const T_obj* _A_obj, <a class="el" href="namespacesigc.html#aa0d56c61023af35c47b79db80b32fd2e">type_trait_take_t</a>&lt; T_arg1 &gt; _A_a1, <a class="el" href="namespacesigc.html#aa0d56c61023af35c47b79db80b32fd2e">type_trait_take_t</a>&lt; T_arg2 &gt; _A_a2) const </td></tr>
<tr class="memdesc:acf0ce3cce7eb053b8b4b21945a68bc80 inherit pub_methods_classsigc_1_1const__mem__functor2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Execute the wrapped method operating on the passed instance. <a href="#acf0ce3cce7eb053b8b4b21945a68bc80">More...</a><br /></td></tr>
<tr class="separator:acf0ce3cce7eb053b8b4b21945a68bc80 inherit pub_methods_classsigc_1_1const__mem__functor2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2c0d7b7b2b32a221feb6edaebd3aee3d inherit pub_methods_classsigc_1_1const__mem__functor2"><td class="memItemLeft" align="right" valign="top">T_return&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsigc_1_1const__mem__functor2.html#a2c0d7b7b2b32a221feb6edaebd3aee3d">operator()</a> (const T_obj&amp; _A_obj, <a class="el" href="namespacesigc.html#aa0d56c61023af35c47b79db80b32fd2e">type_trait_take_t</a>&lt; T_arg1 &gt; _A_a1, <a class="el" href="namespacesigc.html#aa0d56c61023af35c47b79db80b32fd2e">type_trait_take_t</a>&lt; T_arg2 &gt; _A_a2) const </td></tr>
<tr class="memdesc:a2c0d7b7b2b32a221feb6edaebd3aee3d inherit pub_methods_classsigc_1_1const__mem__functor2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Execute the wrapped method operating on the passed instance. <a href="#a2c0d7b7b2b32a221feb6edaebd3aee3d">More...</a><br /></td></tr>
<tr class="separator:a2c0d7b7b2b32a221feb6edaebd3aee3d inherit pub_methods_classsigc_1_1const__mem__functor2"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
Public Attributes</h2></td></tr>
<tr class="memitem:a3994b65f2ec0b45f5b502f07bf7baca1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classsigc_1_1const__limit__reference.html">const_limit_reference</a>&lt; T_obj &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsigc_1_1bound__const__mem__functor2.html#a3994b65f2ec0b45f5b502f07bf7baca1">obj_</a></td></tr>
<tr class="separator:a3994b65f2ec0b45f5b502f07bf7baca1"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
Additional Inherited Members</h2></td></tr>
<tr class="inherit_header pro_attribs_classsigc_1_1const__mem__functor2"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_classsigc_1_1const__mem__functor2')"><img src="closed.png" alt="-"/>&#160;Protected Attributes inherited from <a class="el" href="classsigc_1_1const__mem__functor2.html">sigc::const_mem_functor2&lt; T_return, T_obj, T_arg1, T_arg2 &gt;</a></td></tr>
<tr class="memitem:a4445ff55323e94d525c1b2574ee32ddc inherit pro_attribs_classsigc_1_1const__mem__functor2"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classsigc_1_1const__mem__functor2.html#a555af83ca054b90b23ad8c70d62a64e7">function_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsigc_1_1const__mem__functor2.html#a4445ff55323e94d525c1b2574ee32ddc">func_ptr_</a></td></tr>
<tr class="separator:a4445ff55323e94d525c1b2574ee32ddc inherit pro_attribs_classsigc_1_1const__mem__functor2"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><h3>template&lt;class T_return, class T_obj, class T_arg1, class T_arg2&gt;<br />
class sigc::bound_const_mem_functor2&lt; T_return, T_obj, T_arg1, T_arg2 &gt;</h3>
<p><a class="el" href="classsigc_1_1bound__const__mem__functor2.html" title="bound_const_mem_functor2 encapsulates a const method with 2 arguments and an object instance...">bound_const_mem_functor2</a> encapsulates a const method with 2 arguments and an object instance. </p>
<p>Use the convenience function <a class="el" href="group__mem__fun.html#gadf6b6d22c503b439019f0a2e77352419" title="Creates a functor of type sigc::mem_functor0 which wraps a method. ">mem_fun()</a> to create an instance of <a class="el" href="classsigc_1_1bound__const__mem__functor2.html" title="bound_const_mem_functor2 encapsulates a const method with 2 arguments and an object instance...">bound_const_mem_functor2</a>.</p>
<p>The following template arguments are used:</p><ul>
<li><em>T_arg1</em> Argument type used in the definition of <a class="el" href="classsigc_1_1bound__const__mem__functor2.html#ab6f79018c4e2f09fc153e211ec0ddff2" title="Execute the wrapped method operating on the stored instance. ">operator()()</a>.</li>
<li><em>T_arg2</em> Argument type used in the definition of <a class="el" href="classsigc_1_1bound__const__mem__functor2.html#ab6f79018c4e2f09fc153e211ec0ddff2" title="Execute the wrapped method operating on the stored instance. ">operator()()</a>.</li>
<li><em>T_return</em> The return type of <a class="el" href="classsigc_1_1bound__const__mem__functor2.html#ab6f79018c4e2f09fc153e211ec0ddff2" title="Execute the wrapped method operating on the stored instance. ">operator()()</a>.</li>
<li><em>T_obj</em> The object type. </li>
</ul>
</div><h2 class="groupheader">Member Typedef Documentation</h2>
<a class="anchor" id="abe2916ee9b6867554b48370000eb6886"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template &lt;class T_return , class T_obj , class T_arg1 , class T_arg2 &gt; </div>
<table class="memname">
<tr>
<td class="memname">typedef base_type_::function_type <a class="el" href="classsigc_1_1bound__const__mem__functor2.html">sigc::bound_const_mem_functor2</a>&lt; T_return, T_obj, T_arg1, T_arg2 &gt;::<a class="el" href="classsigc_1_1bound__const__mem__functor2.html#abe2916ee9b6867554b48370000eb6886">function_type</a></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="a6732b8f5b308ff8ff1adea9e3734f4bf"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template &lt;class T_return , class T_obj , class T_arg1 , class T_arg2 &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classsigc_1_1bound__const__mem__functor2.html">sigc::bound_const_mem_functor2</a>&lt; T_return, T_obj, T_arg1, T_arg2 &gt;::<a class="el" href="classsigc_1_1bound__const__mem__functor2.html">bound_const_mem_functor2</a> </td>
<td>(</td>
<td class="paramtype">const T_obj *&#160;</td>
<td class="paramname"><em>_A_obj</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classsigc_1_1bound__const__mem__functor2.html#abe2916ee9b6867554b48370000eb6886">function_type</a>&#160;</td>
<td class="paramname"><em>_A_func</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Constructs a <a class="el" href="classsigc_1_1bound__const__mem__functor2.html" title="bound_const_mem_functor2 encapsulates a const method with 2 arguments and an object instance...">bound_const_mem_functor2</a> object that wraps the passed method. </p>
<dl class="deprecated"><dt><b><a class="el" href="deprecated.html#_deprecated000184">Deprecated:</a></b></dt><dd>Please use the constructor that takes the object by reference instead.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">_A_obj</td><td>Pointer to instance the method will operate on. </td></tr>
<tr><td class="paramname">_A_func</td><td>Pointer to method will be invoked from <a class="el" href="classsigc_1_1bound__const__mem__functor2.html#ab6f79018c4e2f09fc153e211ec0ddff2" title="Execute the wrapped method operating on the stored instance. ">operator()()</a>. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ab5213783f248b53b357ea6385b7bbe7a"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template &lt;class T_return , class T_obj , class T_arg1 , class T_arg2 &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classsigc_1_1bound__const__mem__functor2.html">sigc::bound_const_mem_functor2</a>&lt; T_return, T_obj, T_arg1, T_arg2 &gt;::<a class="el" href="classsigc_1_1bound__const__mem__functor2.html">bound_const_mem_functor2</a> </td>
<td>(</td>
<td class="paramtype">const T_obj &amp;&#160;</td>
<td class="paramname"><em>_A_obj</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classsigc_1_1bound__const__mem__functor2.html#abe2916ee9b6867554b48370000eb6886">function_type</a>&#160;</td>
<td class="paramname"><em>_A_func</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Constructs a <a class="el" href="classsigc_1_1bound__const__mem__functor2.html" title="bound_const_mem_functor2 encapsulates a const method with 2 arguments and an object instance...">bound_const_mem_functor2</a> object that wraps the passed method. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">_A_obj</td><td>Reference to instance the method will operate on. </td></tr>
<tr><td class="paramname">_A_func</td><td>Pointer to method will be invoked from <a class="el" href="classsigc_1_1bound__const__mem__functor2.html#ab6f79018c4e2f09fc153e211ec0ddff2" title="Execute the wrapped method operating on the stored instance. ">operator()()</a>. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a class="anchor" id="ab6f79018c4e2f09fc153e211ec0ddff2"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template &lt;class T_return , class T_obj , class T_arg1 , class T_arg2 &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">T_return <a class="el" href="classsigc_1_1bound__const__mem__functor2.html">sigc::bound_const_mem_functor2</a>&lt; T_return, T_obj, T_arg1, T_arg2 &gt;::operator() </td>
<td>(</td>
<td class="paramtype"><a class="el" href="namespacesigc.html#aa0d56c61023af35c47b79db80b32fd2e">type_trait_take_t</a>&lt; T_arg1 &gt;&#160;</td>
<td class="paramname"><em>_A_a1</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacesigc.html#aa0d56c61023af35c47b79db80b32fd2e">type_trait_take_t</a>&lt; T_arg2 &gt;&#160;</td>
<td class="paramname"><em>_A_a2</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Execute the wrapped method operating on the stored instance. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">_A_a1</td><td>Argument to be passed on to the method. </td></tr>
<tr><td class="paramname">_A_a2</td><td>Argument to be passed on to the method. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The return value of the method invocation. </dd></dl>
</div>
</div>
<h2 class="groupheader">Member Data Documentation</h2>
<a class="anchor" id="a3994b65f2ec0b45f5b502f07bf7baca1"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template &lt;class T_return , class T_obj , class T_arg1 , class T_arg2 &gt; </div>
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classsigc_1_1const__limit__reference.html">const_limit_reference</a>&lt;T_obj&gt; <a class="el" href="classsigc_1_1bound__const__mem__functor2.html">sigc::bound_const_mem_functor2</a>&lt; T_return, T_obj, T_arg1, T_arg2 &gt;::obj_</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Wed Mar 25 2020 10:13:28 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.11
</small></address>
</body>
</html>

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

View File

@ -0,0 +1,80 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.11"/>
<title>libsigc++: Member List</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="doxygen-extra.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">libsigc++
&#160;<span id="projectnumber">2.10.3</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.11 -->
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="annotated.html"><span>Class&#160;List</span></a></li>
<li><a href="classes.html"><span>Class&#160;Index</span></a></li>
<li><a href="inherits.html"><span>Class&#160;Hierarchy</span></a></li>
<li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="namespacesigc.html">sigc</a></li><li class="navelem"><a class="el" href="classsigc_1_1bound__const__mem__functor3.html">bound_const_mem_functor3</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">sigc::bound_const_mem_functor3&lt; T_return, T_obj, T_arg1, T_arg2, T_arg3 &gt; Member List</div> </div>
</div><!--header-->
<div class="contents">
<p>This is the complete list of members for <a class="el" href="classsigc_1_1bound__const__mem__functor3.html">sigc::bound_const_mem_functor3&lt; T_return, T_obj, T_arg1, T_arg2, T_arg3 &gt;</a>, including all inherited members.</p>
<table class="directory">
<tr class="even"><td class="entry"><a class="el" href="classsigc_1_1bound__const__mem__functor3.html#ae63bd158d8ce2571038d4f6382a7bc51">bound_const_mem_functor3</a>(const T_obj* _A_obj, function_type _A_func)</td><td class="entry"><a class="el" href="classsigc_1_1bound__const__mem__functor3.html">sigc::bound_const_mem_functor3&lt; T_return, T_obj, T_arg1, T_arg2, T_arg3 &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="classsigc_1_1bound__const__mem__functor3.html#a7fa6101b1b387baac23a7861e2819ad9">bound_const_mem_functor3</a>(const T_obj&amp; _A_obj, function_type _A_func)</td><td class="entry"><a class="el" href="classsigc_1_1bound__const__mem__functor3.html">sigc::bound_const_mem_functor3&lt; T_return, T_obj, T_arg1, T_arg2, T_arg3 &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classsigc_1_1const__mem__functor3.html#a9921cf28137404e029e3f5d7c291021d">const_mem_functor3</a>()</td><td class="entry"><a class="el" href="classsigc_1_1const__mem__functor3.html">sigc::const_mem_functor3&lt; T_return, T_obj, T_arg1, T_arg2, T_arg3 &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="classsigc_1_1const__mem__functor3.html#ae70cb6e5e322ef3f3a9673b1e541d2c1">const_mem_functor3</a>(function_type _A_func)</td><td class="entry"><a class="el" href="classsigc_1_1const__mem__functor3.html">sigc::const_mem_functor3&lt; T_return, T_obj, T_arg1, T_arg2, T_arg3 &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">explicit</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classsigc_1_1const__mem__functor3.html#ad86eb326f14c401748d0a118265e558d">func_ptr_</a></td><td class="entry"><a class="el" href="classsigc_1_1const__mem__functor3.html">sigc::const_mem_functor3&lt; T_return, T_obj, T_arg1, T_arg2, T_arg3 &gt;</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
<tr><td class="entry"><a class="el" href="classsigc_1_1bound__const__mem__functor3.html#ab4e793d8c65bf8754aea133a2473dc6c">function_type</a> typedef</td><td class="entry"><a class="el" href="classsigc_1_1bound__const__mem__functor3.html">sigc::bound_const_mem_functor3&lt; T_return, T_obj, T_arg1, T_arg2, T_arg3 &gt;</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classsigc_1_1bound__const__mem__functor3.html#ac4b0ceb88bda73c90d84b1320e274621">obj_</a></td><td class="entry"><a class="el" href="classsigc_1_1bound__const__mem__functor3.html">sigc::bound_const_mem_functor3&lt; T_return, T_obj, T_arg1, T_arg2, T_arg3 &gt;</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classsigc_1_1bound__const__mem__functor3.html#abd7a73629f12c4a85940bac69a6092e1">operator()</a>(type_trait_take_t&lt; T_arg1 &gt; _A_a1, type_trait_take_t&lt; T_arg2 &gt; _A_a2, type_trait_take_t&lt; T_arg3 &gt; _A_a3) const </td><td class="entry"><a class="el" href="classsigc_1_1bound__const__mem__functor3.html">sigc::bound_const_mem_functor3&lt; T_return, T_obj, T_arg1, T_arg2, T_arg3 &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classsigc_1_1const__mem__functor3.html#a43437137cb073dd22de17a16d528f737">sigc::const_mem_functor3::operator()</a>(const T_obj* _A_obj, type_trait_take_t&lt; T_arg1 &gt; _A_a1, type_trait_take_t&lt; T_arg2 &gt; _A_a2, type_trait_take_t&lt; T_arg3 &gt; _A_a3) const </td><td class="entry"><a class="el" href="classsigc_1_1const__mem__functor3.html">sigc::const_mem_functor3&lt; T_return, T_obj, T_arg1, T_arg2, T_arg3 &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="classsigc_1_1const__mem__functor3.html#a844467fda65e43ef1f0284f5378d8b79">sigc::const_mem_functor3::operator()</a>(const T_obj&amp; _A_obj, type_trait_take_t&lt; T_arg1 &gt; _A_a1, type_trait_take_t&lt; T_arg2 &gt; _A_a2, type_trait_take_t&lt; T_arg3 &gt; _A_a3) const </td><td class="entry"><a class="el" href="classsigc_1_1const__mem__functor3.html">sigc::const_mem_functor3&lt; T_return, T_obj, T_arg1, T_arg2, T_arg3 &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classsigc_1_1const__mem__functor3.html#ae67fd219e64f81359640873d30123c9d">result_type</a> typedef</td><td class="entry"><a class="el" href="classsigc_1_1const__mem__functor3.html">sigc::const_mem_functor3&lt; T_return, T_obj, T_arg1, T_arg2, T_arg3 &gt;</a></td><td class="entry"></td></tr>
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Wed Mar 25 2020 10:13:28 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.11
</small></address>
</body>
</html>

View File

@ -0,0 +1,321 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.11"/>
<title>libsigc++: sigc::bound_const_mem_functor3&lt; T_return, T_obj, T_arg1, T_arg2, T_arg3 &gt; Class Template Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="doxygen-extra.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">libsigc++
&#160;<span id="projectnumber">2.10.3</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.11 -->
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="annotated.html"><span>Class&#160;List</span></a></li>
<li><a href="classes.html"><span>Class&#160;Index</span></a></li>
<li><a href="inherits.html"><span>Class&#160;Hierarchy</span></a></li>
<li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="namespacesigc.html">sigc</a></li><li class="navelem"><a class="el" href="classsigc_1_1bound__const__mem__functor3.html">bound_const_mem_functor3</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-types">Public Types</a> &#124;
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pub-attribs">Public Attributes</a> &#124;
<a href="classsigc_1_1bound__const__mem__functor3-members.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">sigc::bound_const_mem_functor3&lt; T_return, T_obj, T_arg1, T_arg2, T_arg3 &gt; Class Template Reference<div class="ingroups"><a class="el" href="group__sigcfunctors.html">Functors</a> &raquo; <a class="el" href="group__mem__fun.html">mem_fun()</a></div></div> </div>
</div><!--header-->
<div class="contents">
<p><a class="el" href="classsigc_1_1bound__const__mem__functor3.html" title="bound_const_mem_functor3 encapsulates a const method with 3 arguments and an object instance...">bound_const_mem_functor3</a> encapsulates a const method with 3 arguments and an object instance.
<a href="classsigc_1_1bound__const__mem__functor3.html#details">More...</a></p>
<p><code>#include &lt;sigc++/functors/mem_fun.h&gt;</code></p>
<div class="dynheader">
Inheritance diagram for sigc::bound_const_mem_functor3&lt; T_return, T_obj, T_arg1, T_arg2, T_arg3 &gt;:</div>
<div class="dyncontent">
<div class="center"><img src="classsigc_1_1bound__const__mem__functor3__inherit__graph.png" border="0" usemap="#sigc_1_1bound__const__mem__functor3_3_01T__return_00_01T__obj_00_01T__arg1_00_01T__arg2_00_01T__arg3_01_4_inherit__map" alt="Inheritance graph"/></div>
<map name="sigc_1_1bound__const__mem__functor3_3_01T__return_00_01T__obj_00_01T__arg1_00_01T__arg2_00_01T__arg3_01_4_inherit__map" id="sigc_1_1bound__const__mem__functor3_3_01T__return_00_01T__obj_00_01T__arg1_00_01T__arg2_00_01T__arg3_01_4_inherit__map">
<area shape="rect" id="node2" href="classsigc_1_1const__mem__functor3.html" title="const_mem_functor3 wraps const methods with 3 argument(s). " alt="" coords="5,80,199,136"/>
<area shape="rect" id="node3" href="structsigc_1_1functor__base.html" title="A hint to the compiler. " alt="" coords="32,5,172,32"/>
</map>
<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
Public Types</h2></td></tr>
<tr class="memitem:ab4e793d8c65bf8754aea133a2473dc6c"><td class="memItemLeft" align="right" valign="top">typedef base_type_::function_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsigc_1_1bound__const__mem__functor3.html#ab4e793d8c65bf8754aea133a2473dc6c">function_type</a></td></tr>
<tr class="separator:ab4e793d8c65bf8754aea133a2473dc6c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_types_classsigc_1_1const__mem__functor3"><td colspan="2" onclick="javascript:toggleInherit('pub_types_classsigc_1_1const__mem__functor3')"><img src="closed.png" alt="-"/>&#160;Public Types inherited from <a class="el" href="classsigc_1_1const__mem__functor3.html">sigc::const_mem_functor3&lt; T_return, T_obj, T_arg1, T_arg2, T_arg3 &gt;</a></td></tr>
<tr class="memitem:a3ec78f54ddc86b5478f7bc7734970f85 inherit pub_types_classsigc_1_1const__mem__functor3"><td class="memItemLeft" align="right" valign="top">typedef T_return(T_obj::*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsigc_1_1const__mem__functor3.html#a3ec78f54ddc86b5478f7bc7734970f85">function_type</a>) (T_arg1, T_arg2, T_arg3) const </td></tr>
<tr class="separator:a3ec78f54ddc86b5478f7bc7734970f85 inherit pub_types_classsigc_1_1const__mem__functor3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae67fd219e64f81359640873d30123c9d inherit pub_types_classsigc_1_1const__mem__functor3"><td class="memItemLeft" align="right" valign="top">typedef T_return&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsigc_1_1const__mem__functor3.html#ae67fd219e64f81359640873d30123c9d">result_type</a></td></tr>
<tr class="separator:ae67fd219e64f81359640873d30123c9d inherit pub_types_classsigc_1_1const__mem__functor3"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:ae63bd158d8ce2571038d4f6382a7bc51"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsigc_1_1bound__const__mem__functor3.html#ae63bd158d8ce2571038d4f6382a7bc51">bound_const_mem_functor3</a> (const T_obj* _A_obj, <a class="el" href="classsigc_1_1bound__const__mem__functor3.html#ab4e793d8c65bf8754aea133a2473dc6c">function_type</a> _A_func)</td></tr>
<tr class="memdesc:ae63bd158d8ce2571038d4f6382a7bc51"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructs a <a class="el" href="classsigc_1_1bound__const__mem__functor3.html" title="bound_const_mem_functor3 encapsulates a const method with 3 arguments and an object instance...">bound_const_mem_functor3</a> object that wraps the passed method. <a href="#ae63bd158d8ce2571038d4f6382a7bc51">More...</a><br /></td></tr>
<tr class="separator:ae63bd158d8ce2571038d4f6382a7bc51"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7fa6101b1b387baac23a7861e2819ad9"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsigc_1_1bound__const__mem__functor3.html#a7fa6101b1b387baac23a7861e2819ad9">bound_const_mem_functor3</a> (const T_obj&amp; _A_obj, <a class="el" href="classsigc_1_1bound__const__mem__functor3.html#ab4e793d8c65bf8754aea133a2473dc6c">function_type</a> _A_func)</td></tr>
<tr class="memdesc:a7fa6101b1b387baac23a7861e2819ad9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructs a <a class="el" href="classsigc_1_1bound__const__mem__functor3.html" title="bound_const_mem_functor3 encapsulates a const method with 3 arguments and an object instance...">bound_const_mem_functor3</a> object that wraps the passed method. <a href="#a7fa6101b1b387baac23a7861e2819ad9">More...</a><br /></td></tr>
<tr class="separator:a7fa6101b1b387baac23a7861e2819ad9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abd7a73629f12c4a85940bac69a6092e1"><td class="memItemLeft" align="right" valign="top">T_return&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsigc_1_1bound__const__mem__functor3.html#abd7a73629f12c4a85940bac69a6092e1">operator()</a> (<a class="el" href="namespacesigc.html#aa0d56c61023af35c47b79db80b32fd2e">type_trait_take_t</a>&lt; T_arg1 &gt; _A_a1, <a class="el" href="namespacesigc.html#aa0d56c61023af35c47b79db80b32fd2e">type_trait_take_t</a>&lt; T_arg2 &gt; _A_a2, <a class="el" href="namespacesigc.html#aa0d56c61023af35c47b79db80b32fd2e">type_trait_take_t</a>&lt; T_arg3 &gt; _A_a3) const </td></tr>
<tr class="memdesc:abd7a73629f12c4a85940bac69a6092e1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Execute the wrapped method operating on the stored instance. <a href="#abd7a73629f12c4a85940bac69a6092e1">More...</a><br /></td></tr>
<tr class="separator:abd7a73629f12c4a85940bac69a6092e1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classsigc_1_1const__mem__functor3"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classsigc_1_1const__mem__functor3')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classsigc_1_1const__mem__functor3.html">sigc::const_mem_functor3&lt; T_return, T_obj, T_arg1, T_arg2, T_arg3 &gt;</a></td></tr>
<tr class="memitem:a9921cf28137404e029e3f5d7c291021d inherit pub_methods_classsigc_1_1const__mem__functor3"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsigc_1_1const__mem__functor3.html#a9921cf28137404e029e3f5d7c291021d">const_mem_functor3</a> ()</td></tr>
<tr class="memdesc:a9921cf28137404e029e3f5d7c291021d inherit pub_methods_classsigc_1_1const__mem__functor3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructs an invalid functor. <a href="#a9921cf28137404e029e3f5d7c291021d">More...</a><br /></td></tr>
<tr class="separator:a9921cf28137404e029e3f5d7c291021d inherit pub_methods_classsigc_1_1const__mem__functor3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae70cb6e5e322ef3f3a9673b1e541d2c1 inherit pub_methods_classsigc_1_1const__mem__functor3"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsigc_1_1const__mem__functor3.html#ae70cb6e5e322ef3f3a9673b1e541d2c1">const_mem_functor3</a> (<a class="el" href="classsigc_1_1const__mem__functor3.html#a3ec78f54ddc86b5478f7bc7734970f85">function_type</a> _A_func)</td></tr>
<tr class="memdesc:ae70cb6e5e322ef3f3a9673b1e541d2c1 inherit pub_methods_classsigc_1_1const__mem__functor3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructs a <a class="el" href="classsigc_1_1const__mem__functor3.html" title="const_mem_functor3 wraps const methods with 3 argument(s). ">const_mem_functor3</a> object that wraps the passed method. <a href="#ae70cb6e5e322ef3f3a9673b1e541d2c1">More...</a><br /></td></tr>
<tr class="separator:ae70cb6e5e322ef3f3a9673b1e541d2c1 inherit pub_methods_classsigc_1_1const__mem__functor3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a43437137cb073dd22de17a16d528f737 inherit pub_methods_classsigc_1_1const__mem__functor3"><td class="memItemLeft" align="right" valign="top">T_return&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsigc_1_1const__mem__functor3.html#a43437137cb073dd22de17a16d528f737">operator()</a> (const T_obj* _A_obj, <a class="el" href="namespacesigc.html#aa0d56c61023af35c47b79db80b32fd2e">type_trait_take_t</a>&lt; T_arg1 &gt; _A_a1, <a class="el" href="namespacesigc.html#aa0d56c61023af35c47b79db80b32fd2e">type_trait_take_t</a>&lt; T_arg2 &gt; _A_a2, <a class="el" href="namespacesigc.html#aa0d56c61023af35c47b79db80b32fd2e">type_trait_take_t</a>&lt; T_arg3 &gt; _A_a3) const </td></tr>
<tr class="memdesc:a43437137cb073dd22de17a16d528f737 inherit pub_methods_classsigc_1_1const__mem__functor3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Execute the wrapped method operating on the passed instance. <a href="#a43437137cb073dd22de17a16d528f737">More...</a><br /></td></tr>
<tr class="separator:a43437137cb073dd22de17a16d528f737 inherit pub_methods_classsigc_1_1const__mem__functor3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a844467fda65e43ef1f0284f5378d8b79 inherit pub_methods_classsigc_1_1const__mem__functor3"><td class="memItemLeft" align="right" valign="top">T_return&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsigc_1_1const__mem__functor3.html#a844467fda65e43ef1f0284f5378d8b79">operator()</a> (const T_obj&amp; _A_obj, <a class="el" href="namespacesigc.html#aa0d56c61023af35c47b79db80b32fd2e">type_trait_take_t</a>&lt; T_arg1 &gt; _A_a1, <a class="el" href="namespacesigc.html#aa0d56c61023af35c47b79db80b32fd2e">type_trait_take_t</a>&lt; T_arg2 &gt; _A_a2, <a class="el" href="namespacesigc.html#aa0d56c61023af35c47b79db80b32fd2e">type_trait_take_t</a>&lt; T_arg3 &gt; _A_a3) const </td></tr>
<tr class="memdesc:a844467fda65e43ef1f0284f5378d8b79 inherit pub_methods_classsigc_1_1const__mem__functor3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Execute the wrapped method operating on the passed instance. <a href="#a844467fda65e43ef1f0284f5378d8b79">More...</a><br /></td></tr>
<tr class="separator:a844467fda65e43ef1f0284f5378d8b79 inherit pub_methods_classsigc_1_1const__mem__functor3"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
Public Attributes</h2></td></tr>
<tr class="memitem:ac4b0ceb88bda73c90d84b1320e274621"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classsigc_1_1const__limit__reference.html">const_limit_reference</a>&lt; T_obj &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsigc_1_1bound__const__mem__functor3.html#ac4b0ceb88bda73c90d84b1320e274621">obj_</a></td></tr>
<tr class="separator:ac4b0ceb88bda73c90d84b1320e274621"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
Additional Inherited Members</h2></td></tr>
<tr class="inherit_header pro_attribs_classsigc_1_1const__mem__functor3"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_classsigc_1_1const__mem__functor3')"><img src="closed.png" alt="-"/>&#160;Protected Attributes inherited from <a class="el" href="classsigc_1_1const__mem__functor3.html">sigc::const_mem_functor3&lt; T_return, T_obj, T_arg1, T_arg2, T_arg3 &gt;</a></td></tr>
<tr class="memitem:ad86eb326f14c401748d0a118265e558d inherit pro_attribs_classsigc_1_1const__mem__functor3"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classsigc_1_1const__mem__functor3.html#a3ec78f54ddc86b5478f7bc7734970f85">function_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsigc_1_1const__mem__functor3.html#ad86eb326f14c401748d0a118265e558d">func_ptr_</a></td></tr>
<tr class="separator:ad86eb326f14c401748d0a118265e558d inherit pro_attribs_classsigc_1_1const__mem__functor3"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><h3>template&lt;class T_return, class T_obj, class T_arg1, class T_arg2, class T_arg3&gt;<br />
class sigc::bound_const_mem_functor3&lt; T_return, T_obj, T_arg1, T_arg2, T_arg3 &gt;</h3>
<p><a class="el" href="classsigc_1_1bound__const__mem__functor3.html" title="bound_const_mem_functor3 encapsulates a const method with 3 arguments and an object instance...">bound_const_mem_functor3</a> encapsulates a const method with 3 arguments and an object instance. </p>
<p>Use the convenience function <a class="el" href="group__mem__fun.html#gadf6b6d22c503b439019f0a2e77352419" title="Creates a functor of type sigc::mem_functor0 which wraps a method. ">mem_fun()</a> to create an instance of <a class="el" href="classsigc_1_1bound__const__mem__functor3.html" title="bound_const_mem_functor3 encapsulates a const method with 3 arguments and an object instance...">bound_const_mem_functor3</a>.</p>
<p>The following template arguments are used:</p><ul>
<li><em>T_arg1</em> Argument type used in the definition of <a class="el" href="classsigc_1_1bound__const__mem__functor3.html#abd7a73629f12c4a85940bac69a6092e1" title="Execute the wrapped method operating on the stored instance. ">operator()()</a>.</li>
<li><em>T_arg2</em> Argument type used in the definition of <a class="el" href="classsigc_1_1bound__const__mem__functor3.html#abd7a73629f12c4a85940bac69a6092e1" title="Execute the wrapped method operating on the stored instance. ">operator()()</a>.</li>
<li><em>T_arg3</em> Argument type used in the definition of <a class="el" href="classsigc_1_1bound__const__mem__functor3.html#abd7a73629f12c4a85940bac69a6092e1" title="Execute the wrapped method operating on the stored instance. ">operator()()</a>.</li>
<li><em>T_return</em> The return type of <a class="el" href="classsigc_1_1bound__const__mem__functor3.html#abd7a73629f12c4a85940bac69a6092e1" title="Execute the wrapped method operating on the stored instance. ">operator()()</a>.</li>
<li><em>T_obj</em> The object type. </li>
</ul>
</div><h2 class="groupheader">Member Typedef Documentation</h2>
<a class="anchor" id="ab4e793d8c65bf8754aea133a2473dc6c"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template &lt;class T_return , class T_obj , class T_arg1 , class T_arg2 , class T_arg3 &gt; </div>
<table class="memname">
<tr>
<td class="memname">typedef base_type_::function_type <a class="el" href="classsigc_1_1bound__const__mem__functor3.html">sigc::bound_const_mem_functor3</a>&lt; T_return, T_obj, T_arg1, T_arg2, T_arg3 &gt;::<a class="el" href="classsigc_1_1bound__const__mem__functor3.html#ab4e793d8c65bf8754aea133a2473dc6c">function_type</a></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="ae63bd158d8ce2571038d4f6382a7bc51"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template &lt;class T_return , class T_obj , class T_arg1 , class T_arg2 , class T_arg3 &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classsigc_1_1bound__const__mem__functor3.html">sigc::bound_const_mem_functor3</a>&lt; T_return, T_obj, T_arg1, T_arg2, T_arg3 &gt;::<a class="el" href="classsigc_1_1bound__const__mem__functor3.html">bound_const_mem_functor3</a> </td>
<td>(</td>
<td class="paramtype">const T_obj *&#160;</td>
<td class="paramname"><em>_A_obj</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classsigc_1_1bound__const__mem__functor3.html#ab4e793d8c65bf8754aea133a2473dc6c">function_type</a>&#160;</td>
<td class="paramname"><em>_A_func</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Constructs a <a class="el" href="classsigc_1_1bound__const__mem__functor3.html" title="bound_const_mem_functor3 encapsulates a const method with 3 arguments and an object instance...">bound_const_mem_functor3</a> object that wraps the passed method. </p>
<dl class="deprecated"><dt><b><a class="el" href="deprecated.html#_deprecated000185">Deprecated:</a></b></dt><dd>Please use the constructor that takes the object by reference instead.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">_A_obj</td><td>Pointer to instance the method will operate on. </td></tr>
<tr><td class="paramname">_A_func</td><td>Pointer to method will be invoked from <a class="el" href="classsigc_1_1bound__const__mem__functor3.html#abd7a73629f12c4a85940bac69a6092e1" title="Execute the wrapped method operating on the stored instance. ">operator()()</a>. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="a7fa6101b1b387baac23a7861e2819ad9"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template &lt;class T_return , class T_obj , class T_arg1 , class T_arg2 , class T_arg3 &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classsigc_1_1bound__const__mem__functor3.html">sigc::bound_const_mem_functor3</a>&lt; T_return, T_obj, T_arg1, T_arg2, T_arg3 &gt;::<a class="el" href="classsigc_1_1bound__const__mem__functor3.html">bound_const_mem_functor3</a> </td>
<td>(</td>
<td class="paramtype">const T_obj &amp;&#160;</td>
<td class="paramname"><em>_A_obj</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classsigc_1_1bound__const__mem__functor3.html#ab4e793d8c65bf8754aea133a2473dc6c">function_type</a>&#160;</td>
<td class="paramname"><em>_A_func</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Constructs a <a class="el" href="classsigc_1_1bound__const__mem__functor3.html" title="bound_const_mem_functor3 encapsulates a const method with 3 arguments and an object instance...">bound_const_mem_functor3</a> object that wraps the passed method. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">_A_obj</td><td>Reference to instance the method will operate on. </td></tr>
<tr><td class="paramname">_A_func</td><td>Pointer to method will be invoked from <a class="el" href="classsigc_1_1bound__const__mem__functor3.html#abd7a73629f12c4a85940bac69a6092e1" title="Execute the wrapped method operating on the stored instance. ">operator()()</a>. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a class="anchor" id="abd7a73629f12c4a85940bac69a6092e1"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template &lt;class T_return , class T_obj , class T_arg1 , class T_arg2 , class T_arg3 &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">T_return <a class="el" href="classsigc_1_1bound__const__mem__functor3.html">sigc::bound_const_mem_functor3</a>&lt; T_return, T_obj, T_arg1, T_arg2, T_arg3 &gt;::operator() </td>
<td>(</td>
<td class="paramtype"><a class="el" href="namespacesigc.html#aa0d56c61023af35c47b79db80b32fd2e">type_trait_take_t</a>&lt; T_arg1 &gt;&#160;</td>
<td class="paramname"><em>_A_a1</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacesigc.html#aa0d56c61023af35c47b79db80b32fd2e">type_trait_take_t</a>&lt; T_arg2 &gt;&#160;</td>
<td class="paramname"><em>_A_a2</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacesigc.html#aa0d56c61023af35c47b79db80b32fd2e">type_trait_take_t</a>&lt; T_arg3 &gt;&#160;</td>
<td class="paramname"><em>_A_a3</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Execute the wrapped method operating on the stored instance. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">_A_a1</td><td>Argument to be passed on to the method. </td></tr>
<tr><td class="paramname">_A_a2</td><td>Argument to be passed on to the method. </td></tr>
<tr><td class="paramname">_A_a3</td><td>Argument to be passed on to the method. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The return value of the method invocation. </dd></dl>
</div>
</div>
<h2 class="groupheader">Member Data Documentation</h2>
<a class="anchor" id="ac4b0ceb88bda73c90d84b1320e274621"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template &lt;class T_return , class T_obj , class T_arg1 , class T_arg2 , class T_arg3 &gt; </div>
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classsigc_1_1const__limit__reference.html">const_limit_reference</a>&lt;T_obj&gt; <a class="el" href="classsigc_1_1bound__const__mem__functor3.html">sigc::bound_const_mem_functor3</a>&lt; T_return, T_obj, T_arg1, T_arg2, T_arg3 &gt;::obj_</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Wed Mar 25 2020 10:13:28 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.11
</small></address>
</body>
</html>

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

View File

@ -0,0 +1,80 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.11"/>
<title>libsigc++: Member List</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="doxygen-extra.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">libsigc++
&#160;<span id="projectnumber">2.10.3</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.11 -->
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="annotated.html"><span>Class&#160;List</span></a></li>
<li><a href="classes.html"><span>Class&#160;Index</span></a></li>
<li><a href="inherits.html"><span>Class&#160;Hierarchy</span></a></li>
<li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="namespacesigc.html">sigc</a></li><li class="navelem"><a class="el" href="classsigc_1_1bound__const__mem__functor4.html">bound_const_mem_functor4</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">sigc::bound_const_mem_functor4&lt; T_return, T_obj, T_arg1, T_arg2, T_arg3, T_arg4 &gt; Member List</div> </div>
</div><!--header-->
<div class="contents">
<p>This is the complete list of members for <a class="el" href="classsigc_1_1bound__const__mem__functor4.html">sigc::bound_const_mem_functor4&lt; T_return, T_obj, T_arg1, T_arg2, T_arg3, T_arg4 &gt;</a>, including all inherited members.</p>
<table class="directory">
<tr class="even"><td class="entry"><a class="el" href="classsigc_1_1bound__const__mem__functor4.html#a1d441ea8caf2d2ff8cfca414f259b657">bound_const_mem_functor4</a>(const T_obj* _A_obj, function_type _A_func)</td><td class="entry"><a class="el" href="classsigc_1_1bound__const__mem__functor4.html">sigc::bound_const_mem_functor4&lt; T_return, T_obj, T_arg1, T_arg2, T_arg3, T_arg4 &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="classsigc_1_1bound__const__mem__functor4.html#a06e43c95d6ace639ac169ff2d0083ebc">bound_const_mem_functor4</a>(const T_obj&amp; _A_obj, function_type _A_func)</td><td class="entry"><a class="el" href="classsigc_1_1bound__const__mem__functor4.html">sigc::bound_const_mem_functor4&lt; T_return, T_obj, T_arg1, T_arg2, T_arg3, T_arg4 &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classsigc_1_1const__mem__functor4.html#acdde68d1638c13cd29157d1cb1bd42d2">const_mem_functor4</a>()</td><td class="entry"><a class="el" href="classsigc_1_1const__mem__functor4.html">sigc::const_mem_functor4&lt; T_return, T_obj, T_arg1, T_arg2, T_arg3, T_arg4 &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="classsigc_1_1const__mem__functor4.html#a7e09703c6320542cb5f0075d371908a8">const_mem_functor4</a>(function_type _A_func)</td><td class="entry"><a class="el" href="classsigc_1_1const__mem__functor4.html">sigc::const_mem_functor4&lt; T_return, T_obj, T_arg1, T_arg2, T_arg3, T_arg4 &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">explicit</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classsigc_1_1const__mem__functor4.html#ac0feeedacde97bd166141c285fa2c74c">func_ptr_</a></td><td class="entry"><a class="el" href="classsigc_1_1const__mem__functor4.html">sigc::const_mem_functor4&lt; T_return, T_obj, T_arg1, T_arg2, T_arg3, T_arg4 &gt;</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
<tr><td class="entry"><a class="el" href="classsigc_1_1bound__const__mem__functor4.html#a3ffc5790ded15878ce2704072791c4e9">function_type</a> typedef</td><td class="entry"><a class="el" href="classsigc_1_1bound__const__mem__functor4.html">sigc::bound_const_mem_functor4&lt; T_return, T_obj, T_arg1, T_arg2, T_arg3, T_arg4 &gt;</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classsigc_1_1bound__const__mem__functor4.html#a78490633e22357be6e0a0fcf124121b5">obj_</a></td><td class="entry"><a class="el" href="classsigc_1_1bound__const__mem__functor4.html">sigc::bound_const_mem_functor4&lt; T_return, T_obj, T_arg1, T_arg2, T_arg3, T_arg4 &gt;</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classsigc_1_1bound__const__mem__functor4.html#ac87b54763c850eeec2ad327e16942194">operator()</a>(type_trait_take_t&lt; T_arg1 &gt; _A_a1, type_trait_take_t&lt; T_arg2 &gt; _A_a2, type_trait_take_t&lt; T_arg3 &gt; _A_a3, type_trait_take_t&lt; T_arg4 &gt; _A_a4) const </td><td class="entry"><a class="el" href="classsigc_1_1bound__const__mem__functor4.html">sigc::bound_const_mem_functor4&lt; T_return, T_obj, T_arg1, T_arg2, T_arg3, T_arg4 &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classsigc_1_1const__mem__functor4.html#aab7d76a8f15aac7b907020383d6d7ba7">sigc::const_mem_functor4::operator()</a>(const T_obj* _A_obj, type_trait_take_t&lt; T_arg1 &gt; _A_a1, type_trait_take_t&lt; T_arg2 &gt; _A_a2, type_trait_take_t&lt; T_arg3 &gt; _A_a3, type_trait_take_t&lt; T_arg4 &gt; _A_a4) const </td><td class="entry"><a class="el" href="classsigc_1_1const__mem__functor4.html">sigc::const_mem_functor4&lt; T_return, T_obj, T_arg1, T_arg2, T_arg3, T_arg4 &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="classsigc_1_1const__mem__functor4.html#acb4060913f99af87627d5ca524efcecb">sigc::const_mem_functor4::operator()</a>(const T_obj&amp; _A_obj, type_trait_take_t&lt; T_arg1 &gt; _A_a1, type_trait_take_t&lt; T_arg2 &gt; _A_a2, type_trait_take_t&lt; T_arg3 &gt; _A_a3, type_trait_take_t&lt; T_arg4 &gt; _A_a4) const </td><td class="entry"><a class="el" href="classsigc_1_1const__mem__functor4.html">sigc::const_mem_functor4&lt; T_return, T_obj, T_arg1, T_arg2, T_arg3, T_arg4 &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classsigc_1_1const__mem__functor4.html#a78069750e64446199d91c0682b0915cc">result_type</a> typedef</td><td class="entry"><a class="el" href="classsigc_1_1const__mem__functor4.html">sigc::const_mem_functor4&lt; T_return, T_obj, T_arg1, T_arg2, T_arg3, T_arg4 &gt;</a></td><td class="entry"></td></tr>
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Wed Mar 25 2020 10:13:28 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.11
</small></address>
</body>
</html>

Some files were not shown because too many files have changed in this diff Show More