From 176835be8dd1ff416f9e7da8c2db19b9cc18e8d2 Mon Sep 17 00:00:00 2001 From: Doug McLain Date: Mon, 2 Jun 2008 21:48:31 +0000 Subject: remove sigc 2.0.18, again. Come on baby... git-svn-id: svn://localhost/ardour2/branches/3.0@3436 d708f5d6-7413-0410-9779-e7cbd77b26cf --- libs/sigc++2/.cvsignore | 19 - libs/sigc++2/AUTHORS | 8 - libs/sigc++2/COPYING | 515 -- libs/sigc++2/ChangeLog | 1249 ----- libs/sigc++2/INSTALL | 229 - libs/sigc++2/Makefile.am | 30 - libs/sigc++2/NEWS | 232 - libs/sigc++2/README | 72 - libs/sigc++2/SConscript | 41 - libs/sigc++2/TODO | 66 - libs/sigc++2/autogen.sh | 39 - libs/sigc++2/configure.ac | 64 - libs/sigc++2/libsigc++-2.0.spec.in | 91 - libs/sigc++2/scripts/cxx.m4 | 94 - libs/sigc++2/scripts/libtool.m4 | 5767 -------------------- libs/sigc++2/scripts/ltoptions.m4 | 358 -- libs/sigc++2/scripts/ltsugar.m4 | 115 - libs/sigc++2/scripts/ltversion.m4 | 15 - libs/sigc++2/sigc++-2.0.pc.in | 10 - libs/sigc++2/sigc++/.cvsignore | 4 - libs/sigc++2/sigc++/Makefile.am | 97 - libs/sigc++2/sigc++/adaptors/.cvsignore | 1 - libs/sigc++2/sigc++/adaptors/adaptor_trait.h | 362 -- libs/sigc++2/sigc++/adaptors/adaptors.h | 32 - libs/sigc++2/sigc++/adaptors/bind.h | 2262 -------- libs/sigc++2/sigc++/adaptors/bind_return.h | 204 - libs/sigc++2/sigc++/adaptors/compose.h | 294 - libs/sigc++2/sigc++/adaptors/deduce_result_type.h | 121 - libs/sigc++2/sigc++/adaptors/exception_catch.h | 319 -- libs/sigc++2/sigc++/adaptors/hide.h | 1063 ---- libs/sigc++2/sigc++/adaptors/lambda/.cvsignore | 1 - libs/sigc++2/sigc++/adaptors/lambda/base.h | 392 -- libs/sigc++2/sigc++/adaptors/lambda/group.h | 734 --- libs/sigc++2/sigc++/adaptors/lambda/lambda.cc | 15 - libs/sigc++2/sigc++/adaptors/lambda/lambda.h | 28 - libs/sigc++2/sigc++/adaptors/lambda/operator.h | 1697 ------ libs/sigc++2/sigc++/adaptors/lambda/select.h | 346 -- libs/sigc++2/sigc++/adaptors/retype.h | 1247 ----- libs/sigc++2/sigc++/adaptors/retype_return.h | 308 -- libs/sigc++2/sigc++/bind.h | 65 - libs/sigc++2/sigc++/bind_return.h | 34 - libs/sigc++2/sigc++/class_slot.h | 568 -- libs/sigc++2/sigc++/compatibility.h | 42 - libs/sigc++2/sigc++/connection.cc | 111 - libs/sigc++2/sigc++/connection.h | 154 - libs/sigc++2/sigc++/functors/.cvsignore | 1 - libs/sigc++2/sigc++/functors/functor_trait.h | 307 -- libs/sigc++2/sigc++/functors/functors.h | 27 - libs/sigc++2/sigc++/functors/mem_fun.h | 5976 --------------------- libs/sigc++2/sigc++/functors/ptr_fun.h | 542 -- libs/sigc++2/sigc++/functors/slot.cc | 25 - libs/sigc++2/sigc++/functors/slot.h | 1263 ----- libs/sigc++2/sigc++/functors/slot_base.cc | 165 - libs/sigc++2/sigc++/functors/slot_base.h | 319 -- libs/sigc++2/sigc++/hide.h | 105 - libs/sigc++2/sigc++/method_slot.h | 387 -- libs/sigc++2/sigc++/object.h | 35 - libs/sigc++2/sigc++/object_slot.h | 536 -- libs/sigc++2/sigc++/reference_wrapper.h | 118 - libs/sigc++2/sigc++/retype.h | 321 -- libs/sigc++2/sigc++/retype_return.h | 35 - libs/sigc++2/sigc++/sigc++.h | 30 - libs/sigc++2/sigc++/signal.cc | 25 - libs/sigc++2/sigc++/signal.h | 3188 ----------- libs/sigc++2/sigc++/signal_base.cc | 151 - libs/sigc++2/sigc++/signal_base.h | 261 - libs/sigc++2/sigc++/slot.h | 614 --- libs/sigc++2/sigc++/trackable.cc | 124 - libs/sigc++2/sigc++/trackable.h | 148 - libs/sigc++2/sigc++/type_traits.h | 121 - libs/sigc++2/sigc++/visit_each.h | 128 - libs/sigc++2/sigc++config.h.in | 10 - 72 files changed, 34477 deletions(-) delete mode 100644 libs/sigc++2/.cvsignore delete mode 100644 libs/sigc++2/AUTHORS delete mode 100644 libs/sigc++2/COPYING delete mode 100644 libs/sigc++2/ChangeLog delete mode 100644 libs/sigc++2/INSTALL delete mode 100644 libs/sigc++2/Makefile.am delete mode 100644 libs/sigc++2/NEWS delete mode 100644 libs/sigc++2/README delete mode 100644 libs/sigc++2/SConscript delete mode 100644 libs/sigc++2/TODO delete mode 100755 libs/sigc++2/autogen.sh delete mode 100644 libs/sigc++2/configure.ac delete mode 100644 libs/sigc++2/libsigc++-2.0.spec.in delete mode 100644 libs/sigc++2/scripts/cxx.m4 delete mode 100644 libs/sigc++2/scripts/libtool.m4 delete mode 100644 libs/sigc++2/scripts/ltoptions.m4 delete mode 100644 libs/sigc++2/scripts/ltsugar.m4 delete mode 100644 libs/sigc++2/scripts/ltversion.m4 delete mode 100644 libs/sigc++2/sigc++-2.0.pc.in delete mode 100644 libs/sigc++2/sigc++/.cvsignore delete mode 100644 libs/sigc++2/sigc++/Makefile.am delete mode 100644 libs/sigc++2/sigc++/adaptors/.cvsignore delete mode 100644 libs/sigc++2/sigc++/adaptors/adaptor_trait.h delete mode 100644 libs/sigc++2/sigc++/adaptors/adaptors.h delete mode 100644 libs/sigc++2/sigc++/adaptors/bind.h delete mode 100644 libs/sigc++2/sigc++/adaptors/bind_return.h delete mode 100644 libs/sigc++2/sigc++/adaptors/compose.h delete mode 100644 libs/sigc++2/sigc++/adaptors/deduce_result_type.h delete mode 100644 libs/sigc++2/sigc++/adaptors/exception_catch.h delete mode 100644 libs/sigc++2/sigc++/adaptors/hide.h delete mode 100644 libs/sigc++2/sigc++/adaptors/lambda/.cvsignore delete mode 100644 libs/sigc++2/sigc++/adaptors/lambda/base.h delete mode 100644 libs/sigc++2/sigc++/adaptors/lambda/group.h delete mode 100644 libs/sigc++2/sigc++/adaptors/lambda/lambda.cc delete mode 100644 libs/sigc++2/sigc++/adaptors/lambda/lambda.h delete mode 100644 libs/sigc++2/sigc++/adaptors/lambda/operator.h delete mode 100644 libs/sigc++2/sigc++/adaptors/lambda/select.h delete mode 100644 libs/sigc++2/sigc++/adaptors/retype.h delete mode 100644 libs/sigc++2/sigc++/adaptors/retype_return.h delete mode 100644 libs/sigc++2/sigc++/bind.h delete mode 100644 libs/sigc++2/sigc++/bind_return.h delete mode 100644 libs/sigc++2/sigc++/class_slot.h delete mode 100644 libs/sigc++2/sigc++/compatibility.h delete mode 100644 libs/sigc++2/sigc++/connection.cc delete mode 100644 libs/sigc++2/sigc++/connection.h delete mode 100644 libs/sigc++2/sigc++/functors/.cvsignore delete mode 100644 libs/sigc++2/sigc++/functors/functor_trait.h delete mode 100644 libs/sigc++2/sigc++/functors/functors.h delete mode 100644 libs/sigc++2/sigc++/functors/mem_fun.h delete mode 100644 libs/sigc++2/sigc++/functors/ptr_fun.h delete mode 100644 libs/sigc++2/sigc++/functors/slot.cc delete mode 100644 libs/sigc++2/sigc++/functors/slot.h delete mode 100644 libs/sigc++2/sigc++/functors/slot_base.cc delete mode 100644 libs/sigc++2/sigc++/functors/slot_base.h delete mode 100644 libs/sigc++2/sigc++/hide.h delete mode 100644 libs/sigc++2/sigc++/method_slot.h delete mode 100644 libs/sigc++2/sigc++/object.h delete mode 100644 libs/sigc++2/sigc++/object_slot.h delete mode 100644 libs/sigc++2/sigc++/reference_wrapper.h delete mode 100644 libs/sigc++2/sigc++/retype.h delete mode 100644 libs/sigc++2/sigc++/retype_return.h delete mode 100644 libs/sigc++2/sigc++/sigc++.h delete mode 100644 libs/sigc++2/sigc++/signal.cc delete mode 100644 libs/sigc++2/sigc++/signal.h delete mode 100644 libs/sigc++2/sigc++/signal_base.cc delete mode 100644 libs/sigc++2/sigc++/signal_base.h delete mode 100644 libs/sigc++2/sigc++/slot.h delete mode 100644 libs/sigc++2/sigc++/trackable.cc delete mode 100644 libs/sigc++2/sigc++/trackable.h delete mode 100644 libs/sigc++2/sigc++/type_traits.h delete mode 100644 libs/sigc++2/sigc++/visit_each.h delete mode 100644 libs/sigc++2/sigc++config.h.in (limited to 'libs/sigc++2') diff --git a/libs/sigc++2/.cvsignore b/libs/sigc++2/.cvsignore deleted file mode 100644 index 4852d85cc7..0000000000 --- a/libs/sigc++2/.cvsignore +++ /dev/null @@ -1,19 +0,0 @@ -Makefile -Makefile.in -aclocal.m4 -autom4te.cache -config.guess -config.log -config.status -config.sub -depcomp -install-sh -libsigc++-2.0.spec -libtool -ltmain.sh -missing -sigc++-2.0.pc -stamp-h1 -configure -sigc++config.h -*.dylib diff --git a/libs/sigc++2/AUTHORS b/libs/sigc++2/AUTHORS deleted file mode 100644 index 000671ac0a..0000000000 --- a/libs/sigc++2/AUTHORS +++ /dev/null @@ -1,8 +0,0 @@ -Martin Schulze -Murray Cumming -Cedric Gustin (win32 support) -Timothy M. Shead and James Lin (MSVC support) -Damien Carbery (Sun FORTE C++ support) -Takashi Takekawa (Intel C++ support) -Andreas Rottmann (make system) -Karl Einar Nelson (initial version 1.9.4) diff --git a/libs/sigc++2/COPYING b/libs/sigc++2/COPYING deleted file mode 100644 index c4792dd27a..0000000000 --- a/libs/sigc++2/COPYING +++ /dev/null @@ -1,515 +0,0 @@ - - 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. - - - - Copyright (C) - - 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. - - , 1 April 1990 - Ty Coon, President of Vice - -That's all there is to it! - - diff --git a/libs/sigc++2/ChangeLog b/libs/sigc++2/ChangeLog deleted file mode 100644 index 8e02aef058..0000000000 --- a/libs/sigc++2/ChangeLog +++ /dev/null @@ -1,1249 +0,0 @@ -2004-10-12 Martin Schulze - - * MSVC_Net2003/*/*.vcproj, MSVC_Net2003/blank.cpp: Fix project files - to compile out-of-the-box and add dummy file so that .cc files get - recognized as c++ code files (patch from Timothy M. Shead). - -2004-10-10 Martin Schulze - - * sigc++/signal_base.{h,cc}, sigc++/functors/slot_base.{h,cc}, - sigc++/functors/macros/slot.h.m4: If SIGC_NEW_DELETE_IN_LIBRARY_ONLY - is defined, implement signal_base::operator new/delete and - slot_rep::operator new/delete (suggested by Timothy M. Shead). - Remove old work-around from 2004-10-02 since it didn't work. - -2004-10-07 Martin Schulze - - * configure.ac: Update for libtool 1.5a (with support for Intel C++). - * MSVC_Net2003/sigc++config.h: Remove bogus '#define' - (reported by Timothy M. Shead ). - -2004-10-02 Martin Schulze - - * configure.ac: Bump version number to 2.0.6. - * NEWS: Add ChangeLog summary for version 2.0.6. - -2004-10-02 Martin Schulze - - * sigc++/functors/slot_base.{h,cc}, sigc++/functors/macros/slot.h.m4: - Rename (typed_)slot_rep::detach to (typed_)slot_rep::destroy. - Call the dtor of the functor stored in typed_slot_rep from destroy(). - A cleaner solution would be to add an additional "virtual" function - that calls 'delete' or a real virtual dtor. However, this would be - less efficient and might break the ABI. (Fixes #152323.) - -2004-10-02 Martin Schulze - - * sigc++config.h.in, MSVC_Net2003/sigc++config.h, - sigc++/signal_base.cc, sigc++/functors/slot_base.{h,cc}, - sigc++/functors/macros/slot.h.m4: Define and use new macro - SIGC_NEW_DELETE_IN_LIBRARY_ONLY to ABI-compatibly move - all calls to new and delete into non-inline library code. - -2004-09-26 Martin Schulze - - * sigc++/adaptors/lambda/macros/group.h.m4: Add a missing - template keyword in the definition of deduce_result_type::type - (hopefully fixes #152327). - -2004-09-26 Martin Schulze - - * sigc++/macros/object_slot.h.m4: Use correct bound_mem_functor - variants for const (volatile) methods (fixes #148744). - -2004-09-01 Martin Schulze - - * docs/index.html: Correct link to lambda module. - -2004-09-01 Martin Schulze - - * README: Update compatibility section. - -2.0.5: - -2004-09-01 Martin Schulze - - * MSVC_Net2003/Makefile.am: Add sigc++config.h to EXTRA_DIST. - * configure.ac: Bump version number to 2.0.5. - * NEWS: Add ChangeLog summary for version 2.0.5. - -2.0.4: - -2004-08-21 Martin Schulze - - * tests/test_lambda.cc: Use sigc::var("\n") instead of sigc::ref("\n"). - Comment out the affected lines, nevertheless. - Sun FORTE and Compaq C++ can handle neither sigc::ref("\n") nor - sigc::var("\n"). I see more chances fixing sigc::var("\n"). - * sigc++/adaptors/lambda/macros/base.h.m4: Add a comment about a - possible work around for sigc::var("\n") compiler problems. - * tests/test_compatibility.cc: Remove a 'const' keyword that prevents - the test case from compiling with the Sun FORTE. - * tests/test_trackable.cc: Remove a 'virtual' keyword and an unused - variable to avoid compiler warnings. - * NEWS: Add ChangeLog summary for version 2.0.4. - -2004-08-03 Martin Schulze - - * scripts/cxx.m4, sigc++config.h.in, configure.ac, - sigc++/adaptors/lambda/macros/operator.h.m4, tests/test_lambda.cc: - Rollback change from 2004-07-15: configure check - SIGC_OPERATOR_OVERLOAD_AMBIGUITY is not needed - the overload - ambiguity doesn't occur if the lambda operators take all arguments - as const reference. - * configure.ac: Bump version number to 2.0.4. - -2004-08-03 James Lin - - * Added SIGC_API qualifier to all externally-visible non-template - classes/structs. - * Added #include to the files that use SIGC_API. - * Added empty SIGC_API definition to sigc++config.h.in for non-MSVC - compilers. I'm not sure if this is the right place to put this - (probably not). - * Added MSVC-specific sigc++config.h to the MSVC project directory. - (The comment in it probably should be edited.) - * Changed MSVC project settings to output a multi-threaded DLL, set - the include paths to work (hopefully) out-of-the-box. Disabled - precompiled headers, since they just complicate things and - shouldn't be necessary for such a relatively project. - -2004-08-01 Martin Schulze - - * sigc++/type_traits.h: Remove type_trait<>::instance() - (was unimplemented and unused; caused problems with the MSVC). - -2004-07-23 Martin Schulze - - * Makefile.am: Fix typo concerning distribution of libsigc++-2.0.spec. - * AUTHORS: Mention our contributors for platforms Sun FORTE and Intel C++. - -2004-07-15 Martin Schulze - - * *.h.m4: Don't call operator()() in sun_forte_workaround(); rather copy - operator()(). Calling operator()() makes a copy of the arguments causing - wrong results if an argument type is a reference. Hopefully fixes #147311. - -2004-07-15 Martin Schulze - - * tests/test_lambda.cc: Break "std::cout << [expr] << a << std::endl;" - into "std::cout << [expr]; std::cout << a << std::endl;". - I hope this fixes #147313 where the right values for "[expr]" but wrong - values for "a" were written to std::cout for some compiler with optimizations - turned off. - -2004-07-15 Martin Schulze - - * sigc++/adaptors/lambda/macros/operator.h.m4: Correct return type deduction - of lambda expressions in lambda_operator*::operator()(). Might be related to - bug #147313. - * sigc++/adaptors/lambda/macros/group.h.m4: Use m4 macro _P_(). - -2004-07-15 Martin Schulze - - * scripts/cxx.m4, sigc++config.h.in, configure.ac, - sigc++/adaptors/lambda/macros/operator.h.m4, tests/test_lambda.cc: - Add configure check SIGC_OPERATOR_OVERLOAD_AMBIGUITY for a SUN FORTE - compiler problem (bug #147391). Use it to decide whether the lambda - action operators may be overloaded (not doing so restricts the API slightly). - * sigc++/adaptors/lambda/macros/operator.h.m4: Add some doxygen comments - and remove attic code. - * sigc++/adaptors/lambda/macros/base.h.m4: - Add templates unwrap_lambda_type and unwrap_lambda_value() to support - the non-overloaded lambda action operators. Also add some doxygen comments - and remove attic code. - * sigc++/adaptors/lambda/macros/group.h.m4: Fix a bug that resulted in - gargabe values being passed on to the functor contained in the group adaptor - (partly fixes #147313). - -2004-07-11 Martin Schulze - - * scripts/cxx.m4, sigc++config.h.in, configure.ac, *.h.m4: - Split SIGC_CXX_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - into SIGC_CXX_GCC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - and SIGC_CXX_MSVC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD. - Remove LIBSIGC_TEMPLATE_PREFIX. Add template keyword to - SIGC_WORKAROUND_OPERATOR_PARENTHESES depending on the configure checks. - Should fix the compiler problems with MSVC. - -2004-07-11 Martin Schulze - - * examples/hello_world.cc: Use sigc::ptr_fun instead of std::ptr_fun. - (fixes bug #144846) - -2004-07-11 Eric Bourque - - * libsigc++-2.0.spec.in: new file - * configure.ac : patched generate spec file - * .cvsignore: ignore generated file (Martin Schulze) - * Makefile.am: distribute spec file (Martin Schulze) - -2004-07-11 Murray Cumming - - * sigc++/connection.cc: Added some comments. - * sigc++/trackable.cc: operator=(): Check for self-asignment, though I - do not know of any actual bug that this fixes. Added some comments. - * sigc++/trackable.h Added some doxygen documentation. - -2004-07-09 Murray Cumming - - * tests/: Added test_disconnect_during_emit.cc, to prove that this - works. - -2004-07-08 Murray Cumming - - * tests/test_retype_return.cc: foo::operator(int): return a - value. The SUN Forte 5.5 compiler complains about this, as it should. - -2004-07-08 Murray Cumming - - * sigc++/macros/signal.h.m4: class signal*: Rename the slot_list - typedef to slot_list_type, because there is already a template class - called slot_type. SUN Forte 5.5 seems to complain about this and I am - not surprised. The old typdef is still there for backwards - compatibility, except when building with SUN Forte. - -2004-07-07 Murray Cumming - - * scripts/cxx.m4: SIGC_CXX_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD(): - Don't define the SIGC_TEMPLATE_SPECIALIZATOIN_OPERATOR_OVERLOAD C - macro at all if the test fails. This might fix the build on SUN Forte. - * sigc++/functors/macros/mem_fun.h.m4: Default constructor: Initialize - the func_ptr_ member variable. I have no evidence that this solves any - problems, but it worried me. - * sigc++/functors/slot_base.h: operator bool(): Correct documentation, - to use @code instead of - * sigc++/macros/signal.h.m4: Remove the documentation for the - parameters named first and last, because they do not exist. - -2004-05-31 Martin Schulze - - * autogen.sh: Add '--force'-flag to the 'libtoolize'-command (bug #143425). - -2.0.3: - -2004-05-30 Martin Schulze - - * configure.ac: Bump version number to 2.0.3. - * NEWS: Add ChangeLog summary for version 2.0.3. - * sigc++/macros/signal.h.m4: Fix segfault on emission of unconnected signal. - * tests/test_signal.cc, tests/test_accumulated.cc: Emit unconnected signal. - * sigc++/macros/object_slot.h.m4: Suppress compiler warning at - dynamic_cast<>-test (tested by Christof Petig/Timothy M. Shead). - -2.0.2: - -2004-05-22 Martin Schulze - - * configure.ac: Bump version number to 2.0.2. - * NEWS: Add ChangeLog summary for version 2.0.2. - -2004-05-20 Martin Schulze - - * sigc++/macros/signal.h.m4: 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.) - -2004-05-20 Martin Schulze - - * sigc++/macros/object_slot.h.m4: Suppress compiler warning at - dynamic_cast<>-test (suggested by Timothy M. Shead). - -2004-05-01 Martin Schulze - - * README: Updated for libsigc++-2.0. - -2.0.1: - -2004-04-27 Martin Schulze - - * configure.ac: Bump version number to 2.0.1. - * NEWS: Add ChangeLog summary for version 2.0.1. - * sigc++/adaptors/lambda/macros/base.h.m4: Fixed documentation. - * sigc++/adaptors/macros/bind.h.m4: Hide work-arounds from doxygen. - * scripts/cxx.m4, sigc++config.h.in, configure.ac, - sigc++/adaptors/macros/bind.h.m4: Removed configure check. It - showed that the Apple gcc can also compile the sophisticated version - of the work-around. - -2004-04-26 Martin Schulze - - * sigc++/macros/object_slot.h.m4: Modified test for SigC::Object - inheritance so that it also works if SigC::Object is virtual base. - (Fixes bug 141094 reported by Jonathan Brandmeyer) - -2004-04-26 Martin Schulze - - * scripts/cxx.m4: Updated the configure check. It would probably - have succeeded on the Apple. - -2004-04-26 Martin Schulze - - * sigc++/adaptors/macros/bind.h.m4: Add work-arounds for - bind<-1>::deduce_result_type compilation error on Apple gcc 3.3. - * scripts/cxx.m4, sigc++config.h.in, configure.ac: Add configure - check for the compilation error above. - * sigc++/adaptors/lambda/macros/operator.h.m4: Replace _A with - _Aa. _A is a reserved keyword on Apple gcc 3.3 (Spundun Bhatt). - (fixes bug #10444 reported by Spundun Bhatt) - -2004-04-19 Martin Schulze - - * sigc++/signal_base.cc: Fixed serious bug in signal_base::impl(): - Only reference a newly created object (initial reference). - (This fixes bug #140269 reported by Andris.) - -2004-04-19 Murray Cumming - - * scripts/cxx.m4: Updated the operator() template check, because it - failed with gcc 3.4 (from cvs). Apparently the template keyword can - only be used from another template. - -2.0.0: - -2004-04-06 Martin Schulze - - * configure.ac: Bump version number to 2.0.0. - * NEWS: Add ChangeLog summary for version 2.0.0. - * TODO, AUTHORS: Bring up to date. - * sigc++-2.0.pc.in, Makefile.am: 1.9 -> 2.0 - * Added more documentation. - -2004-04-10 Murray Cumming - - * sigc++/connection.[h|cc]: Implement blocked() to avoid undefined - symbol linker error. - -2004-04-08 Murray Cumming - - * dist the scripts directory. - -1.9.16: - -2004-04-06 Martin Schulze - - * configure.ac: Bump version number to 1.9.16. - * NEWS: Add ChangeLog summary for version 1.9.16. - -2004-04-02 Murray Cumming - - * sigc++/connection.cc: Make block() and unblock() always return a - value, to fix compiler warnings. Patch from bug #138620 by - Alexander Nedotsukov. - -2004-04-02 Murray Cumming - - * Fix the compile of examples/member_method.cc. Bug #131701 from - Kirill Smelkov. I also made the examples build as part of the regular - build. - -2004-04-02 Murray Cumming - - * sigc++config.h.m4: Remove every undef apart from the one we need, to - avoid clashes, because we #include this in a public header. - -2004-03-25 Murray Cumming - - * scripts/cxx.m4, configure.in, sigc++config.h.in: Rename the - template_keyword check to template_specialization, because the problem - is with or without the keyword. - * sigc++/adaptors/macros/adaptor_trait.h.m4: Define - SIGC_WORKAROUND_OPERATOR_PARENTHESES, which calls either operator() or - sun_forte_workaround() depending on the result of the compiler test. - * many .m4 files: Add sun_forte_workaround methods that call the - operator() methods. Put them in #ifdefs so that only SUN Forte C++ - sees them. - -2004-03-22 Murray Cumming - - * Makefile.am, sigc++/Makfile.am: Fix the sigc++config.h.in disting, - to fix make distcheck. - -2004-03-21 Murray Cumming - - * Rename config.h.in to sigc++config.h.in so that gtkmm does not - include some other config.h at strange times - fixes a problem in - the gtkmm demos. This should really be in the sigc++ directory, but - that seems to add that as an include path, which causes the STL - headers to include sigc++/signal.h instead of some STL signal.h header. - -2004-03-20 Murray Cumming - - * Makefile.am: Install the config.h platform-specific header. - * sigc++-2.0.pc.in: Report the include path for config.h - -2004-03-20 Murray Cumming - - * Added config.h.in, using autoheader, from which config.h will be - generated, so we can detect compiler features. - * configure.ac: Added AC_CONFIG_HEADER(config.h) to generate config.h - from config.h.in. - * scripts/cxx.m4: Added this directory and file, with a - SIGC_CXX_TEMPLATE_KEYWORD_OPERATOR_OVERLOAD macro that defines - the SIGC_TEMPLATE_KEYWORD_OPERATOR_OVERLOAD C macro. - * autogen.sh: Added -I scripts to the aclocal call, so that it finds - the m4 macro for configure.ac. - * sigc++/adapators/macros/adaptor_trait.h.m4: Include config.h and - use SIGC_TEMPLATE_KEYOWRD_OPERATOR_OVERLOAD. - -2004-03-18 Martin Schulze - - * tests/test_mem_fun.cc, tests/test_ptr_fun.cc: Don't test - making functors from overloaded methods with partial template - specialization. Not portable among different compilers (SUN FORTE). - * adaptors/macros/apdaptor_trait.h.m4: Only gcc seems to use the - notation A.template operator()<...>(...) => adapt preprocessor check - for #define LIBSIGC_TEMPLATE_PREFIX. TODO: replace with configure check. - -2004-03-13 Murray Cumming - - * g++ 3.4 (pre-release) build fixes: - * sigc++/macros/signal.h.m4: slot_iterator_buf::operator*(): - Use blocked() and empty() instead of non-existant blocked_and_empty(). - * sigc++/functors/macros/mem_fun.h.m4: memfun_functor*::operator()(): - Use this->func_ptr_ instead of just func_ptr_. - * sigc++/adaptors/macros/deduce_result_type.h.m4: Use - T_functor::template deduce_result_type<> instead of just - T_functor::deduce_result_type<>. - * sigc++/adaptors/lambda/macros/base.h.m4, operator.h.m4, group.h.m4:: - Use template keyword again. operator[](): Use this->value_ instead of - just value_. - * sigc++/adaptors/lambda/macros/bind/m4: Use template keyword, and - this-> again. - * sigc++/adaptors/macros/compose.h.m4, hide.h.m4, bind_return.h.m4, - exception_catch.h.m4: - rettype.h.m4, rettype_return.h.m4: Use template keyword,and this-> again - -1.9.15: - -2004-02-27 Martin Schulze - - * configure.ac: Bump version number to 1.9.15. - * NEWS: Add ChangeLog summary for version 1.9.15. - -2004-02-27 Martin Schulze - - * sigc++/functors/macros/slot.h.m4: Make the unnumbered slot templates' - copy ctors use the copy ctors of the base class. Fixes bug #24698. - * tests/test_slot.cc: Test copy ctor (Bryan Forbes). - -2004-02-27 Martin Schulze - - * tests/type_functor_trait.cc: Bring it up-to-date (use sigc::ref). - Make it work with the SUN Forte. - -2004-02-24 Martin Schulze - - * sigc++/type_traits.h: Make is_base_and_derived<> work with the SUN Forte. - -2004-02-19 Martin Schulze - - * sigc++/type_traits.h: Make is_base_and_derived<> platform independant. - * sigc++/adaptors/lambda/macros/base.h.m4: Make lambda_core<> ctors - explicit. Remove an unused ctor from lambda_core. - -2004-02-14 Martin Schulze - - * sigc++/functors/slot_base.h, sigc++/functors/macros/slot.h.m4: - Move some documentation to slot_base.h. - * sigc++/signal_base.h, sigc++/macros/signal.h.m4: - Move some documentation to signal_base.h. - - API addition: - * sigc++/functors/macros/slot.h.m4: Add numbered slot# templates. - Make unnumbered slot templates inherit from slot#. - - API change: - * sigc++/functors/macros/mem_fun.h.m4: Allow for methods of the object's - base types to be passed into sigc::mem_fun(). (Used to be the case in - libsigc++-1.2). - -2004-02-13 Murray Cumming - - * sigc++/functors/slot_base.[h|cc], sigc++/trackable.[h|cc]: Create - and use a typedef for the destroy_notify callback functions, to avoid - confusion function pointer declaration syntax in the API. - -2004-02-13 Murray Cumming - - * Moved implementation to .cc files: - * sigc++/functors/: Added slot_base.[h|cc] which contains non-template - code that was previsouly in the generated functors/slot.h and - non-generated slot.cc files. All non-inline implementation is now in - the .cc file. - * sigc++/functors/macros/slot.m4: Removed the code that has been moved - to slot_base.[h|cc]. - * sigc++/: Added signal_base.[h|cc] which contains non-template code - that was previously in the generated signal.h and non-generated - signal.cc file. All non-inline implementation is now in the .cc file. - * sigc++/macros/signal.m4: Removed the code that ahs been moved to - signal.cc - * sigc++/connector.[h|cc]: method implementation moved to the .cc file. - -1.9.14: - -2004-02-13 Martin Schulze - - * configure.ac: Bump version number to 1.9.14. - * NEWS: Add ChangeLog summary for version 1.9.14. - -2004-02-09 Murray Cumming - - * sigc++/functors/macros/slot.h.m4: slot_base: Added operator bool(), needed to - check for a slot that is created with the default constructor. This was - present in libsigc++ 1.2 also. - -2004-02-06 Murray Cumming - - * Makefile.am: Build the docs directory, by adding it to SUBDIRS. - * docs/Doxyfile.in: Updated to be more glibmm-like. - * Added some @deprecated doxygen bits. - * sigc++/macros/signal.h.m4: Call base constructor from signal_base - constructor - this is an error-as-warning when building gtkmm. - -1.9.13: - -2003-11-30 Martin Schulze - - * configure.ac: Bump version number to 1.9.13. - * NEWS: Add ChangeLog summary for version 1.9.13. - * Makefile.am, MSVC_Net2003/Makefile.am, configure.ac: - Distribute MS .Net project files. - * sigc++/adaptors/macros/[bind,hide].h.m4: Correct and add - documentation. Make hide_functor ctor explicit. - -2003-11-11 Martin Schulze - - * sigc++/adaptors/macros/[bind,hide].h.m4: Change to zero-based - argument index in numbered bind() and hide() overload - (Agreement on the mailing list). - Support binding up to CALL_SIZE arguments with one bind adaptor. - (Requested by joey yandle and others). - Only support binding of multiple arguments in unnumberd overloads - to keep the API simple (Requested by Murray Cumming). - * tests/test_[bind,hide,functor_trait].cc, sigc++/bind.h: - Reflect API changes in compatibility module and test cases. - -2003-11-10 Martin Schulze - - * sigc++/adaptors/macros/[bind,hide].h.m4: Add unnumbered - bind() and hide() overloads to make specifying the argument - position optional (Proposed by Jeff Franks). - * tests/test_[bind,hide].cc: Test unnumbered bind() and hide(). - * sigc++/adaptors/macros/adaptor_trait.h.m4: - Change "#ifdef MSVC" to "#ifdef _MSC_VER" (Roel Vanhout). - -2003-11-09 Martin Schulze - - * sigc++/functors/macros/slot.h.m4: Change functor type in - typed_slot_rep to adaptor_trait::adaptor_type - and use explicit function template instantiation in - internal::slot_call::call_it(). Avoids copying of arguments - in call_it() and enables binding of object instances - to class methods through bind() (Reported by Jeff Franks). - * tests/test_bind.cc: Test binding object instances to - class methods through bind(). - * sigc++/adaptors/adaptors.h: Include retype[_result].h. - * sigc++/adaptors/macros/adaptor_trait.h.m4: - - Add documentation. - - Mark some c-tors as explicit. - - Remove ununsed operator T_functor&() from adaptor_functor. - * sigc++/adaptors/macros/deduce_result_type.h.m4: - Rewrite parts of the documentation. - * sigc++/adaptors/macros/bind.h.m4: Add documentation. - * sigc++/functors/macros/mem_fun.h.m4: Remove unnecessary - explicit markers. Minor fixes to documentation. - * sigc++/functors/macros/functor_trait.h.m4: - Minor fixes to documentation. - -1.9.12: - -2003-11-04 Martin Schulze - - * configure.ac: Bump version number to 1.9.12. - * NEWS: Add ChangeLog summary for version 1.9.12. - -2003-11-03 Martin Schulze - - * sigc++/macros/signal.h.m4: Document accumulators. - Move slot_iterator_buf into namespace internal. Since - accumulators have the iterator type as a template argument - there is no need to expose this very internal type. - * sigc++/functors/macros/*.m4: Regroup documentation. - Documentation of the core parts of the library should be - complete by now. - -2003-11-02 Martin Schulze - - * Improve documentation of the core parts of the library. - * tests/test_ptr_fun.cc: Test ptr_fun() with static - member functions. - -2003-11-02 Martin Schulze - - * Move all .m4 files into new subdirectories - sigc++/[...]/macros. Install the .m4 files on - "make install" (Reported by Ron Steinke). - -2003-11-01 Martin Schulze - - * sigc++/[class,method,object]_slot.h.m4: Include - sigc++/functors/mem_fun.h (Reported by Ron Steinke). - -2003-11-01 Martin Schulze - - * sigc++/adaptors/lambda/operator.h.m4: Add negation - operator I have completely overlooked until now. - * sigc++/tests/test_lambda.cc: Test negation operator. - -2003-11-01 Martin Schulze - - * sigc++/[class_slot,method_slot,object_slot,hide].h.m4, - sigc++/signal.h.m4, sigc++/functors/mem_fun.h.m4: - - Use a shorter notation for ..._mem_function variants. - - Change order of mem_funcotr<>'s template arguments to - match std::mem_fun_t and to be more consistent with adaptors. - - Use ::sigc::slot's implicit ctor in compatibility module. - * sigc++/adaptors/lambda/operator.h.m4: Change some - lambda action names to match action names in std. - - API addition: - * sigc++/adaptors/retype.h.m4: New file adding - adaptor retype. - * sigc++/Makefile.am: Build and distribute new file. - * tests/test_retype.cc: New file testing adaptor retype. - * MSVC_Net2003/tests/test_retype/test_reytype.vcproj, - tests/Makefile.am: Build and distribute new test case. - -2003-11-01 Martin Schulze - - * MSVC_Net2003: New directory containing project - files for Visual Studio .Net 2003. - Credits to Roel Vanhout ! - -2003-11-01 Martin Schulze - - * sigc++/retype.h.m4: Use LIBSIGC_TEMPLATE_PREFIX - in explicit function template instantiations. - * sigc++/type_traits.h: Add template specialization - for arrays (T_type[N]) to disable non-working member - type_trait::instance(). - * sigc++/visit_each.h: Remove more disturbing - limit_derived_target<>::operator() overloads. - (Should have noticed earlier that they are unnecessary.) - * sigc++/adaptors/deduce_result_type.h.m4, - sigc++/adaptors/lambda/operator.h.m4, - sigc++/functors/functor_trait.h.m4, - tests/test_[bind,compose,exception_catch,hide,lambda].cc: - Completely removed support for typeof(). We don't need - it any more and it is completely non-standard! - -2003-10-30 Cedric Gustin - - * configure.ac: Added test of win32 platform. Commented - out AM_DISABLE_SHARED (DLLs are shared libraries). - * sigc++/Makefile.am: added a few LDFLAGS for win32 - DLLs. - -2003-10-30 Martin Schulze - - * sigc++/signal.h.m4: Add SigC::Signal#<>::slot(). - * sigc++/slot.h.m4: Comment out make_slot() work-around. - * sigc++/adaptors/bind.h.m4: Remove unnecessary brackets - in template argument lists. They are confusing MSVC. - * sigc++/adaptors/*.h.m4, sigc++/adaptors/lambda/*.h.m4: - Use LIBSIGC_TEMPLATE_PREFIX in explicit function - template instantiations. - * sigc++/tests/test_*.cc: - - Include where std::string is used. - - Use double instead of float. - -2003-10-27 Martin Schulze - - * sigc++/retype.h.m4: Cleanup. - * TODO: Bring it up to date. - -1.9.11: - -2003-10-26 Martin Schulze - - * configure.ac: Bump version number to 1.9.11. - * NEWS: Add ChangeLog summary for version 1.9.11. - -2003-10-26 Martin Schulze - - Compatiblity module: - * sigc++/signal.h.m4: Move definition of compatiblity - classes SigC::SignalN to here. - * sigc++/connection.h: - - Add connection::connected(). - - Add compatibility typedef SigC::Connection. - * sigc++/bind.h, sigc++/bind_return.h, - sigc++/class_slot.h.m4, sigc++/hide.h.m4, - sigc++/method_slot.h.m4, sigc++/object.h, - sigc++/object_slot.h.m4, sigc++/retype.h.m4, - sigc++/retype_return.h sigc++/slot.h.m4, - sigc++/compatibility.h: - New files to complete compatibility module. - Split content of compatibility.h.m4 among the new files. - * sigc++/compatibility.h.m4: Removed. - * Makefile.am: Build and distribute new files. - * tests/test_compatibility.cc: Test new stuff. - - Fixes: - * sigc++/functors/slot.h.m4: Fix copy constructor and - operator=() of slot template. - * sigc++/adaptors/bind.h.m4: Fix deduce_result_type - template specializations. bind<0>() probably compiles - with gcc-3.3, now. - -2003-10-26 Martin Schulze - - Fixes: - * sigc++/functors/slot.{cc,h.m4}: - - Fix notification process: don't defer detaching of a - slot from all referred trackables during signal emission! - - Size optimization: replace virtual functions from - struct typed_slot_rep with function pointers in slot_rep - (reduces size of a typical typed_slot_rep instantiation - by 30% !!!). - * tests/test_slot.cc: Test sigc::slot more thoroughly. - * sigc++/functors/mem_fun.h.m4: Fix visit_each(). - * sigc++/adaptos/bind_return.h.m4: Add support for - sigc::ref(). - * tests/test_bind_return.cc: Use sigc::ref(). - * sigc++/signal.h.m4: Avoid compiler warning about - uninitialized variable r_ in emit(). - * sigc++/visit_each.h: Cleanup. - - API additions: - * sigc++/adpators/lambda/operators.h.m4: Add - lambda actions sigc::{reinterpret,static,dynamic}_cast_ - to support explicit parameter conversion. - * tests/test_lambda.cc: Test sigc::static_cast_. - * sigc++/adaptors/retype_return.h.m4: New file adding - adaptor retype_return (and hide_return). - * sigc++/Makefile.am: Build and distribute new file. - * tests/test_retype_return.cc: New file testing - adaptor retype_return (and hide_return). - * tests/Makefile.am: Build and distribute new test case. - -2003-10-25 Martin Schulze - - * sigc++/visit_each.h: Remove disturbing - limit_derived_target<>::operator() overloads. - * sigc++/adaptors/bind.h.m4: Add support for sigc::ref(). - * tests/test_bind.cc: Test sigc::ref(). - * sigc++/adaptors/lambda/{operator,group,base}.h.m4: - - Move support for sigc::ref() from lambda_core<> into - lambda operator and lambda group creator functions. - - Add missing visit_each() overload for lambda<> template. - * tests/test_lambda.cc: Test auto-disconnection. - TODO: Fix a strange bug that leads to "Bus error" - during auto-disconnection. - -1.9.10: - -2003-10-23 Martin Schulze - - * configure.ac: Bump version number to 1.9.10. - * NEWS: Add ChangeLog summary for version 1.9.10. - -2003-10-23 Martin Schulze - - * sigc++/functors/{functor_trait,slot}.h.m4: - Move definition of struct nil into functor_trait.h. - -2003-10-23 Martin Schulze - - * configure.ac: Disable typeof() compiler checks. - * sigc++/adaptors/bind.h.m4: Remove unnecessary - deduce_result_type<> template specializations. - -2003-10-20 Martin Schulze - - * sigc++/adaptors/compose.h.m4: - Correct order of typedefs for good. (Patch from Jeff Franks.) - -1.9.9: - -2003-10-20 Martin Schulze - - * sigc++/connection.h: Add constructor that takes - a sigc::slot_base& to support 3rd-party slot lists - like they are used in glibmm/gtkmm. - * sigc++/functors/slot.h.m4: Make sigc::slot::call_type public. - (Fixes compile problems reported by Jeff Franks.) - * sig++/type_traits.h: Don't use long long in - sigc::is_base_and_derived. - (Fixes compile problems reported by Jeff Franks.) - * sigc++/adaptors/{bind,compose,hide,exception_catch}.h.m4: - Correct order of typedefs. (Repoted by Jeff Franks.) - * configure.ac: Bump version number to 1.9.9. - * NEWS: Add ChangeLog summary for version 1.9.9. - -1.9.8: - -2003-10-19 Martin Schulze - - * sigc++/functors/slot.h.m4: Define doxygen group functors. - * configure.ac: Bump version number to 1.9.8. - * NEWS: Add ChangeLog summary for version 1.9.8. - -2003-10-19 Martin Schulze - - * NEWS: Add announces of versions 1.9.6 and 1.9.7. - * sigc++/compatibility.h.m4: New file. Defines namespace SigC. - namespace SigC should be API compatible to libsigc++-1.2. - * sigc++/Makefile.am: Build compatibility.h. - * tests/test_compatibility.cc, tests/Makefile.am: - Add test case for compatibility module. - * docs/index.html: Change group names. - * sigc++/sigc++.h: Include connection.h. - * sigc++/connection.{cc,h}: - - Rename dependency to destroy_notify_callback. - - Change parameter name in set_slot() from d to data. - - Fix operator=(): Add "return *this;" - - Get rid of namespace functor. - - Corrections in documentation. - * sigc++/signal.{cc,h.m4}: - - Add reference counter to signal_impl. Replaces "bool destroy_". - - Move signal_base, slot_iterator[_buf], slot_list out of - namespace internal. They are part of the public API. - - Add convenience function signal#::make_slot(). - - Get rid of namespace functor. - - Corrections in documentation. - * sigc++/trackable.{cc,h}: - - Rename dependency to destroy_notify_callback. - - Rename trackable::clear() to trackable::notify_callbacks(). - - Corrections in documentation. - * sigc++/type_traits.h: Add documentation. - * sigc++/visit_each.h: - - Get rid of namespace functor. - - Add documentation. - * sigc++/adaptors[/lambda]/*: Get rid of namespace functor. - * sigc++/functors/{functor_trait.h,ptr_fun.h.m4,mem_fun.h.m4}: - - Get rid of namespace functor. - - Corrections in documentation / add documentation. - * sigc++/functors/slot.{cc,h.m4}: - - Move slot_base out of namespace internal. It's public API. - - Get rid of one-letter-parameter-names. - - Get rid of namespace functor. - - Corrections in documentation. - * tests/*.cc: Get rid of "using namespace ...". - -2003-09-10 Martin Schulze - - * sigc++/adaptors/lambda/{base,operators}.h.m4: - Add subscript ([]) and assign (=) operator. I think there are now - enough operators available to make any future power user happy. - The only one missing is the comma operator and if we added it - the logical consequence would be to also add if(), switch(), do(), - etc. lambda expressions which are really out of place in libsigc++. - * sigc++/type_traits.h: Fix is_base_and_derived<> for const types. - * tests/test_lambda.cc: Test new operators. - -1.9.7: - -2003-09-05 Martin Schulze - - * configure.ac: Bump version number to 1.9.7. - -2003-09-03 Martin Schulze - - * sigc++/adaptors/lambda/operator.h.m4: - - Restructure so that the size of the generated source file stays - reasonable for 34 operators: There are only two lambda templates - lambda_operator and lambda_operator_unary. The action is an additional - template parameter. A small template lambda_action[_unary] is specialized - for all actions. - - Add most operators that boost::lambda supports. Missing operators are - "=", "[]", "," and support for pointer arithmetic. I don't know if it's - worth adding these. In libsigc++, the purpose of lambda operators is to - provide some extra functionality for the group adaptor. - * tests/test_lambda.cc: - Test pre-increment, address and dereference operator. - -2003-08-31 Martin Schulze - - * sigc++/reference_wrapper.h, sigc++/type_traits.h, sigc++/Makefile.am: - New file reference_wrapper.h provides ref() to specify that adaptors/lambdas - should take a reference to the object passed into ref() instead of a copy. - * tests/test_lambda.cc: - - Test group() with mem_fun(). - - Use ref() where lambdas should store references to objects. - - Test var() and constant(). - * sigc++/adaptors/lambda/base.h.m4: - - Support ref() in return type deduction. - - Add var() and constant() which create lambdas for usage with lambda operators. - * sigc++/adaptors/lambda/operator.h.m4: - - Fix return type deduction. - - Remove operator{+,-,*,...} overloads added on 2003-08-29. ref() is way cleaner. - * sigc++/adaptors/lambda/group.h.m4, - sigc++/adaptors/bind.h.m4, sigc++/adaptors/compose.h.m4, - sigc++/adaptors/exception_catch.h.m4, sigc++/adaptors/hide.h.m4: - Fix return type deduction. - -2003-08-29 Martin Schulze - - * tests/test_lambda.cc: Add more tests. - * sigc++/adaptors/lambda/select.h.m4, sigc++/adaptors/lambda/lambda.cc.m4: - Make _1, _2, ... constant. - * sigc++/adaptors/lambda/operator.h.m4: - Add operator{+,-,*,...} overloads to distinguish between const and non-const objects. - Store references to non-const objects rather than copies. - This allows expressions like e.g. std::cout << _1. - * sigc++/adaptors/lambda/base.h.m4, sigc++/adaptors/lambda/group.h.m4: - Remove void specializations. Functors returning void are tested and work fine. - -2003-08-27 Martin Schulze - - * tests/test_callof.cc, tests/test_deduce_result_type.cc: - Rename, correct and improve this test case. - * tests/Makefile.am: Build and run test_deduce_result_type - instead of test_callof. - -2003-08-27 Martin Schulze - - * Update TODO. - -2003-08-27 Martin Schulze - - * sigc++/adaptors/hide.h.m4: Remove usage of callof_ignore_arg<>. - * sigc++/callof.h.m4, sigc++/adaptors/deduce_result_type.h.m4, - sigc++/functors/functor_trait.h.m4: - Remove the first and move deduce_result_type templates from - functor_trait.h.m4 into new file deduce_result_type.h.m4. - * sigc++/Makefile.am, sigc++/sigc++.h, sigc++/adaptors/adaptor_trait.h.m4: - Build and include sigc++/adaptors/deduce_result_type.h instead of callof.h. - * sigc++/functors/slot.h.m4: Document struct nil. - -2003-08-24 Martin Schulze - - * sigc++/functors/functor_trait.h.m4: Simplify usage of convenience - macro SIGC_FUNCTORS_HAVE_RESULT_TYPE: - namespace sigc{ namespace functor{ SIGC_FUNCTORS_HAVE_RESULT_TYPE }} - -2003-08-24 Martin Schulze - - * sigc++/functors/functor_trait.h,m4, sigc++/adaptors[/lambda]/*.h.m4: - Merge adaptor return type deduction and typeof() into - sigc::functor::deduce_result_type. Use it for all adaptors. - * tests/test_compose.cc: Only test multi-type get-functor if - typeof() if supported. - -2003-08-24 Martin Schulze - - * sigc++/adaptors[/lambda]/*.h.m4: - - Remove unnecessary void specializations. In fact, only the one - for sigc::functor::exception_catch<> is needed and I don't really - understand why. For the lambda stuff the void specializatoins are - just commented out at the moment. - - Make typeof() optional. Surprisingly, I got the lambda stuff working - without typeof()! The test suite doesn't catch all cases yet, so maybe - some thing are still not working. - TODO: Implement configure check. - * tests/test_bind.cc, tests/test_compose.cc tests/test_exception_catch.cc, - tests/test_hide.cc, tests/test_lambda.cc: - Only test multiple functor return types if typeof() is supported. - -2003-08-06 Martin Schulze - - * sigc++/trackable.{cc,h}: Add function trackable::clear(). - -2003-06-24 Andreas Rottmann - - * TODO: Minor tweaks. - -2003-06-23 Andreas Rottmann - - * docs/reference/Doxyfile.in: Use these variables. - * docs/reference/Makefile.am (html/index.html): Provide doxygen - with SRCDIR and TOP_SRCDIR environment variables. - - * sigc++/functors/slot.h.m4: Make slot::call_type typedef public; - this fixes a g++ 3.3 error in signal.h. - - * sigc++/signal.h.m4: Make the signal::accumulated class public; - this fixes a g++ 3.3 error in test_accumulated.cc. - -2003-06-15 Martin Schulze - - * sigc++/functor/slot.h.m4: Correct typing error in docs. - * sigc++/functor/ptr_fun.h.m4: Document the whole thing. - -2003-05-31 Murray Cumming - - * Reference documentation: Rearranged the groups to make it all - a bit more like the libsigc++ 1.2 reference documentation. - Corrected some spelling and grammar too. - This needs a lot of work. The text is very hard to read and it's - generally not appropriate for a user of the code who doesn't - care about the internals. But it's not impossible - our examples - should show us what we need to say in the documentation. - We probably need some more groups for the extra stuff, like we do - in libsigc++ 1.2. - -2003-05-29 Martin Schulze - - * sigc++/signal.h.m4: Fix documentation. - * sigc++/connection.h, sigc++/functor/slot.h.m4: - Document the whole thing. - -2003-05-29 Martin Schulze - - * sigc++/signal.h.m4: - - Remove bogus operator() from unnumbered signal<> and - signal<>::accumulated templates. - - Document the whole thing. - - * docs/index.html: Fix some links. - -2003-04-06 Martin Schulze - - * TODO, configure.ac, Makefile.am, docs/*: - Add Doxygen framework. - -2003-04-06 Martin Schulze - - * sigc++/callof.h.m4, sigc++/adaptors/*, tests/test_callof.cc: - Move sigc::callof<> to sigc::functor::internal::callof<>. - - * sigc++/functors/mem_fun.h.m4, tests/test_mem_fun.cc: - Add new types [bound_][const_]volatile_mem_functor, visit_each() - and mem_fun() overloads for volatile qualifier. - Add ctor overloads in bound_*mem_functor and mem_fun() overloads - that take reference instead of pointer. - -2003-03-26 Martin Schulze - - * Change "closure" to "slot" throughout sigc++2 (file names, - class names, member variables, documentation, etc.). - -2003-03-26 Martin Schulze - - * TODO: Rewrite to reflect recent changes as well as recent discussions. - -2003-03-24 Martin Schulze - - * sigc++/adaptors/bind_return.h.m4: Make the adaptor's data member - public so that visit_each() can access it. - - * sigc++/adaptors/lambda/*.h.m4: More fixes. Add a note about - malfunctioning typeof() (probably compiler bug in gcc-3.2). - - * tests/*.cc: Test references. Fix compose equivalent in test_lambda. - -2003-03-24 Martin Schulze - - * sigc++/Makefile.am, sigc++/functors/functor_trait.h[.m4], - sigc++/adaptors/adaptor_trait.h.m4: Move detection of function - and member method pointers' return types from adaptor_trait into - functor_trait. (We'll use functor_trait rather than adaptor_trait for - our lambda stuff.) functor_trait.h needs to be generated from .m4 now. - - * sigc++/functors/functor_trait.h.m4: Add convenience macros: - - SIGC_FUNCTORS_HAVE_RESULT_TYPE indicates that the existance of - T_functor::result_type should be assumed for all unknown functors. - - SIGC_FUNCTOR_TRAIT(T_functor, T_result) explicitly specifies the - result type of a functor. - ("typename functor_trait::result_type") is used to - determine the return type of our adaptors' operator()() overloads. - - * sigc++/adaptors/[lambda/]*.h.m4: Various fixes in visit_each() and - operator()() overloads to make these operator()() overloads usable. - Most of them were just commented out before. Some adaptor types also - have void specializations, now. - - * sigc++/adaptors/lambda/group.h.m4: Change syntax from - "[some_functor] % grp([args])" to "group([some_functor], [args])" - like we agreed on the ml some time ago. - - * sigc++/tests/test_[all adaptors].cc: Test stuff that didn't work - before. - -2003-03-22 Murray Cumming - - * Added pgk-config file, from a mystery person in bug #108857 - -2003-03-22 Martin Schulze - - * tests/test_bind.cc: Test and show how to use functor_trait - for user defined or 3rd-party functors so that a - bind<0>([functor],[arg1])() call with no arguments can return a value. - -2003-03-20 Martin Schulze - - * sigc++/callof.h.m4: Add explanations. Comment in / create templates - callof_safe[#]. Unfortunately they don't work for functors with overloaded - operator() so we don't use it for now. At least everything is documented. - - * sigc++/functors/functor_trait.h, sigc++/functors/*.h.m4: Add back - functor_base compiler hint. We're using it now in adaptor_functor<>. - - * sigc++/adaptors/{adaptor_trait,bind}.h.m4: Make operator() overloads - with no arguments return the result of the functor invocation. - Fix multiple bind<0>(). - * tests/test_bind.cc: Test the stuff that's working now. - -2003-03-16 Murray Cumming - - * Added sigc++/sigc++.h, like in libsigc++ 1.2 - * examples: Added member_method example, which uses a class method - and which demonstrates disconnection. - -1.9.6: - -2003-03-11 Andreas Rottmann - - * sigc++/Makefile.am: Use substitution references instead of - $(patsubst). Is shorter and fixes the strange-dirs-in-dist-tarball - bug. - -2003-03-09 Martin Schulze - - * sigc++/connection.h: Add block() capability. - -2003-03-09 Martin Schulze - - * sigc++/signal.{cc,h.m4}: Add flag signal_impl::destroy_ - and function signal_impl::destroy(). Use them to defer - the destruction of the signal_impl object during signal - emission. - - * tests/test_disconnect.cc: Add tests for the connection - class and for deleting signals during emission. - -2003-03-09 Martin Schulze - - * sigc++/connection.{cc,h}, sigc++/Makefile.am: - - New files that add a connection class. Objects of this - class are constructed from closure list iterators and can - be used to disconnect the refered closure. As opposed to - iterators they stay valid beyond the lifetime of the closure. - -2003-03-09 Martin Schulze - - * sigc++/functors/closure.{cc,h.m4}, sigc++/signal.cc: - - Rename closure_{base,rep}::[set_]dependency_ -> [set_]parent_. - - Make closure_rep inherit trackable. This allows for - connection objects that stay valid beyond the life time - of the refered closure. - - Make some one-line-functions inline again. - -2003-03-08 Martin Schulze - - * sigc++/trackable.cc: BUGFIX in trackable_dep_list::clear() - -2003-03-08 Andreas Rottmann - - * sigc++/Makefile.am: Rewritten so we can build lambda cleanly. - * sigc++/Makefile.am_fragment: Removed. - - * sigc++/functors/Makfile.am: Removed. - * sigc++/adaptors/Makefile.am: Removed. - * sigc++/adaptors/lambda/Makefile.am: Removed. - * configure.ac (AC_OUTPUT): Remove the above Makefiles. - - * tests/Makefile.am: Re-included lambda test. - -2003-03-07 Martin Schulze - - * sigc++/signal.{cc,h.m4}: - - signal_emit#<>: New templates replacing signal#<>::caller. - The purpose of these templates is implementing the emit - function and optimizing signal emission for the case that - no accumulator is used via template specializations. - - default_accumulator<>: Removed. The default for T_accumulator - in signal#<> now is nil. An example how to use accumulators - is available in tests/test_accumulator.cc. - - signal_{base,impl}: Move the implementation of signal_base's - interface to signal_impl. An object of this class is - dynamically allocated when first connecting a closure to - the signal. This drastically reduces the size of empty signals - and allows for future addition of a reference counter to make - it safe to delete a signal during emission. - - Directly work on closure_rep during signal emission. This - seems to be quicker than using the closure templates. - - Document the classes. Restructure the header file a bit. - - * sigc++/functors/closure.h.m4: Make closure_base::rep_ data - member public, so that signal emission can directly work on it. - - * tests/test_size.cc: Add an entry for signal_impl. - -2003-03-07 Martin Schulze - - * sigc++/functors/closure.{cc,h.m4}: - - closure_base: BUGFIXES in ~closure_base() and operator=(). - - Mark some functions with the inline keyword. This seems to - help gcc 3.2 to optimize signal emission and (dis)connection. - - Document the classes. Restructure the header file a bit. - -2003-03-07 Martin Schulze - - * sigc++/trackable.{cc,h}: Make trackable allocate a - trackable_dep_list object dynamically when adding the first - dependency. (This reduces the size of objects, that are not - refered by a closure by 4 bytes (50%) and increases the size - of objects that are refered by a closure by 4 bytes (50%) - on a 32 bit architecture => This reduces total memory use - when >50% of the trackables are not refered by a closure.) - Document the classes. - -2003-03-05 Martin Schulze - - * tests/Makefile.am, tests/test_size.cc, tests/test_accumulated.cc: - Add two test cases. test_size is showing the size of public and - internal structures. (Which apart from empty signals are smaller - than the sizes of the equivalent libsigc++-1.2 structures.) - test_accumulated is a test for the template signal<>::accumulated<> - at the same time showing the use of accumulators in libsigc++2. - - * Offtopic: My note about binary sizes from 2003-02-10 is wrong. - Stripped libsigc++2 test binaries are about 8-10k in size. - -2003-03-05 Martin Schulze - - * sigc++/visit_each.h: BUGFIX in template specialization - limit_derive_target::with_type: - Add non-const overloads for static void execute_() avoiding - compile time errors. - -2003-02-16 Martin Schulze - - * tests/Makefile.am, tests/test_disconnect.cc: - Add testcase with a mixed connection & disconnection sequence. - -2003-02-16 Martin Schulze - - * sigc++/signal.cc: Bugfix in signal_base::insert(): - Set notification function in the newly created copy of - slot_ rather than in slot_ itself. - -2003-02-10 Martin Schulze - - * sigc++/signal.h.m4: Comment in typedefs for iterator types in - the signal#<> class template. Make signal#<>::connect() return an - iterator for convenience. - (Note that the first change increases the binary size of - tests/test_signal from 201k to 204k, the second change to 206k.) - -2003-01-23 Murray Cumming - - * sigc++/adaptors/lambda is disable temporarily (not built and - not distributed) because it gets built before its parent - directory, but #includes generated sources in the parent directory. - -2003-01-22 Murray Cumming - - * Added Andreas Rottman's example. - -2003-01-22 Murray Cumming - - * Applied Andreas Rottman's make dist fixes. - -2003-01-14 Murray Cumming - - * Added whitespace to make the code more readable. - diff --git a/libs/sigc++2/INSTALL b/libs/sigc++2/INSTALL deleted file mode 100644 index a4b34144dc..0000000000 --- a/libs/sigc++2/INSTALL +++ /dev/null @@ -1,229 +0,0 @@ -Copyright 1994, 1995, 1996, 1999, 2000, 2001, 2002 Free Software -Foundation, Inc. - - This file is free documentation; the Free Software Foundation gives -unlimited permission to copy, distribute and modify it. - -Basic Installation -================== - - These are generic installation instructions. - - 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 only 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. If you're - using `csh' on an old version of System V, you might need to type - `sh ./configure' instead to prevent `csh' from trying to execute - `configure' itself. - - Running `configure' takes awhile. 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. - - 4. Type `make install' to install the programs and any data files and - documentation. - - 5. 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. - -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=c89 CFLAGS=-O2 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 must use a version of `make' that -supports the `VPATH' variable, such as 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 `..'. - - If you have to use a `make' that does not support the `VPATH' -variable, you have 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. - -Installation Names -================== - - By default, `make install' will install the package's files in -`/usr/local/bin', `/usr/local/man', etc. You can specify an -installation prefix other than `/usr/local' by giving `configure' the -option `--prefix=PATH'. - - You can specify separate installation prefixes for -architecture-specific files and architecture-independent files. If you -give `configure' the option `--exec-prefix=PATH', the package will use -PATH as the prefix for installing programs and libraries. -Documentation and other data files will still use the regular prefix. - - In addition, if you use an unusual directory layout you can give -options like `--bindir=PATH' 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. - - 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'. - -Optional Features -================= - - 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. - -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 `--target=TYPE' option 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 - -will cause the specified gcc to be used as the C compiler (unless it is -overridden in the site shell script). - -`configure' Invocation -====================== - - `configure' recognizes the following options to control how it -operates. - -`--help' -`-h' - Print a summary of the options to `configure', and exit. - -`--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. - -`configure' also accepts some other, not widely useful, options. Run -`configure --help' for more details. - diff --git a/libs/sigc++2/Makefile.am b/libs/sigc++2/Makefile.am deleted file mode 100644 index 03d67389c6..0000000000 --- a/libs/sigc++2/Makefile.am +++ /dev/null @@ -1,30 +0,0 @@ - -# it includes all the autostuff automatically, you just name the -# other stuff here -EXTRA_DIST = autogen.sh sigc++config.h.in libsigc++-2.0.spec.in -# ACLOCAL_FLAGS = -I scripts - -SUBDIRS = sigc++ -DIST_SUBDIRS = $(SUBDIRS) - -sigc_configdir = $(libdir)/sigc++-2.0/include -sigc_config_DATA = sigc++config.h - -pkgconfigdir = $(libdir)/pkgconfig -pkgconfig_DATA = sigc++-2.0.pc - -all-local: - @echo "*** Everything completed ***" - -dist-hook: - @echo; echo; \ - echo "**********************************************************"; \ - echo "* IMPORTANT NOTICE: *"; \ - echo "* *"; \ - echo "* Be sure you have done a complete build before running *"; \ - echo "* 'make dist' or 'make distcheck', because otherwise *"; \ - echo "* the tarball will _not_ contain the dependency rules *"; \ - echo "* generated by the compiler. *"; \ - echo "**********************************************************"; \ - echo; echo \ - cp libsigc++-2.0.spec $(distdir) diff --git a/libs/sigc++2/NEWS b/libs/sigc++2/NEWS deleted file mode 100644 index 83c29f5626..0000000000 --- a/libs/sigc++2/NEWS +++ /dev/null @@ -1,232 +0,0 @@ -*** libsigc++ 2.0: - -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. - -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 with a simpler and more powerful API. - -This version of libsigc++ needs GNU g++ 3.2 or higher to compile. - - -*** ChangeLog summary: - -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". diff --git a/libs/sigc++2/README b/libs/sigc++2/README deleted file mode 100644 index f90f8f055a..0000000000 --- a/libs/sigc++2/README +++ /dev/null @@ -1,72 +0,0 @@ -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 about the major release 2.0 is available on the - libsigc++ project home page: http://libsigc.sourceforge.net/ - - -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: - Maintainer: mailto: mschulze@cvs.gnome.org - Maillist: mailto: libsigc-list@gnome.org - Homepage: http://libsigc.sourceforge.net - Online reference documentation: http://libsigc.sourceforge.net/libsigc2/docs/ - Ftp: http://ftp.gnome.org/pub/GNOME/sources/libsigc++/2.0/ - CVS: - - -Overview of the distribution: - - docs/ documentation on the signal system - docs/reference/ reference documentation - - examples/ examples of various signal functions - - sigc++/ source for library - sigc++/macros/ .m4 files used to auto-generate source files - sigc++/functors/ source for library (various functors) - sigc++/functors/macros/ .m4 files used to auto-generate source files - sigc++/adaptors/ source for library (various adaptors) - sigc++/adaptors/macros/ .m4 files used to auto-generate source files - sigc++/adpators/lambda/ source for library (lambda library) - sigc++/adpators/lambda/macros/ .m4 files used to auto-generate source files - - scripts/ automake junk - - tests/ programs testing and verifying proper behaviour - - MSVC_Net2003/ project files for building the library with MSVC .NET 2003 - - -Compatibility: - - Compatible compilers must supports the following recent c++ techniques: - * Partial template (function) specialization. - * Explicit template (member) function instantiation. - * Treat void return as normal return. - - This release has only been tested with gcc-3.3. It should at least also compile with: - * gcc >= 3.2 - * cygwin (gcc >= 3.2) - * mingw32 - * Microsoft Visual Studio .Net 2003 - * Sun Forte C++ compiler >= 5.5 - * Compaq C++ compiler - * Intel compiler - Please report any troubles you encounter with these compilers! - You are also invited to try a compiler that is not listed above. diff --git a/libs/sigc++2/SConscript b/libs/sigc++2/SConscript deleted file mode 100644 index cb98513bfc..0000000000 --- a/libs/sigc++2/SConscript +++ /dev/null @@ -1,41 +0,0 @@ -# -*- python -*- - -import os -import os.path -import glob - -sigc2_files = glob.glob('sigc++/*.cc') + glob.glob('sigc++/functors/*.cc') + glob.glob('sigc++/adaptors/lambda/*.cc') - -Import('env install_prefix') -sigc2 = env.Copy() - -libsigc2 = sigc2.SharedLibrary('sigc++2', sigc2_files) - -if os.access ('autogen.sh', os.F_OK) : - sigc2_configure_script = sigc2.Command ('configure', 'configure.ac', 'cd libs/sigc++2 && ./autogen.sh && cd -', ENV=os.environ) - sigc2_config_h = sigc2.Command('sigc++config.h', [sigc2_configure_script, 'sigc++config.h.in'], 'cd libs/sigc++2 && ./configure && cd -', ENV=os.environ) -else : - sigc2_config_h = sigc2.Command('sigc++config.h', ['configure', 'sigc++config.h.in'], 'cd libs/sigc++2 && ./configure && cd -', ENV=os.environ) - - -Default([sigc2_config_h,libsigc2]) - -env.Alias('install', env.Install(os.path.join(install_prefix, env['LIBDIR'], 'ardour3'), libsigc2)) - -env.Alias('tarball', env.Distribute (env['DISTTREE'], - [ 'NEWS', 'README', 'AUTHORS', 'ChangeLog', - 'configure', 'configure.ac', 'Makefile.am', 'SConscript', - 'sigc++/Makefile.in', - 'sigc++config.h', - 'sigc++config.h.in', - 'sigc++-2.0.pc.in', - 'libsigc++-2.0.spec.in', - 'install-sh', - 'Makefile.in', - 'scripts', - 'missing', - ] + sigc2_files + - glob.glob('sigc++/*.h') + - glob.glob('sigc++/functors/*.h') + glob.glob('sigc++/adaptors/lambda/*.h') + - glob.glob('sigc++/adaptors/*.h') - )) diff --git a/libs/sigc++2/TODO b/libs/sigc++2/TODO deleted file mode 100644 index 7ea792aeb0..0000000000 --- a/libs/sigc++2/TODO +++ /dev/null @@ -1,66 +0,0 @@ -Compatibility: - -- Fix compilation for SUN FORTE C++ 5.5. - - -Configure checks and Makefile issues: - -- When you use a single Makefile.am for - several directories (in sigc++2, all under sigc++/ is ruled by a - single Makefile.am with the new build system), you have a problem when - you do a build where $(srcdir) != $(builddir), since in the build-tree - the necessary subdirectories are not created. So I have to find a - place where to create this directories, in case they do not exist. - This is only an issue for clean CVS checkouts, however (Andy) - - -sigc++-1.2 compatibility: - -- Verify completeness. - - -documentation: - -- Improve documentation: Make groups (see index.html). Exclude stuff to make - the html output readable. - -- Add documentation for adaptors and accumulators. - - -basic functionality: - -- I don't understand what is meant by "stl-pointer-like functions" (Martin): - - slot should have the full set of stl pointer like functions. (Karl Nelson) - - -lambda functionality (I don't understand this (Martin)): - -- Add support for _R to force references down into - the stack frame of lambda. Ie. - - A a; - (_1+_2)(1,a); // fail if no "operator int() const" - -- Call groups in lambda. (Huh, that appears to be in group?) - - -Old TODO's that should be almost finished (Martin): - -- Fine-tooth comb the code looking for missing operator =() function - and missing copy constructors. - -- Improve and expand the test suite. There are a lot of combinations which - should be valid but haven't been tested which are likely to result in - wierd compiler errors if something wasn't done consistantly. - - -Old TODO's that should be finished (Martin): - -- Improve signal#, it currently is just barely functional. -- Add iterator support and stl like functionality to signal. - -- Add blocking capablity to slot. - -- Deinline/move to .cc where possible to move functions into the - library to reduce resulting binary size. diff --git a/libs/sigc++2/autogen.sh b/libs/sigc++2/autogen.sh deleted file mode 100755 index 09597765c6..0000000000 --- a/libs/sigc++2/autogen.sh +++ /dev/null @@ -1,39 +0,0 @@ -#! /bin/sh - -# check all tools first - -if /usr/bin/which libtoolize >/dev/null 2>&1 ; then - : -else - echo "You do not have libtool installed, which is very sadly required to build part of Ardour" - exit 1 -fi -if /usr/bin/which automake >/dev/null 2>&1 ; then - : -else - echo "You do not have automake installed, which is very sadly required to build part of Ardour" - exit 1 -fi -if /usr/bin/which autoconf >/dev/null 2>&1 ; then - : -else - echo "You do not have autoconf installed, which is very sadly required to build part of Ardour" - exit 1 -fi - -srcdir=`dirname $0` -test -z "$srcdir" && srcdir=. - -#echo "Adding libtools." -#libtoolize --automake --copy --force - -echo "Building macros." -aclocal -I "$srcdir/scripts" $ACLOCAL_FLAGS - -echo "Building makefiles." -automake --add-missing --copy - -echo "Building configure." -autoconf - -rm -f config.cache diff --git a/libs/sigc++2/configure.ac b/libs/sigc++2/configure.ac deleted file mode 100644 index 3cb4724ba5..0000000000 --- a/libs/sigc++2/configure.ac +++ /dev/null @@ -1,64 +0,0 @@ -dnl Configure.in -dnl -dnl Source for generating compiler independent libraries. -dnl - -dnl INIT is required name a file which is unique to the package -dnl just to prevent someone from copying the configure to the wrong package. -AC_INIT(sigc++) - -dnl This version stuff is just for the packaging section of the tool. -dnl thus make format_package-0.0.1.tar.gz -FP_MAJOR_VERSION=2 -FP_MINOR_VERSION=0 -FP_MICRO_VERSION=6 -FP_VERSION=$FP_MAJOR_VERSION.$FP_MINOR_VERSION.$FP_MICRO_VERSION - -dnl For automake. -VERSION=$FP_VERSION -PACKAGE=libsigc++ - -dnl Initialize automake stuff -AM_INIT_AUTOMAKE($PACKAGE, $VERSION) - -dnl Specify a configuration file: -AC_CONFIG_HEADER(sigc++config.h) - -dnl disable autoheader -AUTOHEADER=':' - -dnl Maintainer support (autodependencies and packaging) -AM_MAINTAINER_MODE - -dnl Using C compiler -AC_PROG_CC -AC_PROG_CPP - -dnl Using libtool -AC_CONFIG_MACRO_DIR(scripts) -dnl LT_INIT -dnl AM_PROG_LIBTOOL - -dnl Using C++ compiler -AC_PROG_CXX -AC_LANG_CPLUSPLUS - -SIGC_CXX_GCC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD() - -if test "X$config_error" = "Xyes" ; then - AC_ERROR( -[One or more of the required compiler features is missing. -If you believe this is in error, please consult the config.log file -for further details. -]) -fi - - -# Generate output -AC_OUTPUT([ - Makefile - sigc++-2.0.pc - - sigc++/Makefile - libsigc++-2.0.spec -]) diff --git a/libs/sigc++2/libsigc++-2.0.spec.in b/libs/sigc++2/libsigc++-2.0.spec.in deleted file mode 100644 index 7dc756c6ce..0000000000 --- a/libs/sigc++2/libsigc++-2.0.spec.in +++ /dev/null @@ -1,91 +0,0 @@ -Summary: The Typesafe Signal Framework for C++ -Name: @PACKAGE@ -Version: @VERSION@ -Release: 1 -License: LGPL -Group: System Environment/Libraries -Packager: Eric Bourque -URL: http://libsigc.sourceforge.net/ -Source0: http://ftp.gnome.org/pub/GNOME/sources/libsigc++/2.0/%{name}-%{version}.tar.bz2 -BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root - -%description - -This library implements a full callback system for use in widget -libraries, abstract interfaces, and general programming. Originally -part of the Gtk-- widget set, %name is now a seperate library to -provide for more general use. It is the most complete library of its -kind with the ablity to connect an abstract callback to a class -method, function, or function object. It contains adaptor classes for -connection of dissimilar callbacks and has an ease of use unmatched by -other C++ callback libraries. - -Package GTK-- (gtkmm), which is a C++ binding to the GTK+ library, -starting with version 1.1.2, uses %name. - -Due to C++ ABI changes, this will only work with the gcc version which -the distribution was supplied with. If you got your rpm from any -previous version, please rebuild from spec! - -%package devel -Summary: Development tools for the Typesafe Signal Framework for C++ -Group: Development/Libraries -Requires: %name = %version - -%description devel -The %name-devel package contains the static libraries and header files -needed for development with %name. - -%package examples -Summary: Examples and tests for the Typesafe Signal Framework for C++ -Group: Development/Libraries -Requires: %name-devel = %version - -%description examples -The %name-devel package contains source code of -example and test programs for %name. - - -%prep -%setup -q - -%build -./configure --prefix=/usr -make - -%install -rm -rf $RPM_BUILD_ROOT -make DESTDIR=$RPM_BUILD_ROOT install -mkdir -p -m 755 $RPM_BUILD_ROOT/%{_libdir}/sigc++-2.0 -cp -a examples tests $RPM_BUILD_ROOT/%{_libdir}/sigc++-2.0 - -%post -p /sbin/ldconfig - -%postun -p /sbin/ldconfig - -%clean -rm -rf $RPM_BUILD_ROOT - - -%files -%defattr(-,root,root,-) -%{_libdir}/libsigc*.so* -%doc /usr/share/doc/libsigc-2.0 - -%files devel -/usr/include/sigc++-2.0 -%{_libdir}/pkgconfig/* -%{_libdir}/libsigc*.a -%{_libdir}/libsigc*.la -%dir %{_libdir}/sigc++-2.0 -%dir %{_libdir}/sigc++-2.0/include -%{_libdir}/sigc++-2.0/include/sigc++config.h - -%files examples -%{_libdir}/sigc++-2.0/examples -%{_libdir}/sigc++-2.0/tests - -%changelog -* Tue Jun 29 2004 Eric Bourque - 2.0-1 -- Initial build. - diff --git a/libs/sigc++2/scripts/cxx.m4 b/libs/sigc++2/scripts/cxx.m4 deleted file mode 100644 index 8753b53827..0000000000 --- a/libs/sigc++2/scripts/cxx.m4 +++ /dev/null @@ -1,94 +0,0 @@ -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_TRY_COMPILE( -[ - #include - - class Thing - { - public: - Thing() - {} - - template - void operator()(T a, T b) - { - T c = a + b; - std::cout << c << std::endl; - } - }; - - template - class OtherThing - { - public: - void do_something() - { - Thing thing_; - thing_.template operator()(1, 2); - //This fails with or without the template keyword, on SUN Forte C++ 5.3, 5.4, and 5.5: - } - }; -], -[ - OtherThing 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.]) - AC_MSG_RESULT([$sigcm_cxx_gcc_template_specialization_operator_overload]) -],[ - 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_TRY_COMPILE( -[ - #include - - class Thing - { - public: - Thing() - {} - - template - void operator()(T a, T b) - { - T c = a + b; - std::cout << c << std::endl; - } - }; - - template - class OtherThing - { - public: - void do_something() - { - Thing thing_; - thing_.operator()(1, 2); - //This fails with or without the template keyword, on SUN Forte C++ 5.3, 5.4, and 5.5: - } - }; -], -[ - OtherThing 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.]) - AC_MSG_RESULT([$sigcm_cxx_msvc_template_specialization_operator_overload]) -],[ - sigcm_cxx_msvc_template_specialization_operator_overload=no - AC_MSG_RESULT([$sigcm_cxx_msvc_template_specialization_operator_overload]) -]) -]) diff --git a/libs/sigc++2/scripts/libtool.m4 b/libs/sigc++2/scripts/libtool.m4 deleted file mode 100644 index 1ceda32823..0000000000 --- a/libs/sigc++2/scripts/libtool.m4 +++ /dev/null @@ -1,5767 +0,0 @@ -# libtool.m4 - Configure libtool for the host system. -*-Autoconf-*- - -m4_define([_LT_COPYING], [dnl -# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004 -# Free Software Foundation, Inc. -# -# This file is part of GNU Libtool: -# Originally by Gordon Matzigkeit , 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 of the License, 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, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -# -# 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. -]) - -# serial 49 LT_INIT - - -# LT_PREREQ(VERSION) -# ------------------ -# Complain and exit if this libtool version is less that VERSION. -m4_define([LT_PREREQ], -[m4_if(m4_version_compare(m4_defn([LT_PACKAGE_VERSION]), [$1]), -1, - [m4_default([$3], - [m4_fatal([Libtool version $1 or higher is required], - 63)])], - [$2])]) - - -# LT_INIT([OPTIONS]) -# -------------------------- -AC_DEFUN([LT_INIT], -[AC_PREREQ([2.58])dnl We use AC_INCLUDES_DEFAULT -dnl Autoconf doesn't catch unexpanded LT_ macros by default: -m4_pattern_forbid([^_?LT_[A-Z_]+$])dnl -m4_pattern_allow([^(_LT_EOF|LT_DLGLOBAL|LT_DLLAZY_OR_NOW)$])dnl -dnl aclocal doesn't pull ltoptions.m4, ltsugar.m4, or ltversion.m4 -dnl unless we require an AC_DEFUNed macro: -AC_REQUIRE([LTOPTIONS_VERSION])dnl -AC_REQUIRE([LTSUGAR_VERSION])dnl -AC_REQUIRE([LTVERSION_VERSION])dnl -AC_REQUIRE([_LT_PROG_LTMAIN])dnl -AC_BEFORE([$0], [LT_LANG])dnl - -# This can be used to rebuild libtool when needed -LIBTOOL_DEPS="$ltmain" - -# Always use our own libtool. -LIBTOOL='$(SHELL) $(top_builddir)/libtool' -AC_SUBST(LIBTOOL)dnl - -# Set options -_LT_SET_OPTIONS([$1])dnl - -_LT_SETUP - -# Only expand once: -m4_define([LT_INIT]) -])# _LT_INIT - -# Old names: -AU_DEFUN([AC_PROG_LIBTOOL], [LT_INIT]) -AU_DEFUN([AM_PROG_LIBTOOL], [LT_INIT]) - - -# _LT_SETUP -# --------- -m4_define([_LT_SETUP], -[AC_REQUIRE([AC_CANONICAL_HOST])dnl -AC_REQUIRE([AC_CANONICAL_BUILD])dnl -_LT_DECL([], [host_alias], [0], [The host system])dnl -_LT_DECL([], [host], [0])dnl -dnl -AC_REQUIRE([AC_PROG_CC])dnl -AC_REQUIRE([AC_PROG_LD])dnl -AC_REQUIRE([AC_PROG_LD_RELOAD_FLAG])dnl -AC_REQUIRE([AC_PROG_NM])dnl -dnl -AC_REQUIRE([AC_PROG_LN_S])dnl -test -z "$LN_S" && LN_S="ln -s" -_LT_DECL([], [LN_S], [1], [Whether we need soft or hard links])dnl -dnl -AC_REQUIRE([AC_DEPLIBS_CHECK_METHOD])dnl -AC_REQUIRE([AC_LIBTOOL_SYS_OLD_ARCHIVE])dnl -AC_REQUIRE([AC_LIBTOOL_SYS_MAX_CMD_LEN])dnl -AC_REQUIRE([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE])dnl -AC_REQUIRE([AC_OBJEXT])dnl -_LT_DECL([objext], [ac_objext], [0], [Object file suffix (normally "o")])dnl -AC_REQUIRE([AC_EXEEXT])dnl -_LT_DECL([], [exeext], [0], [Executable file suffix (normally "")])dnl -dnl - -_LT_CONFIG_LIBTOOL_INIT([ -# See if we are running on zsh, and set the options which allow our -# commands through without removal of \ escapes INIT. -if test -n "\${ZSH_VERSION+set}" ; then - setopt NO_GLOB_SUBST -fi -]) -if test -n "${ZSH_VERSION+set}" ; then - setopt NO_GLOB_SUBST -fi - -AC_LIBTOOL_OBJDIR - -AC_REQUIRE([_LT_AC_SYS_COMPILER])dnl -_LT_AC_PROG_ECHO_BACKSLASH - -case $host_os in -aix3*) - # AIX sometimes has problems with the GCC collect2 program. For some - # reason, if we set the COLLECT_NAMES environment variable, the problems - # vanish in a puff of smoke. - if test "X${COLLECT_NAMES+set}" != Xset; then - COLLECT_NAMES= - export COLLECT_NAMES - fi - ;; -esac - -# Sed substitution that helps us do robust quoting. It backslashifies -# metacharacters that are still active within double-quoted strings. -Xsed='sed -e s/^X//' -[sed_quote_subst='s/\([\\"\\`$\\\\]\)/\\\1/g'] - -# Same as above, but do not quote variable references. -[double_quote_subst='s/\([\\"\\`\\\\]\)/\\\1/g'] - -# Sed substitution to delay expansion of an escaped shell variable in a -# double_quote_subst'ed string. -delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' - -# Sed substitution to delay expansion of an escaped single quote. -delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g' - -# Sed substitution to avoid accidental globbing in evaled expressions -no_glob_subst='s/\*/\\\*/g' - -# Constants: -rm="rm -f" - -# Global variables: -default_ofile=libtool -ofile="$default_ofile" -can_build_shared=yes - -# All known linkers require a `.a' archive for static linking (except M$VC, -# which needs '.lib'). -libext=a - -with_gnu_ld="$lt_cv_prog_gnu_ld" - -old_CC="$CC" -old_CFLAGS="$CFLAGS" - -# Set sane defaults for various variables -test -z "$CC" && CC=cc -test -z "$LTCC" && LTCC=$CC -test -z "$LD" && LD=ld -test -z "$ac_objext" && ac_objext=o - -cc_basename=`$echo X"$compiler" | $Xsed -e 's%^.*/%%'` - -# Only perform the check for file, if the check method requires it -test -z "$MAGIC_CMD" && MAGIC_CMD=file -case $deplibs_check_method in -file_magic*) - if test "$file_magic_cmd" = '$MAGIC_CMD'; then - AC_PATH_MAGIC - fi - ;; -esac - -AC_ARG_ENABLE([libtool-lock], - [AC_HELP_STRING([--disable-libtool-lock], - [avoid locking (might break parallel builds)])]) -test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes - -# Use C for the default configuration in the libtool script -_LT_LANG_C_CONFIG -_LT_LANG_DEFAULT_CONFIG -_LT_CONFIG_COMMANDS -])# _LT_SETUP - - -# _LT_PROG_LTMAIN -# --------------- -# In libtool itself `ltmain.sh' is in the build tree, but everything else -# ships it in the source tree, for completeness, if we find a copy in the -# build tree use that before falling back to auxdir. -# -# Note that this code is called both from `configure', and `config.status' -# now that we use AC_CONFIG_COMMANDS to generate libtool. Notably, -# `config.status' has no value for ac_aux_dir unless we are using Automake, -# so we pass a copy along to make sure it has a sensible value anyway. -AC_DEFUN([_LT_PROG_LTMAIN], -[_LT_CONFIG_LIBTOOL_INIT([ac_aux_dir='$ac_aux_dir']) -case $ac_aux_dir in - $srcdir) ltmain=./ltmain.sh ;; - $srcdir/*) ltmain=`expr "$ac_aux_dir" : "$srcdir/\(.*\)"`/ltmain.sh ;; -esac -test -f "$ltmain" || ltmain="$ac_aux_dir/ltmain.sh" -])# _LT_PROG_LTMAIN - - - -## ------------------------------------- ## -## Accumulate code for creating libtool. ## -## ------------------------------------- ## - -# So that we can recreate a full libtool script including additional -# tags, we accumulate the chunks of code to send to AC_CONFIG_COMMANDS -# in macros and then make a single call at the end using the `libtool' -# label. - -# _LT_CONFIG_LIBTOOL_INIT([INIT-COMMANDS]) -# ---------------------------------------- -# Register INIT-COMMANDS to be passed to AC_CONFIG_COMMANDS later. -m4_define([_LT_CONFIG_LIBTOOL_INIT], -[m4_ifval([$1], - [m4_append([_LT_OUTPUT_LIBTOOL_INIT], - [$1 -])])]) - -# Initialize. -m4_define([_LT_OUTPUT_LIBTOOL_INIT]) - -# _LT_CONFIG_LIBTOOL([COMMANDS]) -# ------------------------------ -# Register COMMANDS to be passed to AC_CONFIG_COMMANDS later. -m4_define([_LT_CONFIG_LIBTOOL], -[m4_ifval([$1], - [m4_append([_LT_OUTPUT_LIBTOOL_COMMANDS], - [$1 -])])]) - -# Initialize. -m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS]) - - -# _LT_CONFIG_SAVE_COMMANDS([COMMANDS], [INIT_COMMANDS]) -# --------------------------------------------------- -m4_define([_LT_CONFIG_SAVE_COMMANDS], -[_LT_CONFIG_LIBTOOL([$1]) -_LT_CONFIG_LIBTOOL_INIT([$2]) -]) - - -# _LT_FORMAT_COMMENT([COMMENT]) -# ----------------------------- -# Add leading comment marks to the start of each line, and a trailing -# full-stop to the whole comment if one is not present already. -m4_define([_LT_FORMAT_COMMENT], -[m4_ifval([$1], [ -m4_bpatsubst([$1], [^ *], [# ])]m4_bmatch([$1], [[!?.]$], [], [.]) -)]) - - - -## ------------------------ ## -## FIXME: Eliminate VARNAME ## -## ------------------------ ## - -# _LT_DECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION], [IS-TAGGED?]) -# ------------------------------------------------------------------- -# CONFIGNAME is the name given to the value in the libtool script. -# VARNAME is the (base) name used in the configure script. -# VALUE may be 0, 1 or 2 for a computed quote escaped value based on -# VARNAME. Any other value will be used directly. -m4_define([_LT_DECL], -[lt_if_append_uniq([lt_decl_varnames], [$2], [[, ]], - [lt_dict_add_subkey([lt_decl_dict], [$2], [libtool_name], - [m4_ifval([$1], [$1], [$2])]) - lt_dict_add_subkey([lt_decl_dict], [$2], [value], [$3]) - m4_ifval([$4], - [lt_dict_add_subkey([lt_decl_dict], [$2], [description], [$4])]) - lt_dict_add_subkey([lt_decl_dict], [$2], - [tagged?], [m4_ifval([$5], [yes], [no])])]) -]) - - -# _LT_TAGDECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION]) -# -------------------------------------------------------- -m4_define([_LT_TAGDECL], [_LT_DECL([$1], [$2], [$3], [$4], [yes])]) - - -# lt_decl_tag_varnames([SEPARATOR], [VARNAME1...]) -# ------------------------------------------------- -m4_define([lt_decl_tag_varnames], -[_lt_decl_filter([tagged?], [yes], $@)]) -m4_define([_lt_decl_filter], -[m4_case([$#], - [0], [m4_fatal([$0: too few arguments: $#])], - [1], [m4_fatal([$0: too few arguments: $#: $1])], - [2], [lt_dict_filter([lt_decl_dict], [$1], [$2], [], lt_decl_varnames)], - [3], [lt_dict_filter([lt_decl_dict], [$1], [$2], [$3], lt_decl_varnames)], - [lt_dict_filter([lt_decl_dict], $@)])[]dnl -]) - - -# lt_decl_quote_varnames([SEPARATOR], [VARNAME1...]) -# --------------------------------------------------- -m4_define([lt_decl_quote_varnames], -[_lt_decl_filter([value], [1], $@)]) - -# lt_decl_dquote_varnames([SEPARATOR], [VARNAME1...]) -# ---------------------------------------------------- -m4_define([lt_decl_dquote_varnames], -[_lt_decl_filter([value], [2], $@)]) - - -# lt_decl_varnames_tagged([SEPARATOR], [VARNAME1...]) -# ---------------------------------------------------- -m4_define([lt_decl_varnames_tagged], -[_$0(m4_quote(m4_default([$1], [[, ]])), - m4_quote(m4_if([$2], [], - m4_quote(lt_decl_tag_varnames), - m4_quote(m4_shift($@)))), - m4_split(m4_normalize(m4_quote(_LT_TAGS))))]) -m4_define([_lt_decl_varnames_tagged], [lt_combine([$1], [$2], [_], $3)]) - - -# lt_decl_all_varnames([SEPARATOR], [VARNAME1...]) -# ------------------------------------------------ -m4_define([lt_decl_all_varnames], -[_$0(m4_quote(m4_default([$1], [[, ]])), - m4_if([$2], [], - m4_quote(lt_decl_varnames), - m4_quote(m4_shift($@))))[]dnl -]) -m4_define([_lt_decl_all_varnames], -[lt_join($@, lt_decl_varnames_tagged([$1], - lt_decl_tag_varnames([[, ]], m4_shift($@))))dnl -]) - - -# _LT_CONFIG_STATUS_DECLARE([VARNAME]) -# ------------------------------------ -# Quote a variable value, and forward it to `config.status' so that its -# declaration there will have the same value as in `configure'. VARNAME -# must have a single quote delimited value for this to work. -m4_define([_LT_CONFIG_STATUS_DECLARE], -[$1='`$echo "X$][$1" | $Xsed -e "$delay_single_quote_subst"`']) - - -# _LT_CONFIG_STATUS_DECLARATIONS -# ------------------------------ -# We delimit libtool config variables with single quotes, so when -# we write them to config.status, we have to be sure to quote all -# embedded single quotes properly. In configure, this macro expands -# each variable declared with _LT_DECL (and _LT_TAGDECL) into: -# -# ='`$echo "X$" | $Xsed -e "$delay_single_quote_subst"`' -m4_define([_LT_CONFIG_STATUS_DECLARATIONS], -[m4_foreach([_lt_var], m4_quote(lt_decl_all_varnames), - [m4_n([_LT_CONFIG_STATUS_DECLARE(_lt_var)])])]) - - -# _LT_LIBTOOL_TAGS -# ---------------- -# Output comment and list of tags supported by the script -m4_define([_LT_LIBTOOL_TAGS], -[_LT_FORMAT_COMMENT([The names of the tagged configurations supported by this script])dnl -available_tags="[]_LT_TAGS[]"dnl -]) - -# _LT_LIBTOOL_DECLARE(VARNAME, [TAG]) -# ----------------------------------- -# Extract the dictionary values for VARNAME (optionally with TAG) and -# expand to a commented shell variable setting: -# -# # Some comment about what VAR is for. -# visible_name=$lt_internal_name -m4_define([_LT_LIBTOOL_DECLARE], -[_LT_FORMAT_COMMENT(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], - [description])))[]dnl -m4_pushdef([_libtool_name], - m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [libtool_name])))[]dnl -m4_case(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [value])), - [0], [_libtool_name=[$]$1], - [1], [_libtool_name=$lt_[]$1], - [2], [_libtool_name=$lt_[]$1], - [_libtool_name=lt_dict_fetch([lt_decl_dict], [$1], [value])])[]dnl -m4_ifval([$2], [_$2])[]m4_popdef([_libtool_name])[]dnl -]) - -# _LT_LIBTOOL_CONFIG_VARS -# ----------------------- -# Produce commented declarations of non-tagged libtool config variables -# suitable for insertion in the LIBTOOL CONFIG section of the `libtool' -# script. Tagged libtool config variables (even for the LIBTOOL CONFIG -# section) are produced by _LT_LIBTOOL_TAG_VARS. -m4_define([_LT_LIBTOOL_CONFIG_VARS], -[m4_foreach([_lt_var], - m4_quote(_lt_decl_filter([tagged?], [no], [], lt_decl_varnames)), - [m4_n([_LT_LIBTOOL_DECLARE(_lt_var)])])]) - -# _LT_LIBTOOL_TAG_VARS(TAG) -# ------------------------- -m4_define([_LT_LIBTOOL_TAG_VARS], -[m4_foreach([_lt_var], m4_quote(lt_decl_tag_varnames), - [m4_n([_LT_LIBTOOL_DECLARE(_lt_var, [$1])])])]) - - -# _LT_AC_TAGVAR(VARNAME, [TAGNAME]) -# --------------------------------- -m4_define([_LT_AC_TAGVAR], [m4_ifval([$2], [$1_$2], [$1])]) - - -# _LT_CONFIG_COMMANDS -# ------------------- -# Send accumulated output to $CONFIG_STATUS. Thanks to the lists of -# variables for single and double quote escaping we saved from calls -# to _LT_DECL, we can put quote escaped variables declarations -# into `config.status', and then the shell code to quote escape them in -# for loops in `config.status'. Finally, any additional code accumulated -# from calls to _LT_CONFIG_LIBTOOL_INIT is expanded. -m4_define([_LT_CONFIG_COMMANDS], -[AC_CONFIG_COMMANDS([libtool], [_LT_OUTPUT_LIBTOOL_COMMANDS], [ - -# The HP-UX ksh and POSIX shell print the target directory to stdout -# if CDPATH is set. -if test "X${CDPATH+set}" = Xset; then CDPATH=${ZSH_VERSION+.}:; export CDPATH; fi - -sed_quote_subst='$sed_quote_subst' -double_quote_subst='$double_quote_subst' -delay_variable_subst='$delay_variable_subst' -_LT_CONFIG_STATUS_DECLARATIONS -LTCC='$LTCC' -compiler='$compiler_DEFAULT' - -# Quote evaled strings. -for var in lt_decl_all_varnames([[ ]], lt_decl_quote_varnames); do - eval "lt_\$var=\\\\\\"\\\`\\\$echo \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" -done - -# Double-quote double-evaled strings. -for var in lt_decl_all_varnames([[ ]], lt_decl_dquote_varnames); do - eval "lt_\$var=\\\\\\"\\\`\\\$echo \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" -done - -# Fix-up fallback echo if it was mangled by the above quoting rules. -case \$lt_echo in -*'\\\[$]0 --fallback-echo"')dnl " - lt_echo=\`\$echo "X\$lt_echo" | \$Xsed -e 's/\\\\\\\\\\\\\\\[$]0 --fallback-echo"\[$]/\[$]0 --fallback-echo"/'\` - ;; -esac - -_LT_OUTPUT_LIBTOOL_INIT -]) -])#_LT_CONFIG_COMMANDS - - -# _LT_CONFIG(TAG) -# ---------------------------- -# If TAG is the built-in tag, create an initial libtool script with a -# default configuration from the untagged config vars. Otherwise add code -# to config.status for appending the configuration named by TAG from the -# matching tagged config vars. -m4_define([_LT_CONFIG], -[_LT_CONFIG_SAVE_COMMANDS([ - m4_define([_LT_TAG], m4_if([$1], [], [C], [$1]))dnl - m4_if(_LT_TAG, [C], [ - # See if we are running on zsh, and set the options which allow our - # commands through without removal of \ escapes. - if test -n "${ZSH_VERSION+set}" ; then - setopt NO_GLOB_SUBST - fi - - cfgfile="${ofile}T" - trap "$rm \"$cfgfile\"; exit 1" 1 2 15 - $rm -f "$cfgfile" - - cat <<_LT_EOF >> "$cfgfile" -#! $SHELL - -# `$echo "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services. -# Generated automatically by config.status (GNU $PACKAGE$TIMESTAMP) $VERSION -# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: -# NOTE: Changes made to this file will be lost: look at ltmain.sh. -# -_LT_COPYING - -_LT_LIBTOOL_TAGS - -# ### BEGIN LIBTOOL CONFIG -_LT_LIBTOOL_CONFIG_VARS -_LT_LIBTOOL_TAG_VARS -# ### END LIBTOOL CONFIG - -# The HP-UX ksh and POSIX shell print the target directory to stdout -# if CDPATH is set. -if test "X\${CDPATH+set}" = Xset; then CDPATH=:; export CDPATH; fi - -_LT_EOF - - case $host_os in - aix3*) - cat <<\_LT_EOF >> "$cfgfile" -# AIX sometimes has problems with the GCC collect2 program. For some -# reason, if we set the COLLECT_NAMES environment variable, the problems -# vanish in a puff of smoke. -if test "X${COLLECT_NAMES+set}" != Xset; then - COLLECT_NAMES= - export COLLECT_NAMES -fi -_LT_EOF - ;; - esac - - _LT_PROG_LTMAIN - - # We use sed instead of cat because bash on DJGPP gets confused if - # if finds mixed CR/LF and LF-only lines. Since sed operates in - # text mode, it properly converts lines to CR/LF. This bash problem - # is reportedly fixed, but why not run on old versions too? - sed '$q' "$ltmain" >> "$cfgfile" || (rm -f "$cfgfile"; exit 1) - - mv -f "$cfgfile" "$ofile" || - (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") - chmod +x "$ofile" -], -[cat <<_LT_EOF >> "$ofile" - -dnl Unfortunately we have to use $1 here, since _LT_TAG is not expanded -dnl in a comment (ie after a #). -# ### BEGIN LIBTOOL TAG CONFIG: $1 -_LT_LIBTOOL_TAG_VARS(_LT_TAG) -# ### END LIBTOOL TAG CONFIG: $1 -_LT_EOF -])dnl /m4_if -], -[m4_if([$1], [], [ - PACKAGE='$PACKAGE' - VERSION='$VERSION' - TIMESTAMP='$TIMESTAMP' - rm='$rm' - ofile='$ofile'], []) -])dnl /_LT_CONFIG_SAVE_COMMANDS -])# _LT_CONFIG - - -# C support is built-in for now -m4_define([_LT_LANG_C_enabled], []) -m4_define([_LT_TAGS], []) - -# LT_LANG(LANG) -# ------------- -# Enable libtool support for the given language if not already enabled. -AC_DEFUN([LT_LANG], -[m4_case([$1], - [C], [_LT_LANG(C)], - [C++], [_LT_LANG(CXX)], - [Java], [_LT_LANG(GCJ)], - [Fortran 77], [_LT_LANG(F77)], - [Windows Resource], [_LT_LANG(RC)], - [m4_ifdef([_LT_LANG_]$1[_CONFIG], - [_LT_LANG($1)], - [m4_fatal([$0: unsupported language: "$1"])])])dnl -])# LT_LANG - -# _LT_LANG(LANGNAME) -# ------------------ -m4_define([_LT_LANG], -[m4_ifdef([_LT_LANG_]$1[_enabled], [], - [m4_append([_LT_TAGS], [$1 ])dnl - m4_define([_LT_LANG_]$1[_enabled], [])dnl - _LT_LANG_$1_CONFIG($1)])dnl -])# _LT_LANG - -# _LT_LANG_DEFAULT_CONFIG -# ----------------------- -m4_define([_LT_LANG_DEFAULT_CONFIG], -[AC_PROVIDE_IFELSE([AC_PROG_CXX], - [LT_LANG(CXX)], - [m4_define([AC_PROG_CXX], defn([AC_PROG_CXX])[LT_LANG(CXX)])]) - -AC_PROVIDE_IFELSE([AC_PROG_F77], - [LT_LANG(F77)], - [m4_define([AC_PROG_F77], defn([AC_PROG_F77])[LT_LANG(F77)])]) - -dnl The call to [A][M_PROG_GCJ] is quoted like that to stop aclocal -dnl pulling things in needlessly. -AC_PROVIDE_IFELSE([AC_PROG_GCJ], - [LT_LANG(GCJ)], - [AC_PROVIDE_IFELSE([A][M_PROG_GCJ], - [LT_LANG(GCJ)], - [AC_PROVIDE_IFELSE([LT_PROG_GCJ], - [LT_LANG(GCJ)], - [m4_ifdef([AC_PROG_GCJ], - [m4_define([AC_PROG_GCJ], defn([AC_PROG_GCJ])[LT_LANG(GCJ)])]) - m4_ifdef([A][M_PROG_GCJ], - [m4_define([A][M_PROG_GCJ], defn([A][M_PROG_GCJ])[LT_LANG(GCJ)])]) - m4_ifdef([LT_PROG_GCJ], - [m4_define([LT_PROG_GCJ], defn([LT_PROG_GCJ])[LT_LANG(GCJ)])])])])]) - -AC_PROVIDE_IFELSE([LT_PROG_RC], - [LT_LANG(RC)], - [m4_define([LT_PROG_RC], defn([LT_PROG_RC])[LT_LANG(RC)])]) -])# _LT_LANG_DEFAULT_CONFIG - -# Obsolete macros -AU_DEFUN([AC_LIBTOOL_CXX], [LT_LANG(C++)]) -AU_DEFUN([AC_LIBTOOL_F77], [LT_LANG(Fortran 77)]) -AU_DEFUN([AC_LIBTOOL_GCJ], [LT_LANG(Java])]) - - -# _LT_AC_SYS_COMPILER -# ------------------- -AC_DEFUN([_LT_AC_SYS_COMPILER], -[AC_REQUIRE([AC_PROG_CC])dnl - -_LT_DECL([LTCC], [CC], [1], [A C compiler]) -_LT_TAGDECL([CC], [compiler], [1], [A language specific compiler])dnl -_LT_TAGDECL([with_gcc], [GCC], [0], [Is the compiler the GNU C compiler?]) - -# If no C compiler was specified, use CC. -LTCC=${LTCC-"$CC"} - -# Allow CC to be a program name with arguments. -compiler=$CC -])# _LT_AC_SYS_COMPILER - - -# _LT_AC_SYS_LIBPATH_AIX -# ---------------------- -# Links a minimal program and checks the executable -# for the system default hardcoded library path. In most cases, -# this is /usr/lib:/lib, but when the MPI compilers are used -# the location of the communication and MPI libs are included too. -# If we don't find anything, use the default library path according -# to the aix ld manual. -m4_define([_LT_AC_SYS_LIBPATH_AIX], -[AC_LINK_IFELSE(AC_LANG_PROGRAM,[ -aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } -}'` -# Check for a 64-bit object if we didn't find anything. -if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } -}'`; fi],[]) -if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi -])# _LT_AC_SYS_LIBPATH_AIX - - -# _LT_AC_SHELL_INIT(ARG) -# ---------------------- -m4_define([_LT_AC_SHELL_INIT], -[ifdef([AC_DIVERSION_NOTICE], - [AC_DIVERT_PUSH(AC_DIVERSION_NOTICE)], - [AC_DIVERT_PUSH(NOTICE)]) -$1 -AC_DIVERT_POP -])# _LT_AC_SHELL_INIT - - -# _LT_AC_PROG_ECHO_BACKSLASH -# -------------------------- -# Add some code to the start of the generated configure script which -# will find an echo command which doesn't interpret backslashes. -m4_define([_LT_AC_PROG_ECHO_BACKSLASH], -[_LT_AC_SHELL_INIT([ -# Check that we are running under the correct shell. -SHELL=${CONFIG_SHELL-/bin/sh} - -case X$ECHO in -X*--fallback-echo) - # Remove one level of quotation (which was required for Make). - ECHO=`echo "$ECHO" | sed 's,\\\\\[$]\\[$]0,'[$]0','` - ;; -esac - -echo=${ECHO-echo} -if test "X[$]1" = X--no-reexec; then - # Discard the --no-reexec flag, and continue. - shift -elif test "X[$]1" = X--fallback-echo; then - # Avoid inline document here, it may be left over - : -elif test "X`($echo '\t') 2>/dev/null`" = 'X\t' ; then - # Yippee, $echo works! - : -else - # Restart under the correct shell. - exec $SHELL "[$]0" --no-reexec ${1+"[$]@"} -fi - -if test "X[$]1" = X--fallback-echo; then - # used as fallback echo - shift - cat <<_LT_EOF -[$]* -_LT_EOF - exit 0 -fi - -# The HP-UX ksh and POSIX shell print the target directory to stdout -# if CDPATH is set. -if test "X${CDPATH+set}" = Xset; then CDPATH=:; export CDPATH; fi - -if test -z "$ECHO"; then -if test "X${echo_test_string+set}" != Xset; then -# find a string as large as possible, as long as the shell can cope with it - for cmd in 'sed 50q "[$]0"' 'sed 20q "[$]0"' 'sed 10q "[$]0"' 'sed 2q "[$]0"' 'echo test'; do - # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ... - if (echo_test_string="`eval $cmd`") 2>/dev/null && - echo_test_string="`eval $cmd`" && - (test "X$echo_test_string" = "X$echo_test_string") 2>/dev/null - then - break - fi - done -fi - -if test "X`($echo '\t') 2>/dev/null`" = 'X\t' && - echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` && - test "X$echo_testing_string" = "X$echo_test_string"; then - : -else - # The Solaris, AIX, and Digital Unix default echo programs unquote - # backslashes. This makes it impossible to quote backslashes using - # echo "$something" | sed 's/\\/\\\\/g' - # - # So, first we look for a working echo in the user's PATH. - - lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR - for dir in $PATH /usr/ucb; do - IFS="$lt_save_ifs" - if (test -f $dir/echo || test -f $dir/echo$ac_exeext) && - test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' && - echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` && - test "X$echo_testing_string" = "X$echo_test_string"; then - echo="$dir/echo" - break - fi - done - IFS="$lt_save_ifs" - - if test "X$echo" = Xecho; then - # We didn't find a better echo, so look for alternatives. - if test "X`(print -r '\t') 2>/dev/null`" = 'X\t' && - echo_testing_string=`(print -r "$echo_test_string") 2>/dev/null` && - test "X$echo_testing_string" = "X$echo_test_string"; then - # This shell has a builtin print -r that does the trick. - echo='print -r' - elif (test -f /bin/ksh || test -f /bin/ksh$ac_exeext) && - test "X$CONFIG_SHELL" != X/bin/ksh; then - # If we have ksh, try running configure again with it. - ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh} - export ORIGINAL_CONFIG_SHELL - CONFIG_SHELL=/bin/ksh - export CONFIG_SHELL - exec $CONFIG_SHELL "[$]0" --no-reexec ${1+"[$]@"} - else - # Try using printf. - echo='printf %s\n' - if test "X`($echo '\t') 2>/dev/null`" = 'X\t' && - echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` && - test "X$echo_testing_string" = "X$echo_test_string"; then - # Cool, printf works - : - elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` && - test "X$echo_testing_string" = 'X\t' && - echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` && - test "X$echo_testing_string" = "X$echo_test_string"; then - CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL - export CONFIG_SHELL - SHELL="$CONFIG_SHELL" - export SHELL - echo="$CONFIG_SHELL [$]0 --fallback-echo" - elif echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` && - test "X$echo_testing_string" = 'X\t' && - echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` && - test "X$echo_testing_string" = "X$echo_test_string"; then - echo="$CONFIG_SHELL [$]0 --fallback-echo" - else - # maybe with a smaller string... - prev=: - - for cmd in 'echo test' 'sed 2q "[$]0"' 'sed 10q "[$]0"' 'sed 20q "[$]0"' 'sed 50q "[$]0"'; do - if (test "X$echo_test_string" = "X`eval $cmd`") 2>/dev/null - then - break - fi - prev="$cmd" - done - - if test "$prev" != 'sed 50q "[$]0"'; then - echo_test_string=`eval $prev` - export echo_test_string - exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "[$]0" ${1+"[$]@"} - else - # Oops. We lost completely, so just stick with echo. - echo=echo - fi - fi - fi - fi -fi -fi - -# Copy echo and quote the copy suitably for passing to libtool from -# the Makefile, instead of quoting the original, which is used later. -ECHO=$echo -if test "X$ECHO" = "X$CONFIG_SHELL [$]0 --fallback-echo"; then - ECHO="$CONFIG_SHELL \\\$\[$]0 --fallback-echo" -fi - -AC_SUBST(ECHO) -]) -_LT_DECL([], [SHELL], [1], [Shell to use when invoking shell scripts]) -_LT_DECL([], [echo], [1], - [An echo program that does not interpret backslashes]) -])# _LT_AC_PROG_ECHO_BACKSLASH - - -# _LT_AC_LOCK -# ----------- -AC_DEFUN([_LT_AC_LOCK], -[AC_REQUIRE([AC_OBJEXT])dnl -AC_ARG_ENABLE([libtool-lock], - [AC_HELP_STRING([--disable-libtool-lock], - [avoid locking (might break parallel builds)])]) -test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes - -# Some flags need to be propagated to the compiler or linker for good -# libtool support. -case $host in -ia64-*-hpux*) - # Find out which ABI we are using. - echo 'int i;' > conftest.$ac_ext - if AC_TRY_EVAL(ac_compile); then - case `/usr/bin/file conftest.$ac_objext` in - *ELF-32*) - HPUX_IA64_MODE="32" - ;; - *ELF-64*) - HPUX_IA64_MODE="64" - ;; - esac - fi - rm -rf conftest* - ;; -*-*-irix6*) - # Find out which ABI we are using. - echo '[#]line __oline__ "configure"' > conftest.$ac_ext - if AC_TRY_EVAL(ac_compile); then - if test "$lt_cv_prog_gnu_ld" = yes; then - case `/usr/bin/file conftest.$ac_objext` in - *32-bit*) - LD="${LD-ld} -melf32bsmip" - ;; - *N32*) - LD="${LD-ld} -melf32bmipn32" - ;; - *64-bit*) - LD="${LD-ld} -melf64bmip" - ;; - esac - else - case `/usr/bin/file conftest.$ac_objext` in - *32-bit*) - LD="${LD-ld} -32" - ;; - *N32*) - LD="${LD-ld} -n32" - ;; - *64-bit*) - LD="${LD-ld} -64" - ;; - esac - fi - fi - rm -rf conftest* - ;; - -x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*|s390*-*linux*|sparc*-*linux*) - # Find out which ABI we are using. - echo 'int i;' > conftest.$ac_ext - if AC_TRY_EVAL(ac_compile); then - case "`/usr/bin/file conftest.o`" in - *32-bit*) - case $host in - x86_64-*linux*) - LD="${LD-ld} -m elf_i386" - ;; - ppc64-*linux*|powerpc64-*linux*) - LD="${LD-ld} -m elf32ppclinux" - ;; - s390x-*linux*) - LD="${LD-ld} -m elf_s390" - ;; - sparc64-*linux*) - LD="${LD-ld} -m elf32_sparc" - ;; - esac - ;; - *64-bit*) - case $host in - x86_64-*linux*) - LD="${LD-ld} -m elf_x86_64" - ;; - ppc*-*linux*|powerpc*-*linux*) - LD="${LD-ld} -m elf64ppc" - ;; - s390*-*linux*) - LD="${LD-ld} -m elf64_s390" - ;; - sparc*-*linux*) - LD="${LD-ld} -m elf64_sparc" - ;; - esac - ;; - esac - fi - rm -rf conftest* - ;; - -*-*-sco3.2v5*) - # On SCO OpenServer 5, we need -belf to get full-featured binaries. - SAVE_CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS -belf" - AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf, - [AC_LANG_PUSH(C) - AC_TRY_LINK([],[],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no]) - AC_LANG_POP]) - if test x"$lt_cv_cc_needs_belf" != x"yes"; then - # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf - CFLAGS="$SAVE_CFLAGS" - fi - ;; -esac - -need_locks="$enable_libtool_lock" -])# _LT_AC_LOCK - - -# AC_LIBTOOL_SYS_OLD_ARCHIVE -# -------------------------- -AC_DEFUN([AC_LIBTOOL_SYS_OLD_ARCHIVE], -[AC_CHECK_TOOL(AR, ar, false) -test -z "$AR" && AR=ar -test -z "$AR_FLAGS" && AR_FLAGS=cru -_LT_DECL([], [AR], [1], [The archiver]) -_LT_DECL([], [AR_FLAGS], [1]) - -AC_CHECK_TOOL(STRIP, strip, :) -test -z "$STRIP" && STRIP=: -_LT_DECL([], [STRIP], [1], [A symbol stripping program]) - -AC_CHECK_TOOL(RANLIB, ranlib, :) -test -z "$RANLIB" && RANLIB=: -_LT_DECL([], [RANLIB], [1], - [Commands used to install an old-style archive]) - -# Determine commands to create old-style static archives. -old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs$old_deplibs' -old_postinstall_cmds='chmod 644 $oldlib' -old_postuninstall_cmds= - -if test -n "$RANLIB"; then - case $host_os in - openbsd*) - old_postinstall_cmds="\$RANLIB -t \$oldlib~$old_postinstall_cmds" - ;; - *) - old_postinstall_cmds="\$RANLIB \$oldlib~$old_postinstall_cmds" - ;; - esac - old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib" -fi -_LT_DECL([], [old_postinstall_cmds], [2]) -_LT_DECL([], [old_postuninstall_cmds], [2]) -_LT_TAGDECL([], [old_archive_cmds], [2], - [Commands used to build an old-style archive]) -])# AC_LIBTOOL_SYS_OLD_ARCHIVE - - -# AC_LIBTOOL_COMPILER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, -# [OUTPUT-FILE], [ACTION-SUCCESS], [ACTION-FAILURE]) -# ---------------------------------------------------------------- -# Check whether the given compiler option works -AC_DEFUN([AC_LIBTOOL_COMPILER_OPTION], -[AC_REQUIRE([AC_OBJEXT])dnl -AC_REQUIRE([LT_AC_PROG_SED])dnl -AC_CACHE_CHECK([$1], [$2], - [$2=no - m4_if([$4], , [ac_outfile=conftest.$ac_objext], [ac_outfile=$4]) - printf "$lt_simple_compile_test_code" > conftest.$ac_ext - lt_compiler_flag="$3" - # Insert the option either (1) after the last *FLAGS variable, or - # (2) before a word containing "conftest.", or (3) at the end. - # Note that $ac_compile itself does not contain backslashes and begins - # with a dollar sign (not a hyphen), so the echo should work correctly. - # The option is referenced via a variable to avoid confusing sed. - lt_compile=`echo "$ac_compile" | $SED \ - -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \ - -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ - -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD) - (eval "$lt_compile" 2>conftest.err) - ac_status=$? - cat conftest.err >&AS_MESSAGE_LOG_FD - echo "$as_me:__oline__: \$? = $ac_status" >&AS_MESSAGE_LOG_FD - if (exit $ac_status) && test -s "$ac_outfile"; then - # The compiler can only warn and ignore the option if not recognized - # So say no if there are warnings - if test ! -s conftest.err; then - $2=yes - fi - fi - $rm conftest* -]) - -if test x"[$]$2" = xyes; then - m4_if([$5], , :, [$5]) -else - m4_if([$6], , :, [$6]) -fi -])# AC_LIBTOOL_COMPILER_OPTION - - -# AC_LIBTOOL_LINKER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, -# [ACTION-SUCCESS], [ACTION-FAILURE]) -# ------------------------------------------------------------ -# Check whether the given compiler option works -m4_define([AC_LIBTOOL_LINKER_OPTION], -[AC_CACHE_CHECK([$1], [$2], - [$2=no - save_LDFLAGS="$LDFLAGS" - LDFLAGS="$LDFLAGS $3" - printf "$lt_simple_link_test_code" > conftest.$ac_ext - if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then - # The compiler can only warn and ignore the option if not recognized - # So say no if there are warnings - if test -s conftest.err; then - # Append any errors to the config.log. - cat conftest.err 1>&AS_MESSAGE_LOG_FD - else - $2=yes - fi - fi - $rm conftest* - LDFLAGS="$save_LDFLAGS" -]) - -if test x"[$]$2" = xyes; then - m4_if([$4], , :, [$4]) -else - m4_if([$5], , :, [$5]) -fi -])# AC_LIBTOOL_LINKER_OPTION - - -# AC_LIBTOOL_SYS_MAX_CMD_LEN -# -------------------------- -AC_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN], -[AC_REQUIRE([AC_CANONICAL_HOST])dnl -# find the maximum length of command line arguments -AC_MSG_CHECKING([the maximum length of command line arguments]) -AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl - i=0 - teststring="ABCD" - - case $build_os in - msdosdjgpp*) - # On DJGPP, this test can blow up pretty badly due to problems in libc - # (any single argument exceeding 2000 bytes causes a buffer overrun - # during glob expansion). Even if it were fixed, the result of this - # check would be larger than it should be. - lt_cv_sys_max_cmd_len=12288; # 12K is about right - ;; - - gnu*) - # Under GNU Hurd, this test is not required because there is - # no limit to the length of command line arguments. - # Libtool will interpret -1 as no limit whatsoever - lt_cv_sys_max_cmd_len=-1; - ;; - - cygwin* | mingw*) - # On Win9x/ME, this test blows up -- it succeeds, but takes - # about 5 minutes as the teststring grows exponentially. - # Worse, since 9x/ME are not pre-emptively multitasking, - # you end up with a "frozen" computer, even though with patience - # the test eventually succeeds (with a max line length of 256k). - # Instead, let's just punt: use the minimum linelength reported by - # all of the supported platforms: 8192 (on NT/2K/XP). - lt_cv_sys_max_cmd_len=8192; - ;; - - amigaos*) - # On AmigaOS with pdksh, this test takes hours, literally. - # So we just punt and use a minimum line length of 8192. - lt_cv_sys_max_cmd_len=8192; - ;; - - *) - # Make teststring a little bigger before we do anything with it. - # a 1K string should be a reasonable start. - for i in 1 2 3 4 5 6 7 8 ; do - teststring=$teststring$teststring - done - # If test is not a shell built-in, we'll probably end up computing a - # maximum length that is only half of the actual maximum length, but - # we can't tell. - while (test "X"`$CONFIG_SHELL [$]0 --fallback-echo "X$teststring$teststring" 2>/dev/null` \ - = "XX$teststring$teststring") >/dev/null 2>&1 && - test $i != 17 # 1/2 MB should be enough - do - i=`expr $i + 1` - teststring=$teststring$teststring - done - # Only check the string length outside the loop. - lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1` - teststring= - # Add a significant safety factor because C++ compilers can tack on massive - # amounts of additional arguments before passing them to the linker. - # It appears as though 1/2 is a usable value. - lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` - ;; - esac -]) -if test -n $lt_cv_sys_max_cmd_len ; then - AC_MSG_RESULT($lt_cv_sys_max_cmd_len) -else - AC_MSG_RESULT(none) -fi -_LT_DECL([max_cmd_len], [lt_cv_sys_max_cmd_len], [0], - [What is the maximum length of a command?]) -])# AC_LIBTOOL_SYS_MAX_CMD_LEN - - -# _LT_AC_CHECK_DLFCN -# -------------------- -AC_DEFUN([_LT_AC_CHECK_DLFCN], -[AC_CHECK_HEADERS([dlfcn.h], [], [], [AC_INCLUDES_DEFAULT])dnl -])# _LT_AC_CHECK_DLFCN - - -# _LT_AC_TRY_DLOPEN_SELF (ACTION-IF-TRUE, ACTION-IF-TRUE-W-USCORE, -# ACTION-IF-FALSE, ACTION-IF-CROSS-COMPILING) -# ------------------------------------------------------------------ -AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF], -[AC_REQUIRE([_LT_AC_CHECK_DLFCN])dnl -if test "$cross_compiling" = yes; then : - [$4] -else - lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 - lt_status=$lt_dlunknown - cat > conftest.$ac_ext <<_LT_EOF -[#line __oline__ "configure" -#include "confdefs.h" - -#if HAVE_DLFCN_H -#include -#endif - -#include - -#ifdef RTLD_GLOBAL -# define LT_DLGLOBAL RTLD_GLOBAL -#else -# ifdef DL_GLOBAL -# define LT_DLGLOBAL DL_GLOBAL -# else -# define LT_DLGLOBAL 0 -# endif -#endif - -/* We may have to define LT_DLLAZY_OR_NOW in the command line if we - find out it does not work in some platform. */ -#ifndef LT_DLLAZY_OR_NOW -# ifdef RTLD_LAZY -# define LT_DLLAZY_OR_NOW RTLD_LAZY -# else -# ifdef DL_LAZY -# define LT_DLLAZY_OR_NOW DL_LAZY -# else -# ifdef RTLD_NOW -# define LT_DLLAZY_OR_NOW RTLD_NOW -# else -# ifdef DL_NOW -# define LT_DLLAZY_OR_NOW DL_NOW -# else -# define LT_DLLAZY_OR_NOW 0 -# endif -# endif -# endif -# endif -#endif - -#ifdef __cplusplus -extern "C" void exit (int); -#endif - -void fnord() { int i=42;} -int main () -{ - void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); - int status = $lt_dlunknown; - - if (self) - { - if (dlsym (self,"fnord")) status = $lt_dlno_uscore; - else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; - /* dlclose (self); */ - } - - exit (status); -}] -_LT_EOF - if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext} 2>/dev/null; then - (./conftest; exit; ) 2>/dev/null - lt_status=$? - case x$lt_status in - x$lt_dlno_uscore) $1 ;; - x$lt_dlneed_uscore) $2 ;; - x$lt_unknown|x*) $3 ;; - esac - else : - # compilation failed - $3 - fi -fi -rm -fr conftest* -])# _LT_AC_TRY_DLOPEN_SELF - - -# AC_LIBTOOL_DLOPEN_SELF -# ------------------- -AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF], -[AC_REQUIRE([_LT_AC_CHECK_DLFCN])dnl -if test "x$enable_dlopen" != xyes; then - enable_dlopen=unknown - enable_dlopen_self=unknown - enable_dlopen_self_static=unknown -else - lt_cv_dlopen=no - lt_cv_dlopen_libs= - - case $host_os in - beos*) - lt_cv_dlopen="load_add_on" - lt_cv_dlopen_libs= - lt_cv_dlopen_self=yes - ;; - - mingw* | pw32*) - lt_cv_dlopen="LoadLibrary" - lt_cv_dlopen_libs= - ;; - - cygwin*) - lt_cv_dlopen="dlopen" - lt_cv_dlopen_libs= - ;; - - darwin*) - # if libdl is installed we need to link against it - AC_CHECK_LIB([dl], [dlopen], - [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],[ - lt_cv_dlopen="dyld" - lt_cv_dlopen_libs= - lt_cv_dlopen_self=yes - ]) - ;; - - *) - AC_CHECK_FUNC([shl_load], - [lt_cv_dlopen="shl_load"], - [AC_CHECK_LIB([dld], [shl_load], - [lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-dld"], - [AC_CHECK_FUNC([dlopen], - [lt_cv_dlopen="dlopen"], - [AC_CHECK_LIB([dl], [dlopen], - [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"], - [AC_CHECK_LIB([svld], [dlopen], - [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"], - [AC_CHECK_LIB([dld], [dld_link], - [lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-dld"]) - ]) - ]) - ]) - ]) - ]) - ;; - esac - - if test "x$lt_cv_dlopen" != xno; then - enable_dlopen=yes - else - enable_dlopen=no - fi - - case $lt_cv_dlopen in - dlopen) - save_CPPFLAGS="$CPPFLAGS" - test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" - - save_LDFLAGS="$LDFLAGS" - eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" - - save_LIBS="$LIBS" - LIBS="$lt_cv_dlopen_libs $LIBS" - - AC_CACHE_CHECK([whether a program can dlopen itself], - lt_cv_dlopen_self, [dnl - _LT_AC_TRY_DLOPEN_SELF( - lt_cv_dlopen_self=yes, lt_cv_dlopen_self=yes, - lt_cv_dlopen_self=no, lt_cv_dlopen_self=cross) - ]) - - if test "x$lt_cv_dlopen_self" = xyes; then - LDFLAGS="$LDFLAGS $link_static_flag" - AC_CACHE_CHECK([whether a statically linked program can dlopen itself], - lt_cv_dlopen_self_static, [dnl - _LT_AC_TRY_DLOPEN_SELF( - lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=yes, - lt_cv_dlopen_self_static=no, lt_cv_dlopen_self_static=cross) - ]) - fi - - CPPFLAGS="$save_CPPFLAGS" - LDFLAGS="$save_LDFLAGS" - LIBS="$save_LIBS" - ;; - esac - - case $lt_cv_dlopen_self in - yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; - *) enable_dlopen_self=unknown ;; - esac - - case $lt_cv_dlopen_self_static in - yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; - *) enable_dlopen_self_static=unknown ;; - esac -fi -_LT_DECL([dlopen_support], [enable_dlopen], [0], - [Whether dlopen is supported]) -_LT_DECL([dlopen_self], [enable_dlopen_self], [0], - [Whether dlopen of programs is supported]) -_LT_DECL([dlopen_self_static], [enable_dlopen_self_static], [0], - [Whether dlopen of statically linked programs is supported]) -])# AC_LIBTOOL_DLOPEN_SELF - - -# AC_LIBTOOL_PROG_CC_C_O([TAGNAME]) -# --------------------------------- -# Check to see if options -c and -o are simultaneously supported by compiler -AC_DEFUN([AC_LIBTOOL_PROG_CC_C_O], -[AC_REQUIRE([_LT_AC_SYS_COMPILER])dnl -AC_REQUIRE([AC_OBJEXT])dnl -AC_CACHE_CHECK([if $compiler supports -c -o file.$ac_objext], - [_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)], - [_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)=no - $rm -r conftest 2>/dev/null - mkdir conftest - cd conftest - mkdir out - printf "$lt_simple_compile_test_code" > conftest.$ac_ext - - lt_compiler_flag="-o out/conftest2.$ac_objext" - # Insert the option either (1) after the last *FLAGS variable, or - # (2) before a word containing "conftest.", or (3) at the end. - # Note that $ac_compile itself does not contain backslashes and begins - # with a dollar sign (not a hyphen), so the echo should work correctly. - lt_compile=`echo "$ac_compile" | $SED \ - -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \ - -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ - -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD) - (eval "$lt_compile" 2>out/conftest.err) - ac_status=$? - cat out/conftest.err >&AS_MESSAGE_LOG_FD - echo "$as_me:__oline__: \$? = $ac_status" >&AS_MESSAGE_LOG_FD - if (exit $ac_status) && test -s out/conftest2.$ac_objext - then - # The compiler can only warn and ignore the option if not recognized - # So say no if there are warnings - if test ! -s out/conftest.err; then - _LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes - fi - fi - chmod u+w . - $rm conftest* - # SGI C++ compiler will create directory out/ii_files/ for - # template instantiation - test -d out/ii_files && $rm out/ii_files/* && rmdir out/ii_files - $rm out/* && rmdir out - cd .. - rmdir conftest - $rm conftest* -]) -_LT_DECL([compiler_c_o], [lt_cv_prog_compiler_c_o], [1], - [Does compiler simultaneously support -c and -o options?]) -])# AC_LIBTOOL_PROG_CC_C_O - - -# AC_LIBTOOL_SYS_HARD_LINK_LOCKS([TAGNAME]) -# ----------------------------------------- -# Check to see if we can do hard links to lock some files if needed -AC_DEFUN([AC_LIBTOOL_SYS_HARD_LINK_LOCKS], -[AC_REQUIRE([AC_LIBTOOL_PROG_CC_C_O])dnl -AC_REQUIRE([_LT_AC_LOCK])dnl - -hard_links="nottested" -if test "$_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)" = no && test "$need_locks" != no; then - # do not overwrite the value of need_locks provided by the user - AC_MSG_CHECKING([if we can lock with hard links]) - hard_links=yes - $rm conftest* - ln conftest.a conftest.b 2>/dev/null && hard_links=no - touch conftest.a - ln conftest.a conftest.b 2>&5 || hard_links=no - ln conftest.a conftest.b 2>/dev/null && hard_links=no - AC_MSG_RESULT([$hard_links]) - if test "$hard_links" = no; then - AC_MSG_WARN([`$CC' does not support `-c -o', so `make -j' may be unsafe]) - need_locks=warn - fi -else - need_locks=no -fi -_LT_DECL([], [need_locks], [1], [Must we lock files when doing compilation?]) -])# AC_LIBTOOL_SYS_HARD_LINK_LOCKS - - -# AC_LIBTOOL_OBJDIR -# ----------------- -AC_DEFUN([AC_LIBTOOL_OBJDIR], -[AC_CACHE_CHECK([for objdir], [lt_cv_objdir], -[rm -f .libs 2>/dev/null -mkdir .libs 2>/dev/null -if test -d .libs; then - lt_cv_objdir=.libs -else - # MS-DOS does not allow filenames that begin with a dot. - lt_cv_objdir=_libs -fi -rmdir .libs 2>/dev/null]) -objdir=$lt_cv_objdir -_LT_DECL([], [objdir], [0], - [The name of the directory that contains temporary libtool files])dnl -])# AC_LIBTOOL_OBJDIR - - -# AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH([TAGNAME]) -# ---------------------------------------------- -# Check hardcoding attributes. -AC_DEFUN([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH], -[AC_MSG_CHECKING([how to hardcode library paths into programs]) -_LT_AC_TAGVAR(hardcode_action, $1)= -if test -n "$_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)" || - test -n "$_LT_AC_TAGVAR(runpath_var $1)" || - test "X$_LT_AC_TAGVAR(hardcode_automatic, $1)"="Xyes" ; then - - # We can hardcode non-existant directories. - if test "$_LT_AC_TAGVAR(hardcode_direct, $1)" != no && - # If the only mechanism to avoid hardcoding is shlibpath_var, we - # have to relink, otherwise we might link with an installed library - # when we should be linking with a yet-to-be-installed one - ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, $1)" != no && - test "$_LT_AC_TAGVAR(hardcode_minus_L, $1)" != no; then - # Linking always hardcodes the temporary library directory. - _LT_AC_TAGVAR(hardcode_action, $1)=relink - else - # We can link without hardcoding, and we can hardcode nonexisting dirs. - _LT_AC_TAGVAR(hardcode_action, $1)=immediate - fi -else - # We cannot hardcode anything, or else we can only hardcode existing - # directories. - _LT_AC_TAGVAR(hardcode_action, $1)=unsupported -fi -AC_MSG_RESULT([$_LT_AC_TAGVAR(hardcode_action, $1)]) - -if test "$_LT_AC_TAGVAR(hardcode_action, $1)" = relink || - test "$_LT_AC_TAGVAR(inherit_rpath, $1)" = yes; then - # Fast installation is not supported - enable_fast_install=no -elif test "$shlibpath_overrides_runpath" = yes || - test "$enable_shared" = no; then - # Fast installation is not necessary - enable_fast_install=needless -fi -_LT_TAGDECL([], [hardcode_action], [0], - [How to hardcode a shared library path into an executable]) -])# AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH - - -# AC_LIBTOOL_SYS_LIB_STRIP -# ------------------------ -AC_DEFUN([AC_LIBTOOL_SYS_LIB_STRIP], -[AC_REQUIRE([LT_AC_PROG_EGREP]) -striplib= -old_striplib= -AC_MSG_CHECKING([whether stripping libraries is possible]) -if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then - test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" - test -z "$striplib" && striplib="$STRIP --strip-unneeded" - AC_MSG_RESULT([yes]) -else -# FIXME - insert some real tests, host_os isn't really good enough - case $host_os in - darwin*) - if test -n "$STRIP" ; then - striplib="$STRIP -x" - AC_MSG_RESULT([yes]) - else - AC_MSG_RESULT([no]) -fi - ;; - *) - AC_MSG_RESULT([no]) - ;; - esac -fi -_LT_DECL([], [old_striplib], [1], [Commands to strip libraries]) -_LT_DECL([], [striplib], [1]) -])# AC_LIBTOOL_SYS_LIB_STRIP - - -# AC_LIBTOOL_SYS_DYNAMIC_LINKER -# ----------------------------- -# PORTME Fill in your ld.so characteristics -AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER], -[AC_REQUIRE([LT_AC_PROG_EGREP]) -AC_MSG_CHECKING([dynamic linker characteristics]) -library_names_spec= -libname_spec='lib$name' -soname_spec= -shrext_cmds=".so" -postinstall_cmds= -postuninstall_cmds= -finish_cmds= -finish_eval= -shlibpath_var= -shlibpath_overrides_runpath=unknown -version_type=none -dynamic_linker="$host_os ld.so" -sys_lib_dlsearch_path_spec="/lib /usr/lib" -if test "$GCC" = yes; then - sys_lib_search_path_spec=`$CC -print-search-dirs | $GREP "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` - if echo "$sys_lib_search_path_spec" | $GREP ';' >/dev/null ; then - # if the path contains ";" then we assume it to be the separator - # otherwise default to the standard path separator (i.e. ":") - it is - # assumed that no part of a normal pathname contains ";" but that should - # okay in the real world where ";" in dirpaths is itself problematic. - sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` - else - sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` - fi -else - sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" -fi -need_lib_prefix=unknown -hardcode_into_libs=no - -# when you set need_version to no, make sure it does not cause -set_version -# flags to be left without arguments -need_version=unknown - -case $host_os in -aix3*) - version_type=linux - library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' - shlibpath_var=LIBPATH - - # AIX 3 has no versioning support, so we append a major version to the name. - soname_spec='${libname}${release}${shared_ext}$major' - ;; - -aix4* | aix5*) - version_type=linux - need_lib_prefix=no - need_version=no - hardcode_into_libs=yes - if test "$host_cpu" = ia64; then - # AIX 5 supports IA64 - library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' - shlibpath_var=LD_LIBRARY_PATH - else - # With GCC up to 2.95.x, collect2 would create an import file - # for dependence libraries. The import file would start with - # the line `#! .'. This would cause the generated library to - # depend on `.', always an invalid library. This was fixed in - # development snapshots of GCC prior to 3.0. - case $host_os in - aix4 | aix4.[[01]] | aix4.[[01]].*) - if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' - echo ' yes ' - echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then - : - else - can_build_shared=no - fi - ;; - esac - # AIX (on Power*) has no versioning support, so currently we can not hardcode correct - # soname into executable. Probably we can add versioning support to - # collect2, so additional links can be useful in future. - if test "$aix_use_runtimelinking" = yes; then - # If using run time linking (on AIX 4.2 or later) use lib.so - # instead of lib.a to let people know that these are not - # typical AIX shared libraries. - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - else - # We preserve .a as extension for shared libraries through AIX4.2 - # and later when we are not doing run time linking. - library_names_spec='${libname}${release}.a $libname.a' - soname_spec='${libname}${release}${shared_ext}$major' - fi - shlibpath_var=LIBPATH - fi - ;; - -amigaos*) - if test "$host_cpu" = m68k; then - library_names_spec='$libname.ixlibrary $libname.a' - # Create ${libname}_ixlibrary.a entries in /sys/libs. - finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' - else - dynamic_linker=no - fi - ;; - -beos*) - library_names_spec='${libname}${shared_ext}' - dynamic_linker="$host_os ld.so" - shlibpath_var=LIBRARY_PATH - ;; - -bsdi4*) - version_type=linux - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' - shlibpath_var=LD_LIBRARY_PATH - sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" - sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" - # the default ld.so.conf also contains /usr/contrib/lib and - # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow - # libtool to hard-code these into programs - ;; - -cygwin* | mingw* | pw32*) - version_type=windows - shrext_cmds=".dll" - need_version=no - need_lib_prefix=no - - case $GCC,$host_os in - yes,cygwin* | yes,mingw* | yes,pw32*) - library_names_spec='$libname.dll.a' - # DLL is installed to $(libdir)/../bin by postinstall_cmds - postinstall_cmds='base_file=`basename \${file}`~ - dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~ - dldir=$destdir/`dirname \$dlpath`~ - test -d \$dldir || mkdir -p \$dldir~ - $install_prog $dir/$dlname \$dldir/$dlname' - postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ - dlpath=$dir/\$dldll~ - $rm \$dlpath' - shlibpath_overrides_runpath=yes - - case $host_os in - cygwin*) - # Cygwin DLLs use 'cyg' prefix rather than 'lib' - soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' - sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" - ;; - mingw*) - # MinGW DLLs use traditional 'lib' prefix - soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' - sys_lib_search_path_spec=`$CC -print-search-dirs | $GREP "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` - if echo "$sys_lib_search_path_spec" | [$GREP ';[c-zC-Z]:/' >/dev/null]; then - # It is most probably a Windows format PATH printed by - # mingw gcc, but we are running on Cygwin. Gcc prints its search - # path with ; separators, and with drive letters. We can handle the - # drive letters (cygwin fileutils understands them), so leave them, - # especially as we might pass files found there to a mingw objdump, - # which wouldn't understand a cygwinified path. Ahh. - sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` - else - sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` - fi - ;; - pw32*) - # pw32 DLLs use 'pw' prefix rather than 'lib' - library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' - ;; - esac - ;; - - *) - library_names_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext} $libname.lib' - ;; - esac - dynamic_linker='Win32 ld.exe' - # FIXME: first we should search . and the directory the executable is in - shlibpath_var=PATH - ;; - -darwin* | rhapsody*) - dynamic_linker="$host_os dyld" - version_type=darwin - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext' - soname_spec='${libname}${release}${major}$shared_ext' - shlibpath_overrides_runpath=yes - shlibpath_var=DYLD_LIBRARY_PATH - shrext_cmds='$(test .$module = .yes && echo .so || echo .dylib)' - # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same. - if test "$GCC" = yes; then - sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | $GREP "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"` - else - sys_lib_search_path_spec='/lib /usr/lib /usr/local/lib' - fi - sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' - ;; - -dgux*) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - ;; - -freebsd1*) - dynamic_linker=no - ;; - -kfreebsd*-gnu) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=no - hardcode_into_libs=yes - dynamic_linker='GNU ld.so' - ;; - -freebsd*) - objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout` - version_type=freebsd-$objformat - case $version_type in - freebsd-elf*) - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' - need_version=no - need_lib_prefix=no - ;; - freebsd-*) - library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' - need_version=yes - ;; - esac - shlibpath_var=LD_LIBRARY_PATH - case $host_os in - freebsd2*) - shlibpath_overrides_runpath=yes - ;; - freebsd3.[01]* | freebsdelf3.[01]*) - shlibpath_overrides_runpath=yes - hardcode_into_libs=yes - ;; - *) # from 3.2 on - shlibpath_overrides_runpath=no - hardcode_into_libs=yes - ;; - esac - ;; - -gnu*) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - hardcode_into_libs=yes - ;; - -hpux9* | hpux10* | hpux11*) - # Give a soname corresponding to the major version so that dld.sl refuses to - # link against other versions. - version_type=sunos - need_lib_prefix=no - need_version=no - case "$host_cpu" in - ia64*) - shrext_cmds='.so' - hardcode_into_libs=yes - dynamic_linker="$host_os dld.so" - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - if test "X$HPUX_IA64_MODE" = X32; then - sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" - else - sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" - fi - sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec - ;; - hppa*64*) - shrext_cmds='.sl' - hardcode_into_libs=yes - dynamic_linker="$host_os dld.sl" - shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH - shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" - sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec - ;; - *) - shrext_cmds='.sl' - dynamic_linker="$host_os dld.sl" - shlibpath_var=SHLIB_PATH - shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - ;; - esac - # HP-UX runs *really* slowly unless shared libraries are mode 555. - postinstall_cmds='chmod 555 $lib' - ;; - -irix5* | irix6* | nonstopux*) - case $host_os in - nonstopux*) version_type=nonstopux ;; - *) - if test "$lt_cv_prog_gnu_ld" = yes; then - version_type=linux - else - version_type=irix - fi ;; - esac - need_lib_prefix=no - need_version=no - soname_spec='${libname}${release}${shared_ext}$major' - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' - case $host_os in - irix5* | nonstopux*) - libsuff= shlibsuff= - ;; - *) - case $LD in # libtool.m4 will add one of these switches to LD - *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") - libsuff= shlibsuff= libmagic=32-bit;; - *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") - libsuff=32 shlibsuff=N32 libmagic=N32;; - *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") - libsuff=64 shlibsuff=64 libmagic=64-bit;; - *) libsuff= shlibsuff= libmagic=never-match;; - esac - ;; - esac - shlibpath_var=LD_LIBRARY${shlibsuff}_PATH - shlibpath_overrides_runpath=no - sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" - sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" - hardcode_into_libs=yes - ;; - -# No shared lib support for Linux oldld, aout, or coff. -linux*oldld* | linux*aout* | linux*coff*) - dynamic_linker=no - ;; - -# This must be Linux ELF. -linux*) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=no - # This implies no fast_install, which is unacceptable. - # Some rework will be needed to allow for fast_install - # before this can be enabled. - hardcode_into_libs=yes - - # Append ld.so.conf contents to the search path - if test -f /etc/ld.so.conf; then - lt_ld_extra=`$SED -e 's/[:,\t]/ /g;s/=[^=]*$//;s/=[^= ]* / /g' /etc/ld.so.conf | tr '\n' ' '` - sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" - fi - - # We used to test for /lib/ld.so.1 and disable shared libraries on - # powerpc, because MkLinux only supported shared libraries with the - # GNU dynamic linker. Since this was broken with cross compilers, - # most powerpc-linux boxes support dynamic linking these days and - # people can always --disable-shared, the test was removed, and we - # assume the GNU/Linux dynamic linker is in use. - dynamic_linker='GNU/Linux ld.so' - ;; - -knetbsd*-gnu) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=no - hardcode_into_libs=yes - dynamic_linker='GNU ld.so' - ;; - -netbsd*) - version_type=sunos - need_lib_prefix=no - need_version=no - if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' - finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' - dynamic_linker='NetBSD (a.out) ld.so' - else - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - dynamic_linker='NetBSD ld.elf_so' - fi - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - hardcode_into_libs=yes - ;; - -newsos6) - version_type=linux - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - ;; - -nto-qnx*) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - ;; - -openbsd*) - version_type=sunos - need_lib_prefix=no - need_version=yes - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' - finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' - shlibpath_var=LD_LIBRARY_PATH - if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then - case $host_os in - openbsd2.[[89]] | openbsd2.[[89]].*) - shlibpath_overrides_runpath=no - ;; - *) - shlibpath_overrides_runpath=yes - ;; - esac - else - shlibpath_overrides_runpath=yes - fi - ;; - -os2*) - libname_spec='$name' - shrext_cmds=".dll" - need_lib_prefix=no - library_names_spec='$libname${shared_ext} $libname.a' - dynamic_linker='OS/2 ld.exe' - shlibpath_var=LIBPATH - ;; - -osf3* | osf4* | osf5*) - version_type=osf - need_lib_prefix=no - need_version=no - soname_spec='${libname}${release}${shared_ext}$major' - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - shlibpath_var=LD_LIBRARY_PATH - sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" - sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" - ;; - -sco3.2v5*) - version_type=osf - soname_spec='${libname}${release}${shared_ext}$major' - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - shlibpath_var=LD_LIBRARY_PATH - ;; - -solaris*) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - hardcode_into_libs=yes - # ldd complains unless libraries are executable - postinstall_cmds='chmod +x $lib' - ;; - -sunos4*) - version_type=sunos - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' - finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - if test "$with_gnu_ld" = yes; then - need_lib_prefix=no - fi - need_version=yes - ;; - -sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) - version_type=linux - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - case $host_vendor in - sni) - shlibpath_overrides_runpath=no - need_lib_prefix=no - runpath_var=LD_RUN_PATH - ;; - siemens) - need_lib_prefix=no - ;; - motorola) - need_lib_prefix=no - need_version=no - shlibpath_overrides_runpath=no - sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' - ;; - esac - ;; - -sysv4*MP*) - if test -d /usr/nec ;then - version_type=linux - library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' - soname_spec='$libname${shared_ext}.$major' - shlibpath_var=LD_LIBRARY_PATH - fi - ;; - -uts4*) - version_type=linux - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - ;; - -*) - dynamic_linker=no - ;; -esac -AC_MSG_RESULT([$dynamic_linker]) -test "$dynamic_linker" = no && can_build_shared=no -_LT_DECL([], [need_lib_prefix], [0], - [Do we need the "lib" prefix for modules?]) -_LT_DECL([], [need_version], [0], [Do we need a version for libraries?]) -_LT_DECL([], [version_type], [0], [Library versioning type]) -_LT_DECL([], [runpath_var], [0], [Shared library runtime path variable]) -_LT_DECL([], [shlibpath_var], [0],[Shared library path variable]) -_LT_DECL([], [shlibpath_overrides_runpath], [0], - [Is shibpath searched before the hard-coded library search path?]) -_LT_DECL([], [libname_spec], [1], [Format of library name prefix]) -_LT_DECL([], [library_names_spec], [1], - [List of archive names. First name is the real one, the rest are links. - The last name is the one that the linker finds with -lNAME]) -_LT_DECL([], [soname_spec], [1], - [The coded name of the library, if different from the real name]) -_LT_DECL([], [postinstall_cmds], [2], - [Command to use after installation of a shared archive]) -_LT_DECL([], [postuninstall_cmds], [2], - [Command to use after uninstallation of a shared archive]) -_LT_DECL([], [finish_cmds], [2], - [Commands used to finish a libtool library installation in a directory]) -_LT_DECL([], [finish_eval], [1], - [As "finish_cmds", except a single script fragment to be evaled but - not shown]) -_LT_DECL([], [hardcode_into_libs], [0], - [Whether we should hardcode library paths into libraries]) -_LT_DECL([], [sys_lib_search_path_spec], [2], - [Compile-time system search path for libraries]) -_LT_DECL([], [sys_lib_dlsearch_path_spec], [2], - [Run-time system search path for libraries]) -])# AC_LIBTOOL_SYS_DYNAMIC_LINKER - - -# AC_PATH_TOOL_PREFIX -# ------------------- -# find a file program which can recognise shared library -AC_DEFUN([AC_PATH_TOOL_PREFIX], -[AC_REQUIRE([LT_AC_PROG_EGREP])dnl -AC_MSG_CHECKING([for $1]) -AC_CACHE_VAL(lt_cv_path_MAGIC_CMD, -[case $MAGIC_CMD in -[[\\/*] | ?:[\\/]*]) - lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. - ;; -*) - lt_save_MAGIC_CMD="$MAGIC_CMD" - lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR -dnl $ac_dummy forces splitting on constant user-supplied paths. -dnl POSIX.2 word splitting is done only on the output of word expansions, -dnl not every word. This closes a longstanding sh security hole. - ac_dummy="m4_if([$2], , $PATH, [$2])" - for ac_dir in $ac_dummy; do - IFS="$lt_save_ifs" - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$1; then - lt_cv_path_MAGIC_CMD="$ac_dir/$1" - if test -n "$file_magic_test_file"; then - case $deplibs_check_method in - "file_magic "*) - file_magic_regex="`expr \"$deplibs_check_method\" : \"file_magic \(.*\)\"`" - MAGIC_CMD="$lt_cv_path_MAGIC_CMD" - if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | - $EGREP "$file_magic_regex" > /dev/null; then - : - else - cat <<_LT_EOF 1>&2 - -*** Warning: the command libtool uses to detect shared libraries, -*** $file_magic_cmd, produces output that libtool cannot recognize. -*** The result is that libtool may fail to recognize shared libraries -*** as such. This will affect the creation of libtool libraries that -*** depend on shared libraries, but programs linked with such libtool -*** libraries will work regardless of this problem. Nevertheless, you -*** may want to report the problem to your system manager and/or to -*** bug-libtool@gnu.org - -_LT_EOF - fi ;; - esac - fi - break - fi - done - IFS="$lt_save_ifs" - MAGIC_CMD="$lt_save_MAGIC_CMD" - ;; -esac]) -MAGIC_CMD="$lt_cv_path_MAGIC_CMD" -if test -n "$MAGIC_CMD"; then - AC_MSG_RESULT($MAGIC_CMD) -else - AC_MSG_RESULT(no) -fi -_LT_DECL([], [MAGIC_CMD], [0], - [Used to examine libraries when file_magic_cmd begins "file"])dnl -])# AC_PATH_TOOL_PREFIX - - -# AC_PATH_MAGIC -# ------------- -# find a file program which can recognise a shared library -AC_DEFUN([AC_PATH_MAGIC], -[AC_PATH_TOOL_PREFIX(${ac_tool_prefix}file, /usr/bin$PATH_SEPARATOR$PATH) -if test -z "$lt_cv_path_MAGIC_CMD"; then - if test -n "$ac_tool_prefix"; then - AC_PATH_TOOL_PREFIX(file, /usr/bin$PATH_SEPARATOR$PATH) - else - MAGIC_CMD=: - fi -fi -])# AC_PATH_MAGIC - - -# AC_PROG_LD -# ---------- -# find the pathname to the GNU or non-GNU linker -AC_DEFUN([AC_PROG_LD], -[AC_ARG_WITH([gnu-ld], - [AC_HELP_STRING([--with-gnu-ld], - [assume the C compiler uses GNU ld @<:@default=no@:>@])], - [test "$withval" = no || with_gnu_ld=yes], - [with_gnu_ld=no]) -AC_REQUIRE([LT_AC_PROG_SED])dnl -AC_REQUIRE([LT_AC_PROG_EGREP])dnl -AC_REQUIRE([AC_PROG_CC])dnl -AC_REQUIRE([AC_CANONICAL_HOST])dnl -AC_REQUIRE([AC_CANONICAL_BUILD])dnl - -ac_prog=ld -if test "$GCC" = yes; then - # Check if gcc -print-prog-name=ld gives a path. - AC_MSG_CHECKING([for ld used by $CC]) - case $host in - *-*-mingw*) - # gcc leaves a trailing carriage return which upsets mingw - ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; - *) - ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; - esac - case $ac_prog in - # Accept absolute paths. - [[\\/]]* | ?:[[\\/]]*) - re_direlt='/[[^/]][[^/]]*/\.\./' - # Canonicalize the pathname of ld - ac_prog=`echo $ac_prog| $SED 's%\\\\%/%g'` - while echo $ac_prog | $GREP "$re_direlt" > /dev/null 2>&1; do - ac_prog=`echo $ac_prog| $SED "s%$re_direlt%/%"` - done - test -z "$LD" && LD="$ac_prog" - ;; - "") - # If it fails, then pretend we aren't using GCC. - ac_prog=ld - ;; - *) - # If it is relative, then search for the first ld in PATH. - with_gnu_ld=unknown - ;; - esac -elif test "$with_gnu_ld" = yes; then - AC_MSG_CHECKING([for GNU ld]) -else - AC_MSG_CHECKING([for non-GNU ld]) -fi -AC_CACHE_VAL(lt_cv_path_LD, -[if test -z "$LD"; then - lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR - for ac_dir in $PATH; do - IFS="$lt_save_ifs" - test -z "$ac_dir" && ac_dir=. - if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then - lt_cv_path_LD="$ac_dir/$ac_prog" - # Check to see if the program is GNU ld. I'd rather use --version, - # but apparently some GNU ld's only accept -v. - # Break only if it was the GNU/non-GNU ld that we prefer. - case `"$lt_cv_path_LD" -v 2>&1 &1 /dev/null; then - case $host_cpu in - i*86 ) - # Not sure whether the presence of OpenBSD here was a mistake. - # Let's accept both of them until this is cleared up. - lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD)/i[[3-9]]86 (compact )?demand paged shared library' - lt_cv_file_magic_cmd=/usr/bin/file - lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` - ;; - esac - else - lt_cv_deplibs_check_method=pass_all - fi - ;; - -gnu*) - lt_cv_deplibs_check_method=pass_all - ;; - -hpux10.20* | hpux11*) - lt_cv_file_magic_cmd=/usr/bin/file - case "$host_cpu" in - ia64*) - lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|ELF-[[0-9]][[0-9]]) shared object file - IA64' - lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so - ;; - hppa*64*) - [lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - PA-RISC [0-9].[0-9]'] - lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl - ;; - *) - lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|PA-RISC[[0-9]].[[0-9]]) shared library' - lt_cv_file_magic_test_file=/usr/lib/libc.sl - ;; - esac - ;; - -irix5* | irix6* | nonstopux*) - case $LD in - *-32|*"-32 ") libmagic=32-bit;; - *-n32|*"-n32 ") libmagic=N32;; - *-64|*"-64 ") libmagic=64-bit;; - *) libmagic=never-match;; - esac - lt_cv_deplibs_check_method=pass_all - ;; - -# This must be Linux ELF. -linux*) - case $host_cpu in - alpha*|hppa*|i*86|ia64*|m68*|mips*|powerpc*|sparc*|s390*|sh*) - lt_cv_deplibs_check_method=pass_all ;; - *) - # glibc up to 2.1.1 does not perform some relocations on ARM - # this will be overridden with pass_all, but let us keep it just in case - lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )' ;; - esac - lt_cv_file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so` - lt_cv_deplibs_check_method=pass_all - ;; - -netbsd* | knetbsd*-gnu) - if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then - lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' - else - lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|_pic\.a)$' - fi - ;; - -newos6*) - lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (executable|dynamic lib)' - lt_cv_file_magic_cmd=/usr/bin/file - lt_cv_file_magic_test_file=/usr/lib/libnls.so - ;; - -nto-qnx*) - lt_cv_deplibs_check_method=unknown - ;; - -openbsd*) - lt_cv_file_magic_cmd=/usr/bin/file - lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` - if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then - lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB shared object' - else - lt_cv_deplibs_check_method='file_magic OpenBSD.* shared library' - fi - ;; - -osf3* | osf4* | osf5*) - lt_cv_deplibs_check_method=pass_all - ;; - -sco3.2v5*) - lt_cv_deplibs_check_method=pass_all - ;; - -solaris*) - lt_cv_deplibs_check_method=pass_all - ;; - -sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) - case $host_vendor in - motorola) - lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib) M[[0-9]][[0-9]]* Version [[0-9]]' - lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` - ;; - ncr) - lt_cv_deplibs_check_method=pass_all - ;; - sequent) - lt_cv_file_magic_cmd='/bin/file' - lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )' - ;; - sni) - lt_cv_file_magic_cmd='/bin/file' - lt_cv_deplibs_check_method="file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB dynamic lib" - lt_cv_file_magic_test_file=/lib/libc.so - ;; - siemens) - lt_cv_deplibs_check_method=pass_all - ;; - esac - ;; - -sysv5OpenUNIX8* | sysv5UnixWare7* | sysv5uw[[78]]* | unixware7* | sysv4*uw2*) - lt_cv_deplibs_check_method=pass_all - ;; -esac -]) -file_magic_cmd=$lt_cv_file_magic_cmd -deplibs_check_method=$lt_cv_deplibs_check_method -test -z "$deplibs_check_method" && deplibs_check_method=unknown - -_LT_DECL([], [deplibs_check_method], [1], - [Method to check whether dependent libraries are shared objects]) -_LT_DECL([], [file_magic_cmd], [1], - [Command to use when deplibs_check_method == "file_magic"]) -])# AC_DEPLIBS_CHECK_METHOD - - -# AC_PROG_NM -# ---------- -# find the pathname to a BSD-compatible name lister -AC_DEFUN([AC_PROG_NM], -[AC_CACHE_CHECK([for BSD-compatible nm], lt_cv_path_NM, -[if test -n "$NM"; then - # Let the user override the test. - lt_cv_path_NM="$NM" -else - lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR - for ac_dir in $PATH /usr/ccs/bin /usr/ucb /bin; do - IFS="$lt_save_ifs" - test -z "$ac_dir" && ac_dir=. - tmp_nm="$ac_dir/${ac_tool_prefix}nm" - if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then - # Check to see if the nm accepts a BSD-compat flag. - # Adding the `sed 1q' prevents false positives on HP-UX, which says: - # nm: unknown option "B" ignored - # Tru64's nm complains that /dev/null is an invalid object file - case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in - */dev/null* | *'Invalid file or object type'*) - lt_cv_path_NM="$tmp_nm -B" - break - ;; - *) - case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in - */dev/null*) - lt_cv_path_NM="$tmp_nm -p" - break - ;; - *) - lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but - continue # so that we can try to find one that supports BSD flags - ;; - esac - esac - fi - done - IFS="$lt_save_ifs" - test -z "$lt_cv_path_NM" && lt_cv_path_NM=nm -fi]) -NM="$lt_cv_path_NM" -test -z "$NM" && NM=nm -AC_SUBST([NM]) -_LT_DECL([], [NM], [1], [A BSD-compatible nm program])dnl -])# AC_PROG_NM - -# Old name: -AU_DEFUN([AM_PROG_NM], [AC_PROG_NM]) - - -# AC_CHECK_LIBM -# ------------- -# check for math library -AC_DEFUN([AC_CHECK_LIBM], -[AC_REQUIRE([AC_CANONICAL_HOST])dnl -LIBM= -case $host in -*-*-beos* | *-*-cygwin* | *-*-pw32* | *-*-darwin*) - # These system don't have libm, or don't need it - ;; -*-ncr-sysv4.3*) - AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM="-lmw") - AC_CHECK_LIB(m, cos, LIBM="$LIBM -lm") - ;; -*) - AC_CHECK_LIB(m, cos, LIBM="-lm") - ;; -esac -])# AC_CHECK_LIBM - - -# AC_LIBLTDL_CONVENIENCE([DIRECTORY]) -# ----------------------------------- -# sets LIBLTDL to the link flags for the libltdl convenience library and -# LTDLINCL to the include flags for the libltdl header and adds -# --enable-ltdl-convenience to the configure arguments. Note that LIBLTDL -# and LTDLINCL are not AC_SUBSTed, nor is AC_CONFIG_SUBDIRS called. If -# DIRECTORY is not provided, it is assumed to be `libltdl'. LIBLTDL will -# be prefixed with '${top_builddir}/' and LTDLINCL will be prefixed with -# '${top_srcdir}/' (note the single quotes!). If your package is not -# flat and you're not using automake, define top_builddir and -# top_srcdir appropriately in the Makefiles. -AC_DEFUN([AC_LIBLTDL_CONVENIENCE], -[case $enable_ltdl_convenience in - no) AC_MSG_ERROR([this package needs a convenience libltdl]) ;; - "") enable_ltdl_convenience=yes - ac_configure_args="$ac_configure_args --enable-ltdl-convenience" ;; - esac - LIBLTDL='${top_builddir}/'m4_if($#, 1,[$1], ['libltdl'])/libltdlc.la - LTDLINCL='-I${top_srcdir}/'m4_if($#, 1, [$1], ['libltdl']) - # For backwards non-gettext consistent compatibility... - INCLTDL="$LTDLINCL" -])# AC_LIBLTDL_CONVENIENCE - - -# AC_LIBLTDL_INSTALLABLE([DIRECTORY]) -# ----------------------------------- -# sets LIBLTDL to the link flags for the libltdl installable library and -# LTDLINCL to the include flags for the libltdl header and adds -# --enable-ltdl-install to the configure arguments. Note that LIBLTDL -# and LTDLINCL are not AC_SUBSTed, nor is AC_CONFIG_SUBDIRS called. If -# DIRECTORY is not provided and an installed libltdl is not found, it is -# assumed to be `libltdl'. LIBLTDL will be prefixed with '${top_builddir}/' -# and LTDLINCL will be prefixed with '${top_srcdir}/' (note the single -# quotes!). If your package is not flat and you're not using automake, -# define top_builddir and top_srcdir appropriately in the Makefiles. -# In the future, this macro may have to be called after AC_PROG_LIBTOOL. -AC_DEFUN([AC_LIBLTDL_INSTALLABLE], -[AC_CHECK_LIB(ltdl, lt_dlinit, - [test x"$enable_ltdl_install" != xyes && enable_ltdl_install=no], - [if test x"$enable_ltdl_install" = xno; then - AC_MSG_WARN([libltdl not installed, but installation disabled]) - else - enable_ltdl_install=yes - fi - ]) - if test x"$enable_ltdl_install" = x"yes"; then - ac_configure_args="$ac_configure_args --enable-ltdl-install" - LIBLTDL='${top_builddir}/'m4_if($#, 1, [$1], ['libltdl'])/libltdl.la - LTDLINCL='-I${top_srcdir}/'m4_if($#, 1, [$1], ['libltdl']) - else - ac_configure_args="$ac_configure_args --enable-ltdl-install=no" - LIBLTDL="-lltdl" - LTDLINCL= - fi - # For backwards non-gettext consistent compatibility... - INCLTDL="$LTDLINCL" -])# AC_LIBLTDL_INSTALLABLE - - -# AC_LIBTOOL_PROG_COMPILER_NO_RTTI([TAGNAME]) -# ------------------------------------------- -AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_NO_RTTI], -[AC_REQUIRE([_LT_AC_SYS_COMPILER])dnl - -_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= - -if test "$GCC" = yes; then - _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' - - AC_LIBTOOL_COMPILER_OPTION([if $compiler supports -fno-rtti -fno-exceptions], - lt_cv_prog_compiler_rtti_exceptions, - [-fno-rtti -fno-exceptions], [], - [_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)="$_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) -fno-rtti -fno-exceptions"]) -fi -_LT_TAGDECL([no_builtin_flag], [lt_prog_compiler_no_builtin_flag], [1], - [Compiler flag to turn off builtin functions]) -])# AC_LIBTOOL_PROG_COMPILER_NO_RTTI - - -# AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE -# --------------------------------- -AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE], -[AC_REQUIRE([AC_CANONICAL_HOST])dnl -AC_REQUIRE([LT_AC_PROG_EGREP])dnl -AC_REQUIRE([AC_PROG_CC])dnl -AC_REQUIRE([AC_PROG_LD])dnl -AC_REQUIRE([AC_PROG_NM])dnl -AC_REQUIRE([AC_OBJEXT])dnl -# Check for command to grab the raw symbol name followed by C symbol from nm. -AC_MSG_CHECKING([command to parse $NM output from $compiler object]) -AC_CACHE_VAL([lt_cv_sys_global_symbol_pipe], -[ -# These are sane defaults that work on at least a few old systems. -# [They come from Ultrix. What could be older than Ultrix?!! ;)] - -# Character class describing NM global symbol codes. -symcode='[[BCDEGRST]]' - -# Regexp to match symbols that can be accessed directly from C. -sympat='\([[_A-Za-z]][[_A-Za-z0-9]]*\)' - -# Transform the above into a raw symbol and a C symbol. -symxfrm='\1 \2\3 \3' - -# Transform an extracted symbol line into a proper C declaration -lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^. .* \(.*\)$/extern int \1;/p'" - -# Transform an extracted symbol line into symbol name and symbol address -lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" - -# Define system-specific variables. -case $host_os in -aix*) - symcode='[[BCDT]]' - ;; -cygwin* | mingw* | pw32*) - symcode='[[ABCDGISTW]]' - ;; -hpux*) # Its linker distinguishes data from code symbols - if test "$host_cpu" = ia64; then - symcode='[[ABCDEGRST]]' - fi - lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" - lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" - ;; -irix* | nonstopux*) - symcode='[[BCDEGRST]]' - ;; -osf*) - symcode='[[BCDEGQRST]]' - ;; -solaris* | sysv5*) - symcode='[[BDRT]]' - ;; -sysv4) - symcode='[[DFNSTU]]' - ;; -esac - -# Handle CRLF in mingw tool chain -opt_cr= -case $build_os in -mingw*) - opt_cr=`echo 'x\{0,1\}' | tr x '\015'` # option cr in regexp - ;; -esac - -# If we're using GNU nm, then use its standard symbol codes. -case `$NM -V 2>&1` in -*GNU* | *'with BFD'*) - symcode='[[ABCDGIRSTW]]' ;; -esac - -# Try without a prefix undercore, then with it. -for ac_symprfx in "" "_"; do - - # Write the raw and C identifiers. - lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[ ]]\($symcode$symcode*\)[[ ]][[ ]]*\($ac_symprfx\)$sympat$opt_cr$/$symxfrm/p'" - - # Check to see that the pipe works correctly. - pipe_works=no - - rm -f conftest* - cat > conftest.$ac_ext <<_LT_EOF -#ifdef __cplusplus -extern "C" { -#endif -char nm_test_var; -void nm_test_func(){} -#ifdef __cplusplus -} -#endif -int main(){nm_test_var='a';nm_test_func();return(0);} -_LT_EOF - - if AC_TRY_EVAL(ac_compile); then - # Now try to grab the symbols. - nlist=conftest.nm - if AC_TRY_EVAL(NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) && test -s "$nlist"; then - # Try sorting and uniquifying the output. - if sort "$nlist" | uniq > "$nlist"T; then - mv -f "$nlist"T "$nlist" - else - rm -f "$nlist"T - fi - - # Make sure that we snagged all the symbols we need. - if $GREP ' nm_test_var$' "$nlist" >/dev/null; then - if $GREP ' nm_test_func$' "$nlist" >/dev/null; then - cat <<_LT_EOF > conftest.$ac_ext -#ifdef __cplusplus -extern "C" { -#endif - -_LT_EOF - # Now generate the symbol file. - eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext' - - cat <<_LT_EOF >> conftest.$ac_ext -#if defined (__STDC__) && __STDC__ -# define lt_ptr_t void * -#else -# define lt_ptr_t char * -# define const -#endif - -/* The mapping between symbol names and symbols. */ -const struct { - const char *name; - lt_ptr_t address; -} -lt_preloaded_symbols[[]] = -{ -_LT_EOF - $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (lt_ptr_t) \&\2},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext - cat <<\_LT_EOF >> conftest.$ac_ext - {0, (lt_ptr_t) 0} -}; - -#ifdef __cplusplus -} -#endif -_LT_EOF - # Now try linking the two files. - mv conftest.$ac_objext conftstm.$ac_objext - lt_save_LIBS="$LIBS" - lt_save_CFLAGS="$CFLAGS" - LIBS="conftstm.$ac_objext" - CFLAGS="$CFLAGS$_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)" - if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext}; then - pipe_works=yes - fi - LIBS="$lt_save_LIBS" - CFLAGS="$lt_save_CFLAGS" - else - echo "cannot find nm_test_func in $nlist" >&AS_MESSAGE_LOG_FD - fi - else - echo "cannot find nm_test_var in $nlist" >&AS_MESSAGE_LOG_FD - fi - else - echo "cannot run $lt_cv_sys_global_symbol_pipe" >&AS_MESSAGE_LOG_FD - fi - else - echo "$progname: failed program was:" >&AS_MESSAGE_LOG_FD - cat conftest.$ac_ext >&5 - fi - rm -f conftest* conftst* - - # Do not use the global_symbol_pipe unless it works. - if test "$pipe_works" = yes; then - break - else - lt_cv_sys_global_symbol_pipe= - fi -done -]) -if test -z "$lt_cv_sys_global_symbol_pipe"; then - lt_cv_sys_global_symbol_to_cdecl= -fi -if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then - AC_MSG_RESULT(failed) -else - AC_MSG_RESULT(ok) -fi - -_LT_DECL([global_symbol_pipe], [lt_cv_sys_global_symbol_pipe], [1], - [Take the output of nm and produce a listing of raw symbols and C names]) -_LT_DECL([global_symbol_to_cdecl], [lt_cv_sys_global_symbol_to_cdecl], [1], - [Transform the output of nm in a proper C declaration]) -_LT_DECL([global_symbol_to_c_name_address], - [lt_cv_sys_global_symbol_to_c_name_address], [1], - [Transform the output of nm in a C name address pair]) -]) # AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE - - -# AC_LIBTOOL_PROG_COMPILER_PIC([TAGNAME]) -# --------------------------------------- -AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_PIC], -[_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)= -_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)= -_LT_AC_TAGVAR(lt_prog_compiler_static, $1)= - -AC_MSG_CHECKING([for $compiler option to produce PIC]) -m4_if([$1], [CXX], [ - # C++ specific cases for pic, static, wl, etc. - if test "$GXX" = yes; then - _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static' - - case $host_os in - aix*) - # All AIX code is PIC. - if test "$host_cpu" = ia64; then - # AIX 5 now supports IA64 processor - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - fi - ;; - amigaos*) - if test "$host_cpu" = m68k; then - # FIXME: we need at least 68020 code to build shared libraries, but - # adding the `-m68020' flag to GCC prevents building anything better, - # like `-m68040'. - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' - fi - ;; - beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) - # PIC is the default for these OSes. - ;; - mingw* | os2* | pw32*) - # This hack is so that the source file can tell whether it is being - # built for inclusion in a dll (and should export symbols for example). - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT' - ;; - darwin* | rhapsody*) - # PIC is the default on this platform - # Common symbols not allowed in MH_DYLIB files - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' - ;; - *djgpp*) - # DJGPP does not support shared libraries at all - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)= - ;; - sysv4*MP*) - if test -d /usr/nec; then - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic - fi - ;; - hpux*) - # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but - # not for PA HP-UX. - case "$host_cpu" in - hppa*64*|ia64*) - ;; - *) - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' - ;; - esac - ;; - *) - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' - ;; - esac - else - case $host_os in - aix4* | aix5*) - # All AIX code is PIC. - if test "$host_cpu" = ia64; then - # AIX 5 now supports IA64 processor - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - else - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' - fi - ;; - chorus*) - case $cc_basename in - cxch68) - # Green Hills C++ Compiler - # _LT_AC_TAGVAR(lt_prog_compiler_static, $1)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a" - ;; - esac - ;; - darwin*) - # PIC is the default on this platform - # Common symbols not allowed in MH_DYLIB files - case "$cc_basename" in - xlc*) - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-qnocommon' - _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - ;; - esac - ;; - dgux*) - case $cc_basename in - ec++) - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' - ;; - ghcx) - # Green Hills C++ Compiler - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic' - ;; - *) - ;; - esac - ;; - freebsd* | kfreebsd*-gnu) - # FreeBSD uses GNU C++ - ;; - hpux9* | hpux10* | hpux11*) - case $cc_basename in - CC) - _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)="${ac_cv_prog_cc_wl}-a ${ac_cv_prog_cc_wl}archive" - if test "$host_cpu" != ia64; then - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='+Z' - fi - ;; - aCC) - _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)="${ac_cv_prog_cc_wl}-a ${ac_cv_prog_cc_wl}archive" - case "$host_cpu" in - hppa*64*|ia64*) - # +Z the default - ;; - *) - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='+Z' - ;; - esac - ;; - *) - ;; - esac - ;; - irix5* | irix6* | nonstopux*) - case $cc_basename in - CC) - _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' - # CC pic flag -KPIC is the default. - ;; - *) - ;; - esac - ;; - linux*) - case $cc_basename in - KCC) - # KAI C++ Compiler - _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' - ;; - icpc) - # Intel C++ - _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static' - ;; - cxx) - # Compaq C++ - # Make sure the PIC flag is empty. It appears that all Alpha - # Linux and Compaq Tru64 Unix objects are PIC. - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)= - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' - ;; - *) - ;; - esac - ;; - lynxos*) - ;; - m88k*) - ;; - mvs*) - case $cc_basename in - cxx) - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-W c,exportall' - ;; - *) - ;; - esac - ;; - netbsd*) - ;; - osf3* | osf4* | osf5*) - case $cc_basename in - KCC) - _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' - ;; - RCC) - # Rational C++ 2.4.1 - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic' - ;; - cxx) - # Digital/Compaq C++ - _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - # Make sure the PIC flag is empty. It appears that all Alpha - # Linux and Compaq Tru64 Unix objects are PIC. - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)= - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' - ;; - *) - ;; - esac - ;; - psos*) - ;; - sco*) - case $cc_basename in - CC) - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' - ;; - *) - ;; - esac - ;; - solaris*) - case $cc_basename in - CC) - # Sun C++ 4.2, 5.x and Centerline C++ - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' - ;; - gcx) - # Green Hills C++ Compiler - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' - ;; - *) - ;; - esac - ;; - sunos4*) - case $cc_basename in - CC) - # Sun C++ 4.x - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic' - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - ;; - lcc) - # Lucid - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic' - ;; - *) - ;; - esac - ;; - tandem*) - case $cc_basename in - NCC) - # NonStop-UX NCC 3.20 - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' - ;; - *) - ;; - esac - ;; - unixware*) - ;; - vxworks*) - ;; - *) - _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no - ;; - esac - fi -], -[ - if test "$GCC" = yes; then - _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static' - - case $host_os in - aix*) - # All AIX code is PIC. - if test "$host_cpu" = ia64; then - # AIX 5 now supports IA64 processor - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - fi - ;; - - amigaos*) - if test "$host_cpu" = m68k; then - # FIXME: we need at least 68020 code to build shared libraries, but - # adding the `-m68020' flag to GCC prevents building anything better, - # like `-m68040'. - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' - fi - ;; - - beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) - # PIC is the default for these OSes. - ;; - - mingw* | pw32* | os2*) - # This hack is so that the source file can tell whether it is being - # built for inclusion in a dll (and should export symbols for example). - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT' - ;; - - darwin* | rhapsody*) - # PIC is the default on this platform - # Common symbols not allowed in MH_DYLIB files - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' - ;; - - msdosdjgpp*) - # Just because we use GCC doesn't mean we suddenly get shared libraries - # on systems that don't support them. - _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no - enable_shared=no - ;; - - sysv4*MP*) - if test -d /usr/nec; then - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic - fi - ;; - - hpux*) - # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but - # not for PA HP-UX. - case "$host_cpu" in - hppa*64*|ia64*) - # +Z the default - ;; - *) - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' - ;; - esac - ;; - - *) - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' - ;; - esac - else - # PORTME Check for flag to pass linker flags through the system compiler. - case $host_os in - aix*) - _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - if test "$host_cpu" = ia64; then - # AIX 5 now supports IA64 processor - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - else - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' - fi - ;; - darwin*) - # PIC is the default on this platform - # Common symbols not allowed in MH_DYLIB files - case "$cc_basename" in - xlc*) - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-qnocommon' - _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - ;; - esac - ;; - - mingw* | pw32* | os2*) - # This hack is so that the source file can tell whether it is being - # built for inclusion in a dll (and should export symbols for example). - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT' - ;; - - hpux9* | hpux10* | hpux11*) - _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but - # not for PA HP-UX. - case "$host_cpu" in - hppa*64*|ia64*) - # +Z the default - ;; - *) - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='+Z' - ;; - esac - # Is there a better lt_prog_compiler_static that works with the bundled CC? - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' - ;; - - irix5* | irix6* | nonstopux*) - _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - # PIC (with -KPIC) is the default. - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' - ;; - - newsos6) - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - ;; - - linux*) - case $CC in - icc* | ecc*) - _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static' - ;; - ccc*) - _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - # All Alpha code is PIC. - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' - ;; - esac - ;; - - osf3* | osf4* | osf5*) - _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - # All OSF/1 code is PIC. - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' - ;; - - sco3.2v5*) - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-Kpic' - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-dn' - ;; - - solaris*) - _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - ;; - - sunos4*) - _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - ;; - - sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) - _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - ;; - - sysv4*MP*) - if test -d /usr/nec ;then - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-Kconform_pic' - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - fi - ;; - - uts4*) - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic' - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - ;; - - *) - _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no - ;; - esac - fi -]) -case "$host_os" in - # For platforms which do not support PIC, -DPIC is meaningless: - *djgpp*) - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)= - ;; - *) - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])" - ;; -esac -AC_MSG_RESULT([$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)]) -_LT_TAGDECL([wl], [lt_prog_compiler_wl], [1], - [How to pass a linker flag through the compiler]) - -# -# Check to make sure the PIC flag actually works. -# -if test -n "$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)"; then - AC_LIBTOOL_COMPILER_OPTION([if $compiler PIC flag $_LT_AC_TAGVAR(lt_prog_compiler_pic, $1) works], - [_LT_AC_TAGVAR(lt_prog_compiler_pic_works, $1)], - [$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])], [], - [case $_LT_AC_TAGVAR(lt_prog_compiler_pic, $1) in - "" | " "*) ;; - *) _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=" $_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)" ;; - esac], - [_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)= - _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no]) -fi -_LT_TAGDECL([pic_flag], [lt_prog_compiler_pic], [1], - [Additional compiler flags for building library objects]) - -# -# Check to make sure the static flag actually works. -# -AC_LIBTOOL_LINKER_OPTION([if $compiler static flag $_LT_AC_TAGVAR(lt_prog_compiler_static, $1) works], - _LT_AC_TAGVAR(lt_prog_compiler_static_works, $1), - $_LT_AC_TAGVAR(lt_prog_compiler_static, $1), - [], - [_LT_AC_TAGVAR(lt_prog_compiler_static, $1)=]) -_LT_TAGDECL([link_static_flag], [lt_prog_compiler_static], [1], - [Compiler flag to prevent dynamic linking]) -])# AC_LIBTOOL_PROG_COMPILER_PIC - - -# AC_LIBTOOL_PROG_LD_SHLIBS([TAGNAME]) -# ------------------------------------ -# See if the linker supports building shared libraries. -AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS], -[AC_REQUIRE([LT_AC_PROG_EGREP])dnl -AC_REQUIRE([AC_PROG_LD])dnl -AC_REQUIRE([AC_PROG_NM])dnl -AC_REQUIRE([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE])dnl -AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) -m4_if([$1], [CXX], [ - _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' - case $host_os in - aix4* | aix5*) - # If we're using GNU nm, then we don't want the "-C" option. - # -C means demangle to AIX nm, but means don't demangle with GNU nm - if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then - _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\[$]2 == "T") || (\[$]2 == "D") || (\[$]2 == "B")) && ([substr](\[$]3,1,1) != ".")) { print \[$]3 } }'\'' | sort -u > $export_symbols' - else - _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\[$]2 == "T") || (\[$]2 == "D") || (\[$]2 == "B")) && ([substr](\[$]3,1,1) != ".")) { print \[$]3 } }'\'' | sort -u > $export_symbols' - fi - ;; - pw32*) - _LT_AC_TAGVAR(export_symbols_cmds, $1)="$ltdll_cmds" - ;; - cygwin* | mingw*) - _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGS]] /s/.* \([[^ ]]*\)/\1 DATA/;/^.* __nm__/s/^.* __nm__\([[^ ]]*\) [[^ ]]*/\1 DATA/;/^I /d;/^[[AITW]] /s/.* //'\'' | sort | uniq > $export_symbols' - ;; - *) - _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' - ;; - esac -], [ - runpath_var= - _LT_AC_TAGVAR(allow_undefined_flag, $1)= - _LT_AC_TAGVAR(always_export_symbols, $1)=no - _LT_AC_TAGVAR(archive_cmds, $1)= - _LT_AC_TAGVAR(archive_expsym_cmds, $1)= - _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=no - _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)= - _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' - _LT_AC_TAGVAR(hardcode_automatic, $1)=no - _LT_AC_TAGVAR(hardcode_direct, $1)=no - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)= - _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= - _LT_AC_TAGVAR(hardcode_libdir_separator, $1)= - _LT_AC_TAGVAR(hardcode_minus_L, $1)=no - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported - _LT_AC_TAGVAR(inherit_rpath, $1)=no - _LT_AC_TAGVAR(link_all_deplibs, $1)=unknown - _LT_AC_TAGVAR(module_cmds, $1)= - _LT_AC_TAGVAR(module_expsym_cmds, $1)= - _LT_AC_TAGVAR(old_archive_from_new_cmds, $1)= - _LT_AC_TAGVAR(old_archive_from_expsyms_cmds, $1)= - _LT_AC_TAGVAR(thread_safe_flag_spec, $1)= - _LT_AC_TAGVAR(whole_archive_flag_spec, $1)= - # include_expsyms should be a list of space-separated symbols to be *always* - # included in the symbol list - _LT_AC_TAGVAR(include_expsyms, $1)= - # exclude_expsyms can be an extended regexp of symbols to exclude - # it will be wrapped by ` (' and `)$', so one must not match beginning or - # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', - # as well as any symbol that contains `d'. - _LT_AC_TAGVAR(exclude_expsyms, $1)="_GLOBAL_OFFSET_TABLE_" - # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out - # platforms (ab)use it in PIC code, but their linkers get confused if - # the symbol is explicitly referenced. Since portable code cannot - # rely on this symbol name, it's probably fine to never include it in - # preloaded symbol tables. - extract_expsyms_cmds= - - case $host_os in - cygwin* | mingw* | pw32*) - # FIXME: the MSVC++ port hasn't been tested in a loooong time - # When not using gcc, we currently assume that we are using - # Microsoft Visual C++. - if test "$GCC" != yes; then - with_gnu_ld=no - fi - ;; - openbsd*) - with_gnu_ld=no - ;; - esac - - _LT_AC_TAGVAR(ld_shlibs, $1)=yes - if test "$with_gnu_ld" = yes; then - # If archive_cmds runs LD, not CC, wlarc should be empty - wlarc='${wl}' - - # See if GNU ld supports shared libraries. - case $host_os in - aix3* | aix4* | aix5*) - # On AIX/PPC, the GNU linker is very broken - if test "$host_cpu" != ia64; then - _LT_AC_TAGVAR(ld_shlibs, $1)=no - cat <<_LT_EOF 1>&2 - -*** Warning: the GNU linker, at least up to release 2.9.1, is reported -*** to be unable to reliably create shared libraries on AIX. -*** Therefore, libtool is disabling shared libraries support. If you -*** really care for shared libraries, you may want to modify your PATH -*** so that a non-GNU linker is found, and then restart. - -_LT_EOF - fi - ;; - - amigaos*) - if test "$host_cpu" = m68k; then - _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' - _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes - fi - - # Samuel A. Falvo II reports - # that the semantics of dynamic libraries on AmigaOS, at least up - # to version 4, is to share data among multiple programs linked - # with the same dynamic library. Since this doesn't match the - # behavior of shared libraries on other platforms, we can't use - # them. - _LT_AC_TAGVAR(ld_shlibs, $1)=no - ;; - - beos*) - if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then - _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported - # Joseph Beckenbach says some releases of gcc - # support --undefined. This deserves some investigation. FIXME - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - else - _LT_AC_TAGVAR(ld_shlibs, $1)=no - fi - ;; - - cygwin* | mingw* | pw32*) - # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, - # as there is no search path for DLLs. - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' - _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported - _LT_AC_TAGVAR(always_export_symbols, $1)=no - _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=yes - _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGS]] /s/.* \([[^ ]]*\)/\1 DATA/'\'' | $SED -e '\''/^[[AITW]] /s/.* //'\'' | sort | uniq > $export_symbols' - - if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib' - # If the export-symbols file already is a .def file (1st line - # is EXPORTS), use it as is; otherwise, prepend... - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then - cp $export_symbols $output_objdir/$soname.def; - else - echo EXPORTS > $output_objdir/$soname.def; - cat $export_symbols >> $output_objdir/$soname.def; - fi~ - $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib' - else - ld_shlibs=no - fi - ;; - - netbsd*) - if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then - _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' - wlarc= - else - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - fi - ;; - - solaris* | sysv5*) - if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then - _LT_AC_TAGVAR(ld_shlibs, $1)=no - cat <<_LT_EOF 1>&2 - -*** Warning: The releases 2.8.* of the GNU linker cannot reliably -*** create shared libraries on Solaris systems. Therefore, libtool -*** is disabling shared libraries support. We urge you to upgrade GNU -*** binutils to release 2.9.1 or newer. Another option is to modify -*** your PATH or compiler configuration so that the native linker is -*** used, and then restart. - -_LT_EOF - elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - else - _LT_AC_TAGVAR(ld_shlibs, $1)=no - fi - ;; - - sunos4*) - _LT_AC_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' - wlarc= - _LT_AC_TAGVAR(hardcode_direct, $1)=yes - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no - ;; - - linux*) - if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null; then - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - case `$LD -v 2>&1` in - *\ [01].* | *\ 2.[[0-9]].* | *\ 2.10.*) ;; # catch versions < 2.11 - *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... - *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... - *\ 2.11.*) ;; # other 2.11 versions - *) supports_anon_versioning=yes ;; - esac - if test "x$supports_anon_versioning" = xyes; then - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $output_objdir/$libname.ver~cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~$echo "local: *; };" >> $output_objdir/$libname.ver~$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' - else - _LT_AC_TAGVAR(archive_expsym_cmds, $1)=$_LT_AC_TAGVAR(archive_cmds, $1) - fi - else - _LT_AC_TAGVAR(ld_shlibs, $1)=no - fi - ;; - - *) - if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - else - _LT_AC_TAGVAR(ld_shlibs, $1)=no - fi - ;; - esac - - if test "$_LT_AC_TAGVAR(ld_shlibs, $1)" = yes; then - runpath_var=LD_RUN_PATH - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir' - _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' - # ancient GNU ld didn't support --whole-archive et. al. - if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then - _LT_AC_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' - else - _LT_AC_TAGVAR(whole_archive_flag_spec, $1)= - fi - fi - else - # PORTME fill in a description of your system's linker (not GNU ld) - case $host_os in - aix3*) - _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported - _LT_AC_TAGVAR(always_export_symbols, $1)=yes - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' - # Note: this linker hardcodes the directories in LIBPATH if there - # are no directories specified by -L. - _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes - if test "$GCC" = yes && test -z "$link_static_flag"; then - # Neither direct hardcoding nor static linking is supported with a - # broken collect2. - _LT_AC_TAGVAR(hardcode_direct, $1)=unsupported - fi - ;; - - aix4* | aix5*) - if test "$host_cpu" = ia64; then - # On IA64, the linker does run time linking by default, so we don't - # have to do anything special. - aix_use_runtimelinking=no - exp_sym_flag='-Bexport' - no_entry_flag="" - else - # If we're using GNU nm, then we don't want the "-C" option. - # -C means demangle to AIX nm, but means don't demangle with GNU nm - if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then - _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\[$]2 == "T") || (\[$]2 == "D") || (\[$]2 == "B")) && ([substr](\[$]3,1,1) != ".")) { print \[$]3 } }'\'' | sort -u > $export_symbols' - else - _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\[$]2 == "T") || (\[$]2 == "D") || (\[$]2 == "B")) && ([substr](\[$]3,1,1) != ".")) { print \[$]3 } }'\'' | sort -u > $export_symbols' - fi - aix_use_runtimelinking=no - - # Test if we are trying to use run time linking or normal - # AIX style linking. If -brtl is somewhere in LDFLAGS, we - # need to do runtime linking. - case $host_os in aix4.[[23]]|aix4.[[23]].*|aix5*) - for ld_flag in $LDFLAGS; do - if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then - aix_use_runtimelinking=yes - break - fi - done - esac - - exp_sym_flag='-bexport' - no_entry_flag='-bnoentry' - fi - - # When large executables or shared objects are built, AIX ld can - # have problems creating the table of contents. If linking a library - # or program results in "error TOC overflow" add -mminimal-toc to - # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not - # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. - - _LT_AC_TAGVAR(archive_cmds, $1)='' - _LT_AC_TAGVAR(hardcode_direct, $1)=yes - _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=':' - _LT_AC_TAGVAR(link_all_deplibs, $1)=yes - - if test "$GCC" = yes; then - case $host_os in aix4.[012]|aix4.[012].*) - # We only want to do this on AIX 4.2 and lower, the check - # below for broken collect2 doesn't work under 4.3+ - collect2name=`${CC} -print-prog-name=collect2` - if test -f "$collect2name" && - strings "$collect2name" | $GREP resolve_lib_name >/dev/null - then - # We have reworked collect2 - _LT_AC_TAGVAR(hardcode_direct, $1)=yes - else - # We have old collect2 - _LT_AC_TAGVAR(hardcode_direct, $1)=unsupported - # It fails to find uninstalled libraries when the uninstalled - # path is not listed in the libpath. Setting hardcode_minus_L - # to unsupported forces relinking - _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' - _LT_AC_TAGVAR(hardcode_libdir_separator, $1)= - fi - esac - shared_flag='-shared' - else - # not using gcc - if test "$host_cpu" = ia64; then - # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release - # chokes on -Wl,-G. The following line is correct: - shared_flag='-G' - else - if test "$aix_use_runtimelinking" = yes; then - shared_flag='${wl}-G' - else - shared_flag='${wl}-bM:SRE' - fi - fi - fi - - # It seems that -bexpall does not export symbols beginning with - # underscore (_), so it is better to generate a list of symbols to export. - _LT_AC_TAGVAR(always_export_symbols, $1)=yes - if test "$aix_use_runtimelinking" = yes; then - # Warning - without using the other runtime loading flags (-brtl), - # -berok will link without error, but may produce a broken library. - _LT_AC_TAGVAR(allow_undefined_flag, $1)='-berok' - # Determine the default libpath from the value encoded in an - # empty executable. - _LT_AC_SYS_LIBPATH_AIX - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" - _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols $shared_flag" - else - if test "$host_cpu" = ia64; then - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib' - _LT_AC_TAGVAR(allow_undefined_flag, $1)="-z nodefs" - _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols" - else - # Determine the default libpath from the value encoded in an - # empty executable. - _LT_AC_SYS_LIBPATH_AIX - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" - # Warning - without using the other run time loading flags, - # -berok will link without error, but may produce a broken library. - _LT_AC_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok' - _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok' - # -bexpall does not export symbols beginning with underscore (_) - _LT_AC_TAGVAR(always_export_symbols, $1)=yes - # Exported symbols can be pulled into shared objects from archives - _LT_AC_TAGVAR(whole_archive_flag_spec, $1)=' ' - _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes - # This is similar to how AIX traditionally builds it's shared libraries. - _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}-bE:$export_symbols ${wl}-bnoentry${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' - fi - fi - ;; - - amigaos*) - if test "$host_cpu" = m68k; then - _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' - _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes - fi - # see comment about different semantics on the GNU ld section - _LT_AC_TAGVAR(ld_shlibs, $1)=no - ;; - - bsdi4*) - _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)=-rdynamic - ;; - - cygwin* | mingw* | pw32*) - # When not using gcc, we currently assume that we are using - # Microsoft Visual C++. - # hardcode_libdir_flag_spec is actually meaningless, as there is - # no search path for DLLs. - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' - _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported - # Tell ltmain to make .lib files, not .a files. - libext=lib - # Tell ltmain to make .dll files, not .so files. - shrext_cmds=".dll" - # FIXME: Setting linknames here is a bad hack. - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | $SED -e '\''s/ -lc$//'\''` -link -dll~linknames=' - # The linker will automatically build a .lib file if we build a DLL. - _LT_AC_TAGVAR(old_archive_from_new_cmds, $1)='true' - # FIXME: Should let the user specify the lib program. - _LT_AC_TAGVAR(old_archive_cmds, $1)='lib /OUT:$oldlib$oldobjs$old_deplibs' - fix_srcfile_path='`cygpath -w "$srcfile"`' - _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=yes - ;; - - darwin* | rhapsody*) - case "$host_os" in - rhapsody* | darwin1.[[012]]) - _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-undefined ${wl}suppress' - ;; - *) # Darwin 1.3 on - if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then - _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-flat_namespace ${wl}-undefined ${Wl}suppress' - else - case ${MACOSX_DEPLOYMENT_TARGET} in - 10.[[012]]) - _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' - ;; - 10.*) - _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-undefined ${wl}dynamic_lookup' - ;; - esac - fi - ;; - esac - _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no - _LT_AC_TAGVAR(hardcode_direct, $1)=no - _LT_AC_TAGVAR(hardcode_automatic, $1)=yes - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported - _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='-all_load $convenience' - _LT_AC_TAGVAR(link_all_deplibs, $1)=yes - if test "$GCC" = yes ; then - output_verbose_link_cmd='echo' - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring' - _LT_AC_TAGVAR(module_cmds, $1)='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' - # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' - _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' - else - case "$cc_basename" in - xlc*) - output_verbose_link_cmd='echo' - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $verstring' - _LT_AC_TAGVAR(module_cmds, $1)='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' - # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' - _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' - ;; - *) - _LT_AC_TAGVAR(ld_shlibs, $1)=no - ;; - esac - fi - ;; - dgux*) - _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no - ;; - - freebsd1*) - _LT_AC_TAGVAR(ld_shlibs, $1)=no - ;; - - # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor - # support. Future versions do this automatically, but an explicit c++rt0.o - # does not break anything, and helps significantly (at the cost of a little - # extra space). - freebsd2.2*) - _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' - _LT_AC_TAGVAR(hardcode_direct, $1)=yes - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no - ;; - - # Unfortunately, older versions of FreeBSD 2 do not have this feature. - freebsd2*) - _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' - _LT_AC_TAGVAR(hardcode_direct, $1)=yes - _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no - ;; - - # FreeBSD 3 and greater uses gcc -shared to do shared libraries. - freebsd* | kfreebsd*-gnu) - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' - _LT_AC_TAGVAR(hardcode_direct, $1)=yes - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no - ;; - - hpux9*) - if test "$GCC" = yes; then - _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' - else - _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' - fi - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' - _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: - _LT_AC_TAGVAR(hardcode_direct, $1)=yes - - # hardcode_minus_L: Not really in the search PATH, - # but as the default location of the library. - _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes - _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' - ;; - - hpux10* | hpux11*) - if test "$GCC" = yes -a "$with_gnu_ld" = no; then - case "$host_cpu" in - hppa*64*|ia64*) - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' - ;; - *) - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' - ;; - esac - else - case "$host_cpu" in - hppa*64*|ia64*) - _LT_AC_TAGVAR(archive_cmds, $1)='$LD -b +h $soname -o $lib $libobjs $deplibs $linker_flags' - ;; - *) - _LT_AC_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' - ;; - esac - fi - if test "$with_gnu_ld" = no; then - case "$host_cpu" in - hppa*64*) - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' - _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='+b $libdir' - _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: - _LT_AC_TAGVAR(hardcode_direct, $1)=no - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no - ;; - ia64*) - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' - _LT_AC_TAGVAR(hardcode_direct, $1)=no - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no - - # hardcode_minus_L: Not really in the search PATH, - # but as the default location of the library. - _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes - ;; - *) - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' - _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: - _LT_AC_TAGVAR(hardcode_direct, $1)=yes - _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' - - # hardcode_minus_L: Not really in the search PATH, - # but as the default location of the library. - _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes - ;; - esac - fi - ;; - - irix5* | irix6* | nonstopux*) - if test "$GCC" = yes; then - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' - else - _LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib' - _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='-rpath $libdir' - fi - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' - _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: - _LT_AC_TAGVAR(inherit_rpath, $1)=yes - _LT_AC_TAGVAR(link_all_deplibs, $1)=yes - ;; - - netbsd*) - if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then - _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out - else - _LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF - fi - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' - _LT_AC_TAGVAR(hardcode_direct, $1)=yes - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no - ;; - - newsos6) - _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - _LT_AC_TAGVAR(hardcode_direct, $1)=yes - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' - _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no - ;; - - openbsd*) - _LT_AC_TAGVAR(hardcode_direct, $1)=yes - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no - if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' - _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' - else - case $host_os in - openbsd[[01]].* | openbsd2.[[0-7]] | openbsd2.[[0-7]].*) - _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' - ;; - *) - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' - ;; - esac - fi - ;; - - os2*) - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' - _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes - _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported - _LT_AC_TAGVAR(archive_cmds, $1)='$echo "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' - _LT_AC_TAGVAR(old_archive_from_new_cmds, $1)='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' - ;; - - osf3*) - if test "$GCC" = yes; then - _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - else - _LT_AC_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' - _LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' - fi - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' - _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: - ;; - - osf4* | osf5*) # as osf3* with the addition of -msym flag - if test "$GCC" = yes; then - _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' - else - _LT_AC_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' - _LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~ - $LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib~$rm $lib.exp' - - # Both c and cxx compiler support -rpath directly - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' - fi - _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: - ;; - - sco3.2v5*) - _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no - _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport' - runpath_var=LD_RUN_PATH - hardcode_runpath_var=yes - ;; - - solaris*) - _LT_AC_TAGVAR(no_undefined_flag, $1)=' -z text' - if test "$GCC" = yes; then - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ - $CC -shared ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$rm $lib.exp' - else - _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ - $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp' - fi - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no - case $host_os in - solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; - *) # Supported since Solaris 2.6 (maybe 2.5.1?) - _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' ;; - esac - _LT_AC_TAGVAR(link_all_deplibs, $1)=yes - ;; - - sunos4*) - if test "x$host_vendor" = xsequent; then - # Use $CC to link under sequent, because it throws in some extra .o - # files that make .init and .fini sections work. - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' - else - _LT_AC_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' - fi - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' - _LT_AC_TAGVAR(hardcode_direct, $1)=yes - _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no - ;; - - sysv4) - case $host_vendor in - sni) - _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - _LT_AC_TAGVAR(hardcode_direct, $1)=yes # is this really true??? - ;; - siemens) - ## LD is ld it makes a PLAMLIB - ## CC just makes a GrossModule. - _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags' - _LT_AC_TAGVAR(reload_cmds, $1)='$CC -r -o $output$reload_objs' - _LT_AC_TAGVAR(hardcode_direct, $1)=no - ;; - motorola) - _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - _LT_AC_TAGVAR(hardcode_direct, $1)=no #Motorola manual says yes, but my tests say they lie - ;; - esac - runpath_var='LD_RUN_PATH' - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no - ;; - - sysv4.3*) - _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no - _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='-Bexport' - ;; - - sysv4*MP*) - if test -d /usr/nec; then - _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no - runpath_var=LD_RUN_PATH - hardcode_runpath_var=yes - _LT_AC_TAGVAR(ld_shlibs, $1)=yes - fi - ;; - - sysv4.2uw2*) - _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags' - _LT_AC_TAGVAR(hardcode_direct, $1)=yes - _LT_AC_TAGVAR(hardcode_minus_L, $1)=no - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no - hardcode_runpath_var=yes - runpath_var=LD_RUN_PATH - ;; - - sysv5OpenUNIX8* | sysv5UnixWare7* | sysv5uw[[78]]* | unixware7*) - _LT_AC_TAGVAR(no_undefined_flag, $1)='${wl}-z ${wl}text' - if test "$GCC" = yes; then - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' - else - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' - fi - runpath_var='LD_RUN_PATH' - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no - ;; - - sysv5*) - _LT_AC_TAGVAR(no_undefined_flag, $1)=' -z text' - # $CC -shared without GNU ld will not create a library from C++ - # object files and a static libstdc++, better avoid it by now - _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ - $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp' - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)= - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no - runpath_var='LD_RUN_PATH' - ;; - - uts4*) - _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no - ;; - - *) - _LT_AC_TAGVAR(ld_shlibs, $1)=no - ;; - esac - - if test x$host_vendor = xsni; then - case $host in - sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) - export_dynamic_flag_spec='${wl}-Blargedynsym' - ;; - esac - fi - fi -]) -AC_MSG_RESULT([$_LT_AC_TAGVAR(ld_shlibs, $1)]) -test "$_LT_AC_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no - -_LT_DECL([], [libext], [0], [Old archive suffix (normally "a")])dnl -_LT_DECL([], [shrext_cmds], [1], [Shared library suffix (normally ".so")])dnl -_LT_DECL([], [extract_expsyms_cmds], [2], - [The commands to extract the exported symbol list from a shared archive]) - -variables_saved_for_relink="PATH $shlibpath_var $runpath_var" -if test "$GCC" = yes; then - variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" -fi -_LT_DECL([], [variables_saved_for_relink], [1], - [Variables whose values should be saved in libtool wrapper scripts and - restored at link time]) - -# -# Do we need to explicitly link libc? -# -case "x$_LT_AC_TAGVAR(archive_cmds_need_lc, $1)" in -x|xyes) - # Assume -lc should be added - _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes - - if test "$enable_shared" = yes && test "$GCC" = yes; then - case $_LT_AC_TAGVAR(archive_cmds, $1) in - *'~'*) - # FIXME: we may have to deal with multi-command sequences. - ;; - '$CC '*) - # Test whether the compiler implicitly links with -lc since on some - # systems, -lgcc has to come before -lc. If gcc already passes -lc - # to ld, don't add -lc before -lgcc. - AC_MSG_CHECKING([whether -lc should be explicitly linked in]) - $rm conftest* - printf "$lt_simple_compile_test_code" > conftest.$ac_ext - - if AC_TRY_EVAL(ac_compile) 2>conftest.err; then - soname=conftest - lib=conftest - libobjs=conftest.$ac_objext - deplibs= - wl=$_LT_AC_TAGVAR(lt_prog_compiler_wl, $1) - compiler_flags=-v - linker_flags=-v - verstring= - output_objdir=. - libname=conftest - lt_save_allow_undefined_flag=$_LT_AC_TAGVAR(allow_undefined_flag, $1) - _LT_AC_TAGVAR(allow_undefined_flag, $1)= - if AC_TRY_EVAL(_LT_AC_TAGVAR(archive_cmds, $1) 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) - then - _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no - else - _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes - fi - _LT_AC_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag - else - cat conftest.err 1>&5 - fi - $rm conftest* - AC_MSG_RESULT([$_LT_AC_TAGVAR(archive_cmds_need_lc, $1)]) - ;; - esac - fi - ;; -esac - -_LT_TAGDECL([build_libtool_need_lc], [archive_cmds_need_lc], [0], - [Whether or not to add -lc for building shared libraries]) -_LT_TAGDECL([allow_libtool_libs_with_static_runtimes], - [enable_shared_with_static_runtimes], [0], - [Whether or not to disallow shared libs when runtime libs are static]) -_LT_TAGDECL([], [export_dynamic_flag_spec], [1], - [Compiler flag to allow reflexive dlopens]) -_LT_TAGDECL([], [whole_archive_flag_spec], [1], - [Compiler flag to generate shared objects directly from archives]) -_LT_TAGDECL([], [old_archive_from_new_cmds], [2], - [Create an old-style archive from a shared archive]) -_LT_TAGDECL([], [old_archive_from_expsyms_cmds], [2], - [Create a temporary old-style archive to link instead of a shared archive]) -_LT_TAGDECL([], [archive_cmds], [2], [Commands used to build a shared archive]) -_LT_TAGDECL([], [archive_expsym_cmds], [2]) -_LT_TAGDECL([], [module_cmds], [2], - [Commands used to build a loadable module if different from building - a shared archive.]) -_LT_TAGDECL([], [module_expsym_cmds], [2]) -_LT_TAGDECL([], [allow_undefined_flag], [1], - [Flag that allows shared libraries with undefined symbols to be built]) -_LT_TAGDECL([], [no_undefined_flag], [1], - [Flag that enforces no undefined symbols]) -_LT_TAGDECL([], [hardcode_libdir_flag_spec], [1], - [Flag to hardcode $libdir into a binary during linking. - This must work even if $libdir does not exist]) -_LT_TAGDECL([], [hardcode_libdir_flag_spec_ld], [1], - [If ld is used when linking, flag to hardcode $libdir into a binary - during linking. This must work even if $libdir does not exist]) -_LT_TAGDECL([], [hardcode_libdir_separator], [1], - [Whether we need a single "-rpath" flag with a separated argument]) -_LT_TAGDECL([], [hardcode_direct], [0], - [Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes - DIR into the resulting binary]) -_LT_TAGDECL([], [hardcode_minus_L], [0], - [Set to "yes" if using the -LDIR flag during linking hardcodes DIR - into the resulting binary]) -_LT_TAGDECL([], [hardcode_shlibpath_var], [0], - [Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR - into the resulting binary]) -_LT_TAGDECL([], [hardcode_automatic], [0], - [Set to "yes" if building a shared library automatically hardcodes DIR - into the library and all subsequent libraries and executables linked - against it]) -_LT_TAGDECL([], [inherit_rpath], [0], - [Set to yes if linker adds runtime paths of dependent libraries - to runtime path list]) -_LT_TAGDECL([], [link_all_deplibs], [0], - [Whether libtool must link a program against all its dependency libraries]) -_LT_TAGDECL([], [fix_srcfile_path], [1], - [Fix the shell variable $srcfile for the compiler]) -_LT_TAGDECL([], [always_export_symbols], [0], - [Set to "yes" if exported symbols are required]) -_LT_TAGDECL([], [export_symbols_cmds], [2], - [The commands to list exported symbols]) -_LT_TAGDECL([], [exclude_expsyms], [1], - [Symbols that should not be listed in the preloaded symbols]) -_LT_TAGDECL([], [include_expsyms], [1], - [Symbols that must always be exported]) -dnl FIXME: Not yet implemented -dnl _LT_TAGDECL([], [thread_safe_flag_spec], [1], -dnl [Compiler flag to generate thread safe objects]) -])# AC_LIBTOOL_PROG_LD_SHLIBS - - -# _LT_LANG_C_CONFIG([TAG]) -# ------------------------ -# Ensure that the configuration variables for a C compiler are suitably -# defined. These variables are subsequently used by _LT_CONFIG to write -# the compiler configuration to `libtool'. -m4_define([_LT_LANG_C_CONFIG], -[AC_REQUIRE([LT_AC_PROG_EGREP]) -lt_save_CC="$CC" -AC_LANG_PUSH(C) - -# Source file extension for C test sources. -ac_ext=c - -# Object file extension for compiled C test sources. -objext=o -_LT_AC_TAGVAR(objext, $1)=$objext - -# Code to be used in simple compile tests -lt_simple_compile_test_code="int some_variable = 0;\n" - -# Code to be used in simple link tests -lt_simple_link_test_code='int main(){return(0);}\n' - -_LT_AC_SYS_COMPILER -# Save the default compiler, since it gets overwritten when the other -# tags are being tested, and _LT_AC_TAGVAR(compiler, []) is a NOP. -compiler_DEFAULT=$CC - -# -# Check for any special shared library compilation flags. -# -_LT_AC_TAGVAR(lt_prog_cc_shlib, $1)= -if test "$GCC" = no; then - case $host_os in - sco3.2v5*) - _LT_AC_TAGVAR(lt_prog_cc_shlib, $1)='-belf' - ;; - esac -fi -if test -n "$_LT_AC_TAGVAR(lt_prog_cc_shlib, $1)"; then - AC_MSG_WARN([`$CC' requires `$_LT_AC_TAGVAR(lt_prog_cc_shlib, $1)' to build shared libraries]) - if echo "$old_CC $old_CFLAGS " | $GREP "[[ ]]$_LT_AC_TAGVAR(lt_prog_cc_shlib, $1)[[ ]]" >/dev/null; then : - else - AC_MSG_WARN([add `$_LT_AC_TAGVAR(lt_prog_cc_shlib, $1)' to the CC or CFLAGS env variable and reconfigure]) - _LT_AC_TAGVAR(lt_cv_prog_cc_can_build_shared, $1)=no - fi -fi - - -## CAVEAT EMPTOR: -## There is no encapsulation within the following macros, do not change -## the running order or otherwise move them around unless you know exactly -## what you are doing... -if test -n "$compiler"; then - AC_LIBTOOL_PROG_COMPILER_NO_RTTI($1) - AC_LIBTOOL_PROG_COMPILER_PIC($1) - AC_LIBTOOL_PROG_CC_C_O($1) - AC_LIBTOOL_SYS_HARD_LINK_LOCKS($1) - AC_LIBTOOL_PROG_LD_SHLIBS($1) - AC_LIBTOOL_SYS_DYNAMIC_LINKER($1) - AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1) - AC_LIBTOOL_SYS_LIB_STRIP - AC_LIBTOOL_DLOPEN_SELF($1) - - # Report which library types will actually be built - AC_MSG_CHECKING([if libtool supports shared libraries]) - AC_MSG_RESULT([$can_build_shared]) - - AC_MSG_CHECKING([whether to build shared libraries]) - test "$can_build_shared" = "no" && enable_shared=no - - # On AIX, shared libraries and static libraries use the same namespace, and - # are all built from PIC. - case "$host_os" in - aix3*) - test "$enable_shared" = yes && enable_static=no - if test -n "$RANLIB"; then - archive_cmds="$archive_cmds~\$RANLIB \$lib" - postinstall_cmds='$RANLIB $lib' - fi - ;; - - aix4* | aix5*) - if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then - test "$enable_shared" = yes && enable_static=no - fi - ;; - esac - AC_MSG_RESULT([$enable_shared]) - - AC_MSG_CHECKING([whether to build static libraries]) - # Make sure either enable_shared or enable_static is yes. - test "$enable_shared" = yes || enable_static=yes - AC_MSG_RESULT([$enable_static]) - - _LT_CONFIG($1) -fi -AC_LANG_POP -CC="$lt_save_CC" -])# _LT_LANG_C_CONFIG - - -# _LT_LANG_CXX_CONFIG([TAG]) -# -------------------------- -# Ensure that the configuration variables for a C++ compiler are suitably -# defined. These variables are subsequently used by _LT_CONFIG to write -# the compiler configuration to `libtool'. -m4_define([_LT_LANG_CXX_CONFIG], -[AC_LANG_PUSH(C++) -AC_REQUIRE([LT_AC_PROG_EGREP]) -AC_REQUIRE([AC_PROG_CXX]) -AC_REQUIRE([AC_PROG_CXXCPP]) - -_LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no -_LT_AC_TAGVAR(allow_undefined_flag, $1)= -_LT_AC_TAGVAR(always_export_symbols, $1)=no -_LT_AC_TAGVAR(archive_expsym_cmds, $1)= -_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)= -_LT_AC_TAGVAR(hardcode_direct, $1)=no -_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)= -_LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= -_LT_AC_TAGVAR(hardcode_libdir_separator, $1)= -_LT_AC_TAGVAR(hardcode_minus_L, $1)=no -_LT_AC_TAGVAR(hardcode_automatic, $1)=no -_LT_AC_TAGVAR(inherit_rpath, $1)=no -_LT_AC_TAGVAR(module_cmds, $1)= -_LT_AC_TAGVAR(module_expsym_cmds, $1)= -_LT_AC_TAGVAR(link_all_deplibs, $1)=unknown -_LT_AC_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds -_LT_AC_TAGVAR(no_undefined_flag, $1)= -_LT_AC_TAGVAR(whole_archive_flag_spec, $1)= -_LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=no - -# Source file extension for C++ test sources. -ac_ext=cc - -# Object file extension for compiled C++ test sources. -objext=o -_LT_AC_TAGVAR(objext, $1)=$objext - -# Code to be used in simple compile tests -lt_simple_compile_test_code="int some_variable = 0;\n" - -# Code to be used in simple link tests -lt_simple_link_test_code='int main(int, char *[]) { return(0); }\n' - -# ltmain only uses $CC for tagged configurations so make sure $CC is set. -_LT_AC_SYS_COMPILER - -# Allow CC to be a program name with arguments. -lt_save_CC=$CC -lt_save_LD=$LD -lt_save_GCC=$GCC -GCC=$GXX -lt_save_with_gnu_ld=$with_gnu_ld -lt_save_path_LD=$lt_cv_path_LD -if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then - lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx -else - unset lt_cv_prog_gnu_ld -fi -if test -n "${lt_cv_path_LDCXX+set}"; then - lt_cv_path_LD=$lt_cv_path_LDCXX -else - unset lt_cv_path_LD -fi -test -z "${LDCXX+set}" || LD=$LDCXX -CC=${CXX-"c++"} -compiler=$CC -_LT_AC_TAGVAR(compiler, $1)=$CC -cc_basename=`$echo X"$compiler" | $Xsed -e 's%^.*/%%'` - -if test -n "$compiler"; then - # We don't want -fno-exception when compiling C++ code, so set the - # no_builtin_flag separately - if test "$GXX" = yes; then - _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' - else - _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= - fi - - if test "$GXX" = yes; then - # Set up default GNU C++ configuration - - AC_PROG_LD - - # Check if GNU C++ uses GNU ld as the underlying linker, since the - # archiving commands below assume that GNU ld is being used. - if test "$with_gnu_ld" = yes; then - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir' - _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' - - # If archive_cmds runs LD, not CC, wlarc should be empty - # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to - # investigate it a little bit more. (MM) - wlarc='${wl}' - - # ancient GNU ld didn't support --whole-archive et. al. - if eval "`$CC -print-prog-name=ld` --help 2>&1" | - $GREP 'no-whole-archive' > /dev/null; then - _LT_AC_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' - else - _LT_AC_TAGVAR(whole_archive_flag_spec, $1)= - fi - else - with_gnu_ld=no - wlarc= - - # A generic and very simple default shared library creation - # command for GNU C++ for the case where it uses the native - # linker, instead of GNU ld. If possible, this setting should - # overridden to take advantage of the native linker features on - # the platform it is being used on. - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' - fi - - # Commands to make compiler produce verbose output that lists - # what "hidden" libraries, object files and flags are used when - # linking a shared library. - output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"' - - else - GXX=no - with_gnu_ld=no - wlarc= - fi - - # PORTME: fill in a description of your system's C++ link characteristics - AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) - _LT_AC_TAGVAR(ld_shlibs, $1)=yes - case $host_os in - aix3*) - # FIXME: insert proper C++ library support - _LT_AC_TAGVAR(ld_shlibs, $1)=no - ;; - aix4* | aix5*) - if test "$host_cpu" = ia64; then - # On IA64, the linker does run time linking by default, so we don't - # have to do anything special. - aix_use_runtimelinking=no - exp_sym_flag='-Bexport' - no_entry_flag="" - else - aix_use_runtimelinking=no - - # Test if we are trying to use run time linking or normal - # AIX style linking. If -brtl is somewhere in LDFLAGS, we - # need to do runtime linking. - case $host_os in aix4.[[23]]|aix4.[[23]].*|aix5*) - for ld_flag in $LDFLAGS; do - case $ld_flag in - *-brtl*) - aix_use_runtimelinking=yes - break - ;; - esac - done - esac - - exp_sym_flag='-bexport' - no_entry_flag='-bnoentry' - fi - - # When large executables or shared objects are built, AIX ld can - # have problems creating the table of contents. If linking a library - # or program results in "error TOC overflow" add -mminimal-toc to - # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not - # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. - - _LT_AC_TAGVAR(archive_cmds, $1)='' - _LT_AC_TAGVAR(hardcode_direct, $1)=yes - _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=':' - _LT_AC_TAGVAR(link_all_deplibs, $1)=yes - - if test "$GXX" = yes; then - case $host_os in aix4.[012]|aix4.[012].*) - # We only want to do this on AIX 4.2 and lower, the check - # below for broken collect2 doesn't work under 4.3+ - collect2name=`${CC} -print-prog-name=collect2` - if test -f "$collect2name" && - strings "$collect2name" | $GREP resolve_lib_name >/dev/null - then - # We have reworked collect2 - _LT_AC_TAGVAR(hardcode_direct, $1)=yes - else - # We have old collect2 - _LT_AC_TAGVAR(hardcode_direct, $1)=unsupported - # It fails to find uninstalled libraries when the uninstalled - # path is not listed in the libpath. Setting hardcode_minus_L - # to unsupported forces relinking - _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' - _LT_AC_TAGVAR(hardcode_libdir_separator, $1)= - fi - esac - shared_flag='-shared' - else - # not using gcc - if test "$host_cpu" = ia64; then - # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release - # chokes on -Wl,-G. The following line is correct: - shared_flag='-G' - else - if test "$aix_use_runtimelinking" = yes; then - shared_flag='${wl}-G' - else - shared_flag='${wl}-bM:SRE' - fi - fi - fi - - # It seems that -bexpall does not export symbols beginning with - # underscore (_), so it is better to generate a list of symbols to export. - _LT_AC_TAGVAR(always_export_symbols, $1)=yes - if test "$aix_use_runtimelinking" = yes; then - # Warning - without using the other runtime loading flags (-brtl), - # -berok will link without error, but may produce a broken library. - _LT_AC_TAGVAR(allow_undefined_flag, $1)='-berok' - # Determine the default libpath from the value encoded in an empty - # executable. - _LT_AC_SYS_LIBPATH_AIX - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" - - _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols $shared_flag" - else - if test "$host_cpu" = ia64; then - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib' - _LT_AC_TAGVAR(allow_undefined_flag, $1)="-z nodefs" - _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols" - else - # Determine the default libpath from the value encoded in an - # empty executable. - _LT_AC_SYS_LIBPATH_AIX - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" - # Warning - without using the other run time loading flags, - # -berok will link without error, but may produce a broken library. - _LT_AC_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok' - _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok' - # -bexpall does not export symbols beginning with underscore (_) - _LT_AC_TAGVAR(always_export_symbols, $1)=yes - # Exported symbols can be pulled into shared objects from archives - _LT_AC_TAGVAR(whole_archive_flag_spec, $1)=' ' - _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes - # This is similar to how AIX traditionally builds it's shared libraries. - _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}-bE:$export_symbols ${wl}-bnoentry${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' - fi - fi - ;; - chorus*) - case $cc_basename in - *) - # FIXME: insert proper C++ library support - _LT_AC_TAGVAR(ld_shlibs, $1)=no - ;; - esac - ;; - - cygwin* | mingw* | pw32*) - # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, - # as there is no search path for DLLs. - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' - _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported - _LT_AC_TAGVAR(always_export_symbols, $1)=no - _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=yes - - if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib' - # If the export-symbols file already is a .def file (1st line - # is EXPORTS), use it as is; otherwise, prepend... - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then - cp $export_symbols $output_objdir/$soname.def; - else - echo EXPORTS > $output_objdir/$soname.def; - cat $export_symbols >> $output_objdir/$soname.def; - fi~ - $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib' - else - _LT_AC_TAGVAR(ld_shlibs, $1)=no - fi - ;; - darwin* | rhapsody*) - case "$host_os" in - rhapsody* | darwin1.[[012]]) - _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-undefined ${wl}suppress' - ;; - *) # Darwin 1.3 on - if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then - _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-flat_namespace ${wl}-undefined ${Wl}suppress' - else - case ${MACOSX_DEPLOYMENT_TARGET} in - 10.[[012]]) - _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' - ;; - 10.*) - _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-undefined ${wl}dynamic_lookup' - ;; - esac - fi - ;; - esac - _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no - _LT_AC_TAGVAR(hardcode_direct, $1)=no - _LT_AC_TAGVAR(hardcode_automatic, $1)=yes - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported - _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='-all_load $convenience' - _LT_AC_TAGVAR(link_all_deplibs, $1)=yes - - if test "$GXX" = yes ; then - lt_int_apple_cc_single_mod=no - output_verbose_link_cmd='echo' - if $CC -dumpspecs 2>&1 | $GREP 'single_module' >/dev/null ; then - lt_int_apple_cc_single_mod=yes - fi - if test "X$lt_int_apple_cc_single_mod" = Xyes ; then - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring' - else - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -r -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring' - fi - _LT_AC_TAGVAR(module_cmds, $1)='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' - # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's - if test "X$lt_int_apple_cc_single_mod" = Xyes ; then - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' - else - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -r -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' - fi - _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' - else - case "$cc_basename" in - xlc*) - output_verbose_link_cmd='echo' - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj ${wl}-single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $verstring' - _LT_AC_TAGVAR(module_cmds, $1)='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' - # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj ${wl}-single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' - _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' - ;; - *) - _LT_AC_TAGVAR(ld_shlibs, $1)=no - ;; - esac - fi - ;; - - dgux*) - case $cc_basename in - ec++) - # FIXME: insert proper C++ library support - _LT_AC_TAGVAR(ld_shlibs, $1)=no - ;; - ghcx) - # Green Hills C++ Compiler - # FIXME: insert proper C++ library support - _LT_AC_TAGVAR(ld_shlibs, $1)=no - ;; - *) - # FIXME: insert proper C++ library support - _LT_AC_TAGVAR(ld_shlibs, $1)=no - ;; - esac - ;; - freebsd[12]*) - # C++ shared libraries reported to be fairly broken before switch to ELF - _LT_AC_TAGVAR(ld_shlibs, $1)=no - ;; - freebsd-elf*) - _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no - ;; - freebsd* | kfreebsd*-gnu) - # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF - # conventions - _LT_AC_TAGVAR(ld_shlibs, $1)=yes - ;; - gnu*) - ;; - hpux9*) - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' - _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: - _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' - _LT_AC_TAGVAR(hardcode_direct, $1)=yes - _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, - # but as the default - # location of the library. - - case $cc_basename in - CC) - # FIXME: insert proper C++ library support - _LT_AC_TAGVAR(ld_shlibs, $1)=no - ;; - aCC) - _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' - # Commands to make compiler produce verbose output that lists - # what "hidden" libraries, object files and flags are used when - # linking a shared library. - # - # There doesn't appear to be a way to prevent this compiler from - # explicitly linking system object files so we need to strip them - # from the output so that they don't get included in the library - # dependencies. - output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' - ;; - *) - if test "$GXX" = yes; then - _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$CC -shared -nostdlib -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' - else - # FIXME: insert proper C++ library support - _LT_AC_TAGVAR(ld_shlibs, $1)=no - fi - ;; - esac - ;; - hpux10*|hpux11*) - if test $with_gnu_ld = no; then - case "$host_cpu" in - hppa*64*) - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' - _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='+b $libdir' - _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: - ;; - ia64*) - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' - ;; - *) - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' - _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: - _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' - ;; - esac - fi - case "$host_cpu" in - hppa*64*) - _LT_AC_TAGVAR(hardcode_direct, $1)=no - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no - ;; - ia64*) - _LT_AC_TAGVAR(hardcode_direct, $1)=no - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no - _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, - # but as the default - # location of the library. - ;; - *) - _LT_AC_TAGVAR(hardcode_direct, $1)=yes - _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, - # but as the default - # location of the library. - ;; - esac - - case $cc_basename in - CC) - # FIXME: insert proper C++ library support - _LT_AC_TAGVAR(ld_shlibs, $1)=no - ;; - aCC) - case "$host_cpu" in - hppa*64*|ia64*) - _LT_AC_TAGVAR(archive_cmds, $1)='$LD -b +h $soname -o $lib $linker_flags $libobjs $deplibs' - ;; - *) - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' - ;; - esac - # Commands to make compiler produce verbose output that lists - # what "hidden" libraries, object files and flags are used when - # linking a shared library. - # - # There doesn't appear to be a way to prevent this compiler from - # explicitly linking system object files so we need to strip them - # from the output so that they don't get included in the library - # dependencies. - output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' - ;; - *) - if test "$GXX" = yes; then - if test $with_gnu_ld = no; then - case "$host_cpu" in - ia64*|hppa*64*) - _LT_AC_TAGVAR(archive_cmds, $1)='$LD -b +h $soname -o $lib $linker_flags $libobjs $deplibs' - ;; - *) - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' - ;; - esac - fi - else - # FIXME: insert proper C++ library support - _LT_AC_TAGVAR(ld_shlibs, $1)=no - fi - ;; - esac - ;; - irix5* | irix6*) - case $cc_basename in - CC) - # SGI C++ - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib' - - # Archives containing C++ object files must be created using - # "CC -ar", where "CC" is the IRIX C++ compiler. This is - # necessary to make sure instantiated templates are included - # in the archive. - _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -ar -WR,-u -o $oldlib $oldobjs' - ;; - *) - if test "$GXX" = yes; then - if test "$with_gnu_ld" = no; then - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${objdir}/so_locations -o $lib' - else - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` -o $lib' - fi - fi - _LT_AC_TAGVAR(link_all_deplibs, $1)=yes - ;; - esac - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' - _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: - _LT_AC_TAGVAR(inherit_rpath, $1)=yes - ;; - linux*) - case $cc_basename in - KCC) - # Kuck and Associates, Inc. (KAI) C++ Compiler - - # KCC will only create a shared library if the output file - # ends with ".so" (or ".sl" for HP-UX), so rename the library - # to its proper name (with version) after linking. - _LT_AC_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib' - # Commands to make compiler produce verbose output that lists - # what "hidden" libraries, object files and flags are used when - # linking a shared library. - # - # There doesn't appear to be a way to prevent this compiler from - # explicitly linking system object files so we need to strip them - # from the output so that they don't get included in the library - # dependencies. - output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' - - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath,$libdir' - _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' - - # Archives containing C++ object files must be created using - # "CC -Bstatic", where "CC" is the KAI C++ compiler. - _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' - ;; - icpc) - # Intel C++ - with_gnu_ld=yes - _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' - _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' - _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive' - ;; - cxx) - # Compaq C++ - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib ${wl}-retain-symbols-file $wl$export_symbols' - - runpath_var=LD_RUN_PATH - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' - _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: - - # Commands to make compiler produce verbose output that lists - # what "hidden" libraries, object files and flags are used when - # linking a shared library. - # - # There doesn't appear to be a way to prevent this compiler from - # explicitly linking system object files so we need to strip them - # from the output so that they don't get included in the library - # dependencies. - output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' - ;; - esac - ;; - lynxos*) - # FIXME: insert proper C++ library support - _LT_AC_TAGVAR(ld_shlibs, $1)=no - ;; - m88k*) - # FIXME: insert proper C++ library support - _LT_AC_TAGVAR(ld_shlibs, $1)=no - ;; - mvs*) - case $cc_basename in - cxx) - # FIXME: insert proper C++ library support - _LT_AC_TAGVAR(ld_shlibs, $1)=no - ;; - *) - # FIXME: insert proper C++ library support - _LT_AC_TAGVAR(ld_shlibs, $1)=no - ;; - esac - ;; - netbsd*) - if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then - _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags' - wlarc= - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' - _LT_AC_TAGVAR(hardcode_direct, $1)=yes - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no - fi - # Workaround some broken pre-1.5 toolchains - output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"' - ;; - osf3*) - case $cc_basename in - KCC) - # Kuck and Associates, Inc. (KAI) C++ Compiler - - # KCC will only create a shared library if the output file - # ends with ".so" (or ".sl" for HP-UX), so rename the library - # to its proper name (with version) after linking. - _LT_AC_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' - - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' - _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: - - # Archives containing C++ object files must be created using - # "CC -Bstatic", where "CC" is the KAI C++ compiler. - _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' - - ;; - RCC) - # Rational C++ 2.4.1 - # FIXME: insert proper C++ library support - _LT_AC_TAGVAR(ld_shlibs, $1)=no - ;; - cxx) - _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && echo ${wl}-set_version $verstring` -update_registry ${objdir}/so_locations -o $lib' - - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' - _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: - - # Commands to make compiler produce verbose output that lists - # what "hidden" libraries, object files and flags are used when - # linking a shared library. - # - # There doesn't appear to be a way to prevent this compiler from - # explicitly linking system object files so we need to strip them - # from the output so that they don't get included in the library - # dependencies. - output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' - ;; - *) - if test "$GXX" = yes && test "$with_gnu_ld" = no; then - _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${objdir}/so_locations -o $lib' - - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' - _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: - - # Commands to make compiler produce verbose output that lists - # what "hidden" libraries, object files and flags are used when - # linking a shared library. - output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"' - - else - # FIXME: insert proper C++ library support - _LT_AC_TAGVAR(ld_shlibs, $1)=no - fi - ;; - esac - ;; - osf4* | osf5*) - case $cc_basename in - KCC) - # Kuck and Associates, Inc. (KAI) C++ Compiler - - # KCC will only create a shared library if the output file - # ends with ".so" (or ".sl" for HP-UX), so rename the library - # to its proper name (with version) after linking. - _LT_AC_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' - - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' - _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: - - # Archives containing C++ object files must be created using - # the KAI C++ compiler. - _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -o $oldlib $oldobjs' - ;; - RCC) - # Rational C++ 2.4.1 - # FIXME: insert proper C++ library support - _LT_AC_TAGVAR(ld_shlibs, $1)=no - ;; - cxx) - _LT_AC_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib' - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~ - echo "-hidden">> $lib.exp~ - $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname -Wl,-input -Wl,$lib.exp `test -n "$verstring" && echo -set_version $verstring` -update_registry $objdir/so_locations -o $lib~ - $rm $lib.exp' - - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' - _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: - - # Commands to make compiler produce verbose output that lists - # what "hidden" libraries, object files and flags are used when - # linking a shared library. - # - # There doesn't appear to be a way to prevent this compiler from - # explicitly linking system object files so we need to strip them - # from the output so that they don't get included in the library - # dependencies. - output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' - ;; - *) - if test "$GXX" = yes && test "$with_gnu_ld" = no; then - _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${objdir}/so_locations -o $lib' - - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' - _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: - - # Commands to make compiler produce verbose output that lists - # what "hidden" libraries, object files and flags are used when - # linking a shared library. - output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"' - - else - # FIXME: insert proper C++ library support - _LT_AC_TAGVAR(ld_shlibs, $1)=no - fi - ;; - esac - ;; - psos*) - # FIXME: insert proper C++ library support - _LT_AC_TAGVAR(ld_shlibs, $1)=no - ;; - sco*) - _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no - case $cc_basename in - CC) - # FIXME: insert proper C++ library support - _LT_AC_TAGVAR(ld_shlibs, $1)=no - ;; - *) - # FIXME: insert proper C++ library support - _LT_AC_TAGVAR(ld_shlibs, $1)=no - ;; - esac - ;; - sunos4*) - case $cc_basename in - CC) - # Sun C++ 4.x - # FIXME: insert proper C++ library support - _LT_AC_TAGVAR(ld_shlibs, $1)=no - ;; - lcc) - # Lucid - # FIXME: insert proper C++ library support - _LT_AC_TAGVAR(ld_shlibs, $1)=no - ;; - *) - # FIXME: insert proper C++ library support - _LT_AC_TAGVAR(ld_shlibs, $1)=no - ;; - esac - ;; - solaris*) - case $cc_basename in - CC) - # Sun C++ 4.2, 5.x and Centerline C++ - _LT_AC_TAGVAR(no_undefined_flag, $1)=' -zdefs' - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -nolib -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ - $CC -G${allow_undefined_flag} -nolib ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp' - - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no - case $host_os in - solaris2.[0-5] | solaris2.[0-5].*) ;; - *) - # The C++ compiler is used as linker so we must use $wl - # flag to pass the commands to the underlying system - # linker. We must also pass each convience library through - # to the system linker between allextract/defaultextract. - # The C++ compiler will combine linker options so we - # cannot just pass the convience library names through - # without $wl. - # Supported since Solaris 2.6 (maybe 2.5.1?) - _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}-z ${wl}defaultextract' - ;; - esac - _LT_AC_TAGVAR(link_all_deplibs, $1)=yes - - # Commands to make compiler produce verbose output that lists - # what "hidden" libraries, object files and flags are used when - # linking a shared library. - # - # There doesn't appear to be a way to prevent this compiler from - # explicitly linking system object files so we need to strip them - # from the output so that they don't get included in the library - # dependencies. - output_verbose_link_cmd='templist=`$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-[[LR]]"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' - - # Archives containing C++ object files must be created using - # "CC -xar", where "CC" is the Sun C++ compiler. This is - # necessary to make sure instantiated templates are included - # in the archive. - _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' - ;; - gcx) - # Green Hills C++ Compiler - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' - - # The C++ compiler must be used to create the archive. - _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC $LDFLAGS -archive -o $oldlib $oldobjs' - ;; - *) - # GNU C++ compiler with Solaris linker - if test "$GXX" = yes && test "$with_gnu_ld" = no; then - _LT_AC_TAGVAR(no_undefined_flag, $1)=' ${wl}-z ${wl}defs' - if $CC --version | $GREP -v '^2\.7' > /dev/null; then - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ - $CC -shared -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp' - - # Commands to make compiler produce verbose output that lists - # what "hidden" libraries, object files and flags are used when - # linking a shared library. - output_verbose_link_cmd="$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP \"\-L\"" - else - # g++ 2.7 appears to require `-G' NOT `-shared' on this - # platform. - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ - $CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp' - - # Commands to make compiler produce verbose output that lists - # what "hidden" libraries, object files and flags are used when - # linking a shared library. - output_verbose_link_cmd="$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP \"\-L\"" - fi - - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $wl$libdir' - fi - ;; - esac - ;; - sysv5OpenUNIX8* | sysv5UnixWare7* | sysv5uw[[78]]* | unixware7*) - _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no - ;; - tandem*) - case $cc_basename in - NCC) - # NonStop-UX NCC 3.20 - # FIXME: insert proper C++ library support - _LT_AC_TAGVAR(ld_shlibs, $1)=no - ;; - *) - # FIXME: insert proper C++ library support - _LT_AC_TAGVAR(ld_shlibs, $1)=no - ;; - esac - ;; - vxworks*) - # FIXME: insert proper C++ library support - _LT_AC_TAGVAR(ld_shlibs, $1)=no - ;; - *) - # FIXME: insert proper C++ library support - _LT_AC_TAGVAR(ld_shlibs, $1)=no - ;; - esac - AC_MSG_RESULT([$_LT_AC_TAGVAR(ld_shlibs, $1)]) - test "$_LT_AC_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no - - _LT_AC_TAGVAR(GCC, $1)="$GXX" - _LT_AC_TAGVAR(LD, $1)="$LD" - - ## CAVEAT EMPTOR: - ## There is no encapsulation within the following macros, do not change - ## the running order or otherwise move them around unless you know exactly - ## what you are doing... - AC_LIBTOOL_POSTDEP_PREDEP($1) - AC_LIBTOOL_PROG_COMPILER_PIC($1) - AC_LIBTOOL_PROG_CC_C_O($1) - AC_LIBTOOL_SYS_HARD_LINK_LOCKS($1) - AC_LIBTOOL_PROG_LD_SHLIBS($1) - AC_LIBTOOL_SYS_DYNAMIC_LINKER($1) - AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1) - AC_LIBTOOL_SYS_LIB_STRIP - AC_LIBTOOL_DLOPEN_SELF($1) - - _LT_CONFIG($1) -fi - -AC_LANG_POP -CC=$lt_save_CC -LDCXX=$LD -LD=$lt_save_LD -GCC=$lt_save_GCC -with_gnu_ldcxx=$with_gnu_ld -with_gnu_ld=$lt_save_with_gnu_ld -lt_cv_path_LDCXX=$lt_cv_path_LD -lt_cv_path_LD=$lt_save_path_LD -lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld -lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld -])# _LT_LANG_CXX_CONFIG - - -# AC_LIBTOOL_POSTDEP_PREDEP([TAGNAME]) -# ------------------------------------ -# Figure out "hidden" library dependencies from verbose -# compiler output when linking a shared library. -# Parse the compiler output and extract the necessary -# objects, libraries and library flags. -AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP],[ -# Dependencies to place before and after the object being linked: -_LT_AC_TAGVAR(predep_objects, $1)= -_LT_AC_TAGVAR(postdep_objects, $1)= -_LT_AC_TAGVAR(predeps, $1)= -_LT_AC_TAGVAR(postdeps, $1)= -_LT_AC_TAGVAR(compiler_lib_search_path, $1)= - -dnl we can't use the lt_simple_compile_test_code here, -dnl because it contains code intended for an executable, -dnl not a library. It's possible we should let each -dnl tag define a new lt_????_link_test_code variable, -dnl but it's only used here... -m4_if([$1], [], [cat > conftest.$ac_ext <<_LT_EOF -int a; -void foo (void) { a = 0; } -_LT_EOF -], [$1], [CXX], [cat > conftest.$ac_ext <<_LT_EOF -class Foo -{ -public: - Foo (void) { a = 0; } -private: - int a; -}; -_LT_EOF -], [$1], [F77], [cat > conftest.$ac_ext <<_LT_EOF - subroutine foo - implicit none - integer*4 a - a=0 - return - end -_LT_EOF -], [$1], [GCJ], [cat > conftest.$ac_ext <<_LT_EOF -public class foo { - private int a; - public void bar (void) { - a = 0; - } -}; -_LT_EOF -]) -dnl Parse the compiler output and extract the necessary -dnl objects, libraries and library flags. -if AC_TRY_EVAL(ac_compile); then - # Parse the compiler output and extract the necessary - # objects, libraries and library flags. - - # Sentinel used to keep track of whether or not we are before - # the conftest object file. - pre_test_object_deps_done=no - - # The `*' in the case matches for architectures that use `case' in - # $output_verbose_cmd can trigger glob expansion during the loop - # eval without this substitution. - output_verbose_link_cmd="`$echo \"X$output_verbose_link_cmd\" | $Xsed -e \"$no_glob_subst\"`" - - for p in `eval $output_verbose_link_cmd`; do - case $p in - - -L* | -R* | -l*) - # Some compilers place space between "-{L,R}" and the path. - # Remove the space. - if test $p = "-L" || - test $p = "-R"; then - prev=$p - continue - else - prev= - fi - - if test "$pre_test_object_deps_done" = no; then - case $p in - -L* | -R*) - # Internal compiler library paths should come after those - # provided the user. The postdeps already come after the - # user supplied libs so there is no need to process them. - if test -z "$_LT_AC_TAGVAR(compiler_lib_search_path, $1)"; then - _LT_AC_TAGVAR(compiler_lib_search_path, $1)="${prev}${p}" - else - _LT_AC_TAGVAR(compiler_lib_search_path, $1)="${_LT_AC_TAGVAR(compiler_lib_search_path, $1)} ${prev}${p}" - fi - ;; - # The "-l" case would never come before the object being - # linked, so don't bother handling this case. - esac - else - if test -z "$_LT_AC_TAGVAR(postdeps, $1)"; then - _LT_AC_TAGVAR(postdeps, $1)="${prev}${p}" - else - _LT_AC_TAGVAR(postdeps, $1)="${_LT_AC_TAGVAR(postdeps, $1)} ${prev}${p}" - fi - fi - ;; - - *.$objext) - # This assumes that the test object file only shows up - # once in the compiler output. - if test "$p" = "conftest.$objext"; then - pre_test_object_deps_done=yes - continue - fi - - if test "$pre_test_object_deps_done" = no; then - if test -z "$_LT_AC_TAGVAR(predep_objects, $1)"; then - _LT_AC_TAGVAR(predep_objects, $1)="$p" - else - _LT_AC_TAGVAR(predep_objects, $1)="$_LT_AC_TAGVAR(predep_objects, $1) $p" - fi - else - if test -z "$_LT_AC_TAGVAR(postdep_objects, $1)"; then - _LT_AC_TAGVAR(postdep_objects, $1)="$p" - else - _LT_AC_TAGVAR(postdep_objects, $1)="$_LT_AC_TAGVAR(postdep_objects, $1) $p" - fi - fi - ;; - - *) ;; # Ignore the rest. - - esac - done - - # Clean up. - rm -f a.out a.exe -else - echo "libtool.m4: error: problem compiling $1 test program" -fi - -$rm -f confest.$objext - -case " $_LT_AC_TAGVAR(postdeps, $1) " in -*" -lc "*) _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no ;; -esac -_LT_TAGDECL([], [predep_objects], [1], - [Dependencies to place before and after the objects being linked to - create a shared library]) -_LT_TAGDECL([], [postdep_objects], [1]) -_LT_TAGDECL([], [predeps], [1]) -_LT_TAGDECL([], [postdeps], [1]) -_LT_TAGDECL([], [compiler_lib_search_path], [1], - [The library search path used internally by the compiler when linking - a shared library]) -])# AC_LIBTOOL_POSTDEP_PREDEP - -# _LT_LANG_F77_CONFIG([TAG]) -# -------------------------- -# Ensure that the configuration variables for a Fortran 77 compiler are -# suitably defined. These variables are subsequently used by _LT_CONFIG -# to write the compiler configuration to `libtool'. -m4_define([_LT_LANG_F77_CONFIG], -[AC_REQUIRE([AC_PROG_F77]) -AC_LANG_PUSH(Fortran 77) - -_LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no -_LT_AC_TAGVAR(allow_undefined_flag, $1)= -_LT_AC_TAGVAR(always_export_symbols, $1)=no -_LT_AC_TAGVAR(archive_expsym_cmds, $1)= -_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)= -_LT_AC_TAGVAR(hardcode_direct, $1)=no -_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)= -_LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= -_LT_AC_TAGVAR(hardcode_libdir_separator, $1)= -_LT_AC_TAGVAR(hardcode_minus_L, $1)=no -_LT_AC_TAGVAR(hardcode_automatic, $1)=no -_LT_AC_TAGVAR(inherit_rpath, $1)=no -_LT_AC_TAGVAR(module_cmds, $1)= -_LT_AC_TAGVAR(module_expsym_cmds, $1)= -_LT_AC_TAGVAR(link_all_deplibs, $1)=unknown -_LT_AC_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds -_LT_AC_TAGVAR(no_undefined_flag, $1)= -_LT_AC_TAGVAR(whole_archive_flag_spec, $1)= -_LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=no - -# Source file extension for f77 test sources. -ac_ext=f - -# Object file extension for compiled f77 test sources. -objext=o -_LT_AC_TAGVAR(objext, $1)=$objext - -# Code to be used in simple compile tests -lt_simple_compile_test_code=" subroutine t\n return\n end\n" - -# Code to be used in simple link tests -lt_simple_link_test_code=" program t\n end\n" - -# ltmain only uses $CC for tagged configurations so make sure $CC is set. -_LT_AC_SYS_COMPILER - -# Allow CC to be a program name with arguments. -lt_save_CC="$CC" -CC=${F77-"f77"} -compiler=$CC -_LT_AC_TAGVAR(compiler, $1)=$CC -cc_basename=`$echo X"$compiler" | $Xsed -e 's%^.*/%%'` - -if test -n "$compiler"; then - AC_MSG_CHECKING([if libtool supports shared libraries]) - AC_MSG_RESULT([$can_build_shared]) - - AC_MSG_CHECKING([whether to build shared libraries]) - test "$can_build_shared" = "no" && enable_shared=no - - # On AIX, shared libraries and static libraries use the same namespace, and - # are all built from PIC. - case "$host_os" in - aix3*) - test "$enable_shared" = yes && enable_static=no - if test -n "$RANLIB"; then - archive_cmds="$archive_cmds~\$RANLIB \$lib" - postinstall_cmds='$RANLIB $lib' - fi - ;; - aix4* | aix5*) - test "$enable_shared" = yes && enable_static=no - ;; - esac - AC_MSG_RESULT([$enable_shared]) - - AC_MSG_CHECKING([whether to build static libraries]) - # Make sure either enable_shared or enable_static is yes. - test "$enable_shared" = yes || enable_static=yes - AC_MSG_RESULT([$enable_static]) - - test "$_LT_AC_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no - - _LT_AC_TAGVAR(GCC, $1)="$G77" - _LT_AC_TAGVAR(LD, $1)="$LD" - - ## CAVEAT EMPTOR: - ## There is no encapsulation within the following macros, do not change - ## the running order or otherwise move them around unless you know exactly - ## what you are doing... - AC_LIBTOOL_PROG_COMPILER_PIC($1) - AC_LIBTOOL_PROG_CC_C_O($1) - AC_LIBTOOL_SYS_HARD_LINK_LOCKS($1) - AC_LIBTOOL_PROG_LD_SHLIBS($1) - AC_LIBTOOL_SYS_DYNAMIC_LINKER($1) - AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1) - AC_LIBTOOL_SYS_LIB_STRIP - - _LT_CONFIG($1) -fi - -AC_LANG_POP -CC="$lt_save_CC" -])# _LT_LANG_F77_CONFIG - - -# _LT_LANG_GCJ_CONFIG([TAG]) -# -------------------------- -# Ensure that the configuration variables for the GNU Java Compiler compiler -# are suitably defined. These variables are subsequently used by _LT_CONFIG -# to write the compiler configuration to `libtool'. -m4_define([_LT_LANG_GCJ_CONFIG], -[AC_REQUIRE([LT_PROG_GCJ]) -AC_LANG_SAVE - -# Source file extension for Java test sources. -ac_ext=java - -# Object file extension for compiled Java test sources. -objext=o -_LT_AC_TAGVAR(objext, $1)=$objext - -# Code to be used in simple compile tests -lt_simple_compile_test_code="class foo {}\n" - -# Code to be used in simple link tests -lt_simple_link_test_code='public class conftest { public static void main(String[] argv) {}; }\n' - -# ltmain only uses $CC for tagged configurations so make sure $CC is set. -_LT_AC_SYS_COMPILER - -# Allow CC to be a program name with arguments. -lt_save_CC="$CC" -CC=${GCJ-"gcj"} -compiler=$CC -_LT_AC_TAGVAR(compiler, $1)=$CC - -# GCJ did not exist at the time GCC didn't implicitly link libc in. -_LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no - -## CAVEAT EMPTOR: -## There is no encapsulation within the following macros, do not change -## the running order or otherwise move them around unless you know exactly -## what you are doing... -if test -n "$compiler"; then - AC_LIBTOOL_PROG_COMPILER_NO_RTTI($1) - AC_LIBTOOL_PROG_COMPILER_PIC($1) - AC_LIBTOOL_PROG_CC_C_O($1) - AC_LIBTOOL_SYS_HARD_LINK_LOCKS($1) - AC_LIBTOOL_PROG_LD_SHLIBS($1) - AC_LIBTOOL_SYS_DYNAMIC_LINKER($1) - AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1) - AC_LIBTOOL_SYS_LIB_STRIP - AC_LIBTOOL_DLOPEN_SELF($1) - - _LT_CONFIG($1) -fi - -AC_LANG_RESTORE -CC="$lt_save_CC" -])# _LT_LANG_GCJ_CONFIG - - -# _LT_LANG_RC_CONFIG([TAG]) -# -------------------------- -# Ensure that the configuration variables for the Windows resource compiler -# are suitably defined. These variables are subsequently used by _LT_CONFIG -# to write the compiler configuration to `libtool'. -m4_define([_LT_LANG_RC_CONFIG], -[AC_REQUIRE([LT_PROG_RC]) -AC_LANG_SAVE - -# Source file extension for RC test sources. -ac_ext=rc - -# Object file extension for compiled RC test sources. -objext=o -_LT_AC_TAGVAR(objext, $1)=$objext - -# Code to be used in simple compile tests -lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }\n' - -# Code to be used in simple link tests -lt_simple_link_test_code="$lt_simple_compile_test_code" - -# ltmain only uses $CC for tagged configurations so make sure $CC is set. -_LT_AC_SYS_COMPILER - -# Allow CC to be a program name with arguments. -lt_save_CC="$CC" -CC=${RC-"windres"} -compiler=$CC -_LT_AC_TAGVAR(compiler, $1)=$CC -_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes - -if test -n "$compiler"; then - : - _LT_CONFIG($1) -fi - -AC_LANG_RESTORE -CC="$lt_save_CC" -])# _LT_LANG_RC_CONFIG - - -AC_DEFUN([LT_PROG_GCJ], -[m4_ifdef([AC_PROG_GCJ], [AC_PROG_GCJ], - [m4_ifdef([A][M_PROG_GCJ], [A][M_PROG_GCJ], - [AC_CHECK_TOOL(GCJ, gcj,) - test "x${GCJFLAGS+set}" = xset || GCJFLAGS="-g -O2" - AC_SUBST(GCJFLAGS)])])dnl -]) -AU_DEFUN([LT_AC_PROG_GCJ], [LT_PROG_GCJ]) - -AC_DEFUN([LT_PROG_RC], -[AC_CHECK_TOOL(RC, windres,) -]) -AU_DEFUN([LT_AC_PROG_RC], [LT_PROG_RC]) - - -# LT_AC_PROG_EGREP -# ---------------- -# If we don't have a new enough Autoconf to choose the best grep -# available, choose the one first in the user's PATH. -AC_DEFUN([LT_AC_PROG_EGREP], -[AC_REQUIRE([AC_PROG_EGREP]) -test -z "$GREP" && GREP=grep -_LT_DECL([], [GREP], [1], [A grep program that handles long line]) -_LT_DECL([], [EGREP], [1], [An ERE matcher]) -]) - - -# LT_AC_PROG_SED -# -------------- -# Check for a fully-functional sed program, that truncates -# as few characters as possible. Prefer GNU sed if found. -AC_DEFUN([LT_AC_PROG_SED], -[AC_PROG_SED -test -z "$SED" && SED=sed -_LT_DECL([], [SED], [1], [A sed program that does not truncate output]) -_LT_DECL([], [Xsed], ["\$SED -e s/^X//"], - [Sed that helps us avoid accidentally triggering echo(1) options like -n]) -])# LT_AC_PROG_SED - -m4_ifndef([AC_PROG_SED], [ -############################################################ -# NOTE: This macro has been submitted for inclusion into # -# GNU Autoconf as AC_PROG_SED. When it is available in # -# a released version of Autoconf we should remove this # -# macro and use it instead. # -############################################################ - -m4_define([AC_PROG_SED], -[AC_MSG_CHECKING([for a sed that does not truncate output]) -AC_CACHE_VAL(lt_cv_path_SED, -[# Loop through the user's path and test for sed and gsed. -# Then use that list of sed's as ones to test for truncation. -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for lt_ac_prog in sed gsed; do - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then - lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext" - fi - done - done -done -lt_ac_max=0 -lt_ac_count=0 -# Add /usr/xpg4/bin/sed as it is typically found on Solaris -# along with /bin/sed that truncates output. -for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do - test ! -f $lt_ac_sed && break - cat /dev/null > conftest.in - lt_ac_count=0 - echo $ECHO_N "0123456789$ECHO_C" >conftest.in - # Check for GNU sed and select it if it is found. - if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then - lt_cv_path_SED=$lt_ac_sed - break - fi - while true; do - cat conftest.in conftest.in >conftest.tmp - mv conftest.tmp conftest.in - cp conftest.in conftest.nl - echo >>conftest.nl - $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break - cmp -s conftest.out conftest.nl || break - # 10000 chars as input seems more than enough - test $lt_ac_count -gt 10 && break - lt_ac_count=`expr $lt_ac_count + 1` - if test $lt_ac_count -gt $lt_ac_max; then - lt_ac_max=$lt_ac_count - lt_cv_path_SED=$lt_ac_sed - fi - done -done -SED=$lt_cv_path_SED -AC_SUBST([SED]) -]) -AC_MSG_RESULT([$SED]) -])#AC_PROG_SED -])#m4_ifndef diff --git a/libs/sigc++2/scripts/ltoptions.m4 b/libs/sigc++2/scripts/ltoptions.m4 deleted file mode 100644 index ea3089d330..0000000000 --- a/libs/sigc++2/scripts/ltoptions.m4 +++ /dev/null @@ -1,358 +0,0 @@ -# Helper functions for option handling. -*- Autoconf -*- -# Written by Gary V. Vaughan - -# Copyright (C) 2004 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, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA -# 02111-1307, USA. - -# serial 1 - -# 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(NAME) -# ----------------------- -m4_define([_LT_MANGLE_OPTION], -[[_LT_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])]) - - -# _LT_SET_OPTION(NAME) -# ------------------------------ -# Set option NAME. Other NAMEs are saved as a flag. -m4_define([_LT_SET_OPTION], [m4_define(_LT_MANGLE_OPTION([$1]))]) - - -# _LT_IF_OPTION(OPTION, 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])]) - - -# _LT_UNLESS_OPTIONS(OPTIONS, IF-NOT-SET) -# --------------------------------------- -# Execute IF-NOT-SET if all OPTIONS are not set. -m4_define([_LT_UNLESS_OPTIONS], -[AC_FOREACH([_LT_Option], [$1], - [m4_ifdef(_LT_MANGLE_OPTION(_LT_Option), - [m4_define([$0_found])])])[]dnl -m4_ifdef([$0_found], [m4_undefine([$0_found])], [$2 -])[]dnl -]) - - -# _LT_SET_OPTIONS(OPTIONS) -# ------------------------ -# OPTIONS is a space-separated list of Automake options. -# If any OPTION has a handler macro declared with LT_OPTION_DEFINE, -# despatch to that macro; otherwise complain about the unknown option -# and exit. -m4_define([_LT_SET_OPTIONS], -[AC_FOREACH([_LT_Option], [$1], - [_LT_SET_OPTION(_LT_Option) - m4_ifdef(_LT_MANGLE_DEFUN(_LT_Option), - _LT_MANGLE_DEFUN(_LT_Option), - [m4_fatal([Unknown option `]_LT_Option[' to LT][_INIT_LIBTOOL])]) - ])dnl -dnl -dnl Simply set some default values (i.e off) if boolean options were not -dnl specified: -_LT_UNLESS_OPTIONS([dlopen], enable_dlopen=no) -_LT_UNLESS_OPTIONS([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([shared disable-shared], [_LT_ENABLE_SHARED]) -_LT_UNLESS_OPTIONS([static disable-static], [_LT_ENABLE_STATIC]) -_LT_UNLESS_OPTIONS([pic-only no-pic], [_LT_WITH_PIC]) -_LT_UNLESS_OPTIONS([fast-install disable-fast-install], - [_LT_ENABLE_FAST_INSTALL]) -])# _LT_SET_OPTIONS - - -## ----------------------------------------- ## -## Macros to handle LT_INIT_LIBTOOL options. ## -## ----------------------------------------- ## - -m4_define([_LT_MANGLE_DEFUN], -[[_LT_OPTION_DEFUN_]m4_bpatsubst(m4_toupper([$1]), [[^A-Z0-9_]], [_])]) - - -# LT_OPTION_DEFINE(NAME, CODE) -# ---------------------------- -m4_define([LT_OPTION_DEFINE], -[m4_define(_LT_MANGLE_DEFUN([$1]), [$2])[]dnl -])# LT_OPTION_DEFINE - - -# dlopen -# ------ -LT_OPTION_DEFINE([dlopen], [enable_dlopen=yes]) - -AU_DEFUN([AC_LIBTOOL_DLOPEN], -[_LT_SET_OPTION([dlopen]) -AC_DIAGNOSE([obsolete], -[$0: Remove this warning and the call to _LT_SET_OPTION when you -put the `dlopen' option into LT_LIBTOOL_INIT's first parameter.]) -]) - - -# win32-dll -# --------- -# Declare package support for building win32 dll's. -LT_OPTION_DEFINE([win32-dll], -[enable_win32_dll=yes - -case $host in -*-*-cygwin* | *-*-mingw* | *-*-pw32*) - 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], [0], [Assembler program])dnl - -test -z "$DLLTOOL" && DLLTOOL=dlltool -_LT_DECL([], [DLLTOOL], [0], [DLL creation program])dnl - -test -z "$OBJDUMP" && OBJDUMP=objdump -_LT_DECL([], [OBJDUMP], [0], [Object dumper program])dnl -])# win32-dll - -AU_DEFUN([AC_LIBTOOL_WIN32_DLL], -[_LT_SET_OPTION([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_LIBTOOL_INIT's first parameter.]) -]) - - -# _LT_ENABLE_SHARED([DEFAULT]) -# ---------------------------- -# implement the --enable-shared flag, and supports the `shared' and -# `disable-shared' LT_INIT_LIBTOOL 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], - [AC_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([shared], [_LT_ENABLE_SHARED([yes])]) -LT_OPTION_DEFINE([disable-shared], [_LT_ENABLE_SHARED([no])]) - -# Old names: -AU_DEFUN([AC_ENABLE_SHARED], -[_LT_SET_OPTION([shared]) -AC_DIAGNOSE([obsolete], -[$0: Remove this warning and the call to _LT_SET_OPTION when you -put the `shared' option into LT_LIBTOOL_INIT's first parameter.]) -]) - -AU_DEFUN([AM_ENABLE_SHARED], -[_LT_SET_OPTION([shared]) -AC_DIAGNOSE([obsolete], -[$0: Remove this warning and the call to _LT_SET_OPTION when you -put the `shared' option into LT_LIBTOOL_INIT's first parameter.]) -]) - -AU_DEFUN([AC_DISABLE_SHARED], -[_LT_SET_OPTION([disable-shared]) -AC_DIAGNOSE([obsolete], -[$0: Remove this warning and the call to _LT_SET_OPTION when you put -the `disable-shared' option into LT_LIBTOOL_INIT's first parameter.]) -]) - -AU_DEFUN([AM_DISABLE_SHARED], -[_LT_SET_OPTION([disable-shared]) -AC_DIAGNOSE([obsolete], -[$0: Remove this warning and the call to _LT_SET_OPTION when you put -the `disable-shared' option into LT_LIBTOOL_INIT's first parameter.]) -]) - - -# _LT_ENABLE_STATIC([DEFAULT]) -# ---------------------------- -# implement the --enable-static flag, and support the `static' and -# `disable-static' LT_INIT_LIBTOOL 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], - [AC_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([static], [_LT_ENABLE_STATIC([yes])]) -LT_OPTION_DEFINE([disable-static], [_LT_ENABLE_STATIC([no])]) - -# Old names: -AU_DEFUN([AC_ENABLE_STATIC], -[_LT_SET_OPTION([static]) -AC_DIAGNOSE([obsolete], -[$0: Remove this warning and the call to _LT_SET_OPTION when you -put the `static' option into LT_LIBTOOL_INIT's first parameter.]) -]) - -AU_DEFUN([AM_ENABLE_STATIC], -[_LT_SET_OPTION([static]) -AC_DIAGNOSE([obsolete], -[$0: Remove this warning and the call to _LT_SET_OPTION when you -put the `static' option into LT_LIBTOOL_INIT's first parameter.]) -]) - -AU_DEFUN([AC_DISABLE_STATIC], -[_LT_SET_OPTION([disable-static]) -AC_DIAGNOSE([obsolete], -[$0: Remove this warning and the call to _LT_SET_OPTION when you put -the `disable-static' option into LT_LIBTOOL_INIT's first parameter.]) -]) - -AU_DEFUN([AM_DISABLE_STATIC], -[_LT_SET_OPTION([disable-static]) -AC_DIAGNOSE([obsolete], -[$0: Remove this warning and the call to _LT_SET_OPTION when you put -the `disable-static' option into LT_LIBTOOL_INIT's first parameter.]) -]) - - -# _LT_ENABLE_FAST_INSTALL([DEFAULT]) -# ---------------------------------- -# implement the --enable-fast-install flag, and support the `fast-install' -# and `disable-fast-install' LT_INIT_LIBTOOL 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], - [AC_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([fast-install], [_LT_ENABLE_FAST_INSTALL([yes])]) -LT_OPTION_DEFINE([disable-fast-install], [_LT_ENABLE_FAST_INSTALL([no])]) - -# Old names: -AU_DEFUN([AC_ENABLE_FAST_INSTALL], -[_LT_SET_OPTION([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_LIBTOOL_INIT's first parameter.]) -]) - -AU_DEFUN([AC_DISABLE_FAST_INSTALL], -[_LT_SET_OPTION([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_LIBTOOL_INIT's first parameter.]) -]) - - -# _LT_WITH_PIC([MODE]) -# -------------------- -# implement the --with-pic flag, and support the `pic-only' and `no-pic' -# LT_INIT_LIBTOOL options. -# MODE is either `yes' or `no'. If omitted, it defaults to `both'. -m4_define([_LT_WITH_PIC], -[AC_ARG_WITH([pic], - [AC_HELP_STRING([--with-pic], - [try to use only PIC/non-PIC objects @<:@default=use both@:>@])], - [pic_mode="$withval"], - [pic_mode=default]) - -test -z "$pic_mode" && pic_mode=m4_if($#, 1, $1, default) - -_LT_DECL([], [pic_mode], [0], [What type of objects to build])dnl -])# _LT_WITH_PIC - -LT_OPTION_DEFINE([pic-only], [_LT_WITH_PIC([yes])]) -LT_OPTION_DEFINE([no-pic], [_LT_WITH_PIC([no])]) - -# Old name: -AU_DEFUN([AC_LIBTOOL_PIC_MODE], -[_LT_SET_OPTION([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_LIBTOOL_INIT's first parameter.]) -]) diff --git a/libs/sigc++2/scripts/ltsugar.m4 b/libs/sigc++2/scripts/ltsugar.m4 deleted file mode 100644 index c0f31aa63d..0000000000 --- a/libs/sigc++2/scripts/ltsugar.m4 +++ /dev/null @@ -1,115 +0,0 @@ -# ltsugar.m4 -- libtool m4 base layer. -*-Autoconf-*- -# -# Copyright (C) 2004 Free Software Foundation, Inc. -# Written by Gary V. Vaughan. -# -# 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 of the License, 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, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -# -# 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. - -# serial 1 - -# 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. -m4_define([lt_join], -[m4_case([$#], - [0], [m4_fatal([$0: too few arguments: $#])], - [1], [], - [2], [[$2]], - [m4_ifval([$2], - [m4_ifval([$3], - [[$2][$1][]$0([$1], m4_shiftn(2, $@))], - [m4_if([$#], [3], - [$2], - [$0([$1], [$2], m4_shiftn(3, $@))])])], - [$0([$1], m4_shiftn(2, $@))])])[]dnl -]) - - -# 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. -m4_define([lt_combine], -[m4_if([$2], [[]], [], - [lt_join(m4_quote(m4_default([$1], [, ])), - _$0([$1], m4_car($2)[$3], m4_shiftn(3, $@)), - $0([$1], m4_cdr($2), m4_shiftn(2, $@)))])]) -m4_define([_lt_combine], -[m4_if([$3], [], [], - [lt_join(m4_quote(m4_default([$1], [, ])), - [$2$3], - $0([$1], [$2], m4_shiftn(3, $@)))])[]dnl -]) - - -# 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_bmatch($3[]m4_defn([$1])$3, $3[]m4_re_escape([$2])$3, - [$5], - [m4_append([$1], [$2], [$3])$4])], - [m4_append([$1], [$2], [$3])$4])]) - - -# lt_dict_add(DICT, KEY, VALUE) -# ----------------------------- -m4_define([lt_dict_add], -[m4_define([$1($2)], [$4])]) - - -# 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], [[, ]])), - m4_quote(lt_if_dict_fetch([$1], [$5], [$2], [$3], [$5])), - m4_quote($0([$1], [$2], [$3], [$4], m4_shiftn(5, $@))))])dnl -]) diff --git a/libs/sigc++2/scripts/ltversion.m4 b/libs/sigc++2/scripts/ltversion.m4 deleted file mode 100644 index 8b8db37ad4..0000000000 --- a/libs/sigc++2/scripts/ltversion.m4 +++ /dev/null @@ -1,15 +0,0 @@ -# ltversion.m4 -- version numbers -*- Autoconf -*- -# Generated from ltversion.in; do not edit by hand. - -# serial 1467 -# This file is part of GNU Libtool - -m4_define([LT_PACKAGE_VERSION], []) -m4_define([LT_PACKAGE_REVISION], [1.1467]) - -AC_DEFUN([LTVERSION_VERSION], -[macro_version='' -macro_revision='1.1467' -_LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?]) -_LT_DECL(, macro_revision, 0) -]) diff --git a/libs/sigc++2/sigc++-2.0.pc.in b/libs/sigc++2/sigc++-2.0.pc.in deleted file mode 100644 index 7c55753531..0000000000 --- a/libs/sigc++2/sigc++-2.0.pc.in +++ /dev/null @@ -1,10 +0,0 @@ -prefix=@prefix@ -exec_prefix=@exec_prefix@ -libdir=@libdir@ -includedir=@includedir@ - -Name: libsigc++ 2 -Description: Typesafe signal and callback system for C++ -Version: @VERSION@ -Libs: -L${libdir} -lsigc-2.0 -Cflags: -I${includedir}/sigc++-2.0 -I${libdir}/sigc++-2.0/include diff --git a/libs/sigc++2/sigc++/.cvsignore b/libs/sigc++2/sigc++/.cvsignore deleted file mode 100644 index 6f2fbbd6d8..0000000000 --- a/libs/sigc++2/sigc++/.cvsignore +++ /dev/null @@ -1,4 +0,0 @@ -Makefile -Makefile.in -.deps -*.os diff --git a/libs/sigc++2/sigc++/Makefile.am b/libs/sigc++2/sigc++/Makefile.am deleted file mode 100644 index 6f9af23e0b..0000000000 --- a/libs/sigc++2/sigc++/Makefile.am +++ /dev/null @@ -1,97 +0,0 @@ -# Base (./) -base_m4 = template.macros.m4 signal.h.m4 slot.h.m4 method_slot.h.m4 \ - object_slot.h.m4 class_slot.h.m4 hide.h.m4 retype.h.m4 -base_built_cc = -base_built_h = signal.h slot.h method_slot.h \ - object_slot.h class_slot.h hide.h retype.h - -signal.cc : signal.h signal_base.h functors/slot.h functors/slot_base.h functors/mem_fun.h functors/functor_trait.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 - -functors/slot.cc : functors/slot.h functors/slot_base.h functors/functor_trait.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 -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 - -# Lambda (adaptors/lambda) -lambda_m4 = base.h.m4 select.h.m4 operator.h.m4 group.h.m4 lambda.cc.m4 -lambda_built_cc = lambda.cc -lambda_built_h = base.h select.h operator.h group.h - -adaptors/lambda/lambda.cc : adaptors/lambda/select.h adaptors/lambda/base.h \ - adaptors/adaptor_trait.h adaptors/deduce_result_type.h \ - functors/ptr_fun.h functors/mem_fun.h functors/functor_trait.h - -# Subdirectories needed also in the build dir -build_subdirs = functors adaptors adaptors/lambda - -# 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/%) - -EXTRA_DIST = $(sigc_m4) $(sigc_built_h) $(sigc_built_cc) - -# install the headers -library_includedir = $(includedir)/sigc++-2.0/sigc++ -nobase_library_include_HEADERS = $(sigc_m4) $(sigc_built_h) \ - sigc++.h connection.h trackable.h reference_wrapper.h type_traits.h visit_each.h \ - object.h retype_return.h bind.h bind_return.h compatibility.h signal_base.h \ - functors/functors.h \ - functors/slot_base.h \ - adaptors/adaptors.h \ - adaptors/lambda/lambda.h - -# build the library -#lib_LTLIBRARIES = libsigc-2.0.la -#libsigc_2_0_la_SOURCES = signal.cc signal_base.cc trackable.cc connection.cc \ - functors/slot.cc functors/slot_base.cc \ - adaptors/lambda/lambda.cc -#libsigc_2_0_la_LDFLAGS = - -BUILT_SOURCES = $(sigc_built_h) $(sigc_built_cc) - -CLEANFILES = build-subdirs-stamp - -# Remove the generated sources during maintainer-clean: -MAINTAINERCLEANFILES = $(built_sources) - -M4_DIR = $(top_srcdir)/sigc++/macros - -# Rules to generate .h and .cc from .h.m4 and .cc.m4: -%.h: macros/%.h.m4 $(M4_DIR)/template.macros.m4 - $(M4) $(M4_INCLUDES) $(DEFINES) -I $(M4_DIR) -I macros $< > $@ - -%.cc: macros/%.cc.m4 $(M4_DIR)/template.macros.m4 - $(M4) $(M4_INCLUDES) $(DEFINES) -I $(M4_DIR) -I macros $< > $@ - -# This would be a necessary target for VPATH builds from a clean CVS checkout, -# but I'm not sure where to invoke it... [rotty] -build-subdirs-stamp: - for dir in $(build_subdirs); do \ - test -d $$dir || mkdir $$dir; \ - done - touch build-subdirs-stamp - -# Remove current directory from DEFAULT_INCLUDES because signal.h has -# the same name as a standard header: -DEFAULT_INCLUDES = -AM_CPPFLAGS = -I$(top_srcdir) -I$(top_builddir) - diff --git a/libs/sigc++2/sigc++/adaptors/.cvsignore b/libs/sigc++2/sigc++/adaptors/.cvsignore deleted file mode 100644 index 1edeb79fd1..0000000000 --- a/libs/sigc++2/sigc++/adaptors/.cvsignore +++ /dev/null @@ -1 +0,0 @@ -*.os diff --git a/libs/sigc++2/sigc++/adaptors/adaptor_trait.h b/libs/sigc++2/sigc++/adaptors/adaptor_trait.h deleted file mode 100644 index 8b618d7450..0000000000 --- a/libs/sigc++2/sigc++/adaptors/adaptor_trait.h +++ /dev/null @@ -1,362 +0,0 @@ -// -*- c++ -*- -/* Do not edit! -- generated file */ -#ifndef _SIGC_ADAPTORS_MACROS_ADAPTOR_TRAITHM4_ -#define _SIGC_ADAPTORS_MACROS_ADAPTOR_TRAITHM4_ -#include //To get SIGC_TEMPLATE_KEYWORD_OPERATOR_OVERLOAD -#include -#include -#include -#include -#include - -namespace sigc { - -// Call either operator()<>() or sun_forte_workaround<>(), -// depending on the compiler: -#ifdef SIGC_GCC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - #define SIGC_WORKAROUND_OPERATOR_PARENTHESES template operator() - #define SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD -#else - #ifdef SIGC_MSVC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - #define SIGC_WORKAROUND_OPERATOR_PARENTHESES operator() - #define SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - #else - #define SIGC_WORKAROUND_OPERATOR_PARENTHESES sun_forte_workaround - #endif -#endif - - -template struct adapts; - -/** @defgroup adaptors Adaptors - * Adaptors are functors that alter the signature of a functor's - * operator()(). - * - * The adaptor types libsigc++ provides - * are created with bind(), bind_return(), hide(), hide_return(), - * retype_return(), retype(), compose(), exception_catch() and group(). - * - * You can easily derive your own adaptor type from sigc::adapts. - */ - -/** Converts an arbitrary functor into an adaptor type. - * All adaptor tyes in libsigc++ are unnumbered and have - * a template operator() member of every argument count - * they support. These functions in turn invoke a stored adaptor's - * template operator() processing the arguments and return - * value in a characteristic manner. Explicit function template - * instantiation is used to pass type hints thus saving copy costs. - * - * adaptor_functor is a glue between adaptors and arbitrary functors - * that just passes on the arguments. You won't use this type directly. - * - * The template argument @e T_functor determines the type of stored - * functor. - * - * @ingroup adaptors - */ -template -struct adaptor_functor : public adaptor_base -{ - template - struct deduce_result_type - { typedef typename sigc::deduce_result_type::type type; }; - typedef typename functor_trait::result_type result_type; - - /** Invokes the wrapped functor passing on the arguments. - * @return The return value of the functor invocation. - */ - result_type - operator()() const; - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - result_type sun_forte_workaround() const - { return operator(); } - #endif - - /** Invokes the wrapped functor passing on the arguments. - * @param _A_arg1 Argument to be passed on to the functor. - * @return The return value of the functor invocation. - */ - template - typename deduce_result_type::type - operator()(T_arg1 _A_arg1) const - { return functor_(_A_arg1); } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - typename deduce_result_type::type - sun_forte_workaround(T_arg1 _A_arg1) const - { //Just calling operator() tries to copy the argument: - return functor_(_A_arg1); - } - #endif - - /** Invokes the wrapped functor passing on the arguments. - * @param _A_arg1 Argument to be passed on to the functor. - * @param _A_arg2 Argument to be passed on to the functor. - * @return The return value of the functor invocation. - */ - template - typename deduce_result_type::type - operator()(T_arg1 _A_arg1,T_arg2 _A_arg2) const - { return functor_(_A_arg1,_A_arg2); } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - typename deduce_result_type::type - sun_forte_workaround(T_arg1 _A_arg1,T_arg2 _A_arg2) const - { //Just calling operator() tries to copy the argument: - return functor_(_A_arg1,_A_arg2); - } - #endif - - /** Invokes the wrapped functor passing on the arguments. - * @param _A_arg1 Argument to be passed on to the functor. - * @param _A_arg2 Argument to be passed on to the functor. - * @param _A_arg3 Argument to be passed on to the functor. - * @return The return value of the functor invocation. - */ - template - typename deduce_result_type::type - operator()(T_arg1 _A_arg1,T_arg2 _A_arg2,T_arg3 _A_arg3) const - { return functor_(_A_arg1,_A_arg2,_A_arg3); } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - typename deduce_result_type::type - sun_forte_workaround(T_arg1 _A_arg1,T_arg2 _A_arg2,T_arg3 _A_arg3) const - { //Just calling operator() tries to copy the argument: - return functor_(_A_arg1,_A_arg2,_A_arg3); - } - #endif - - /** Invokes the wrapped functor passing on the arguments. - * @param _A_arg1 Argument to be passed on to the functor. - * @param _A_arg2 Argument to be passed on to the functor. - * @param _A_arg3 Argument to be passed on to the functor. - * @param _A_arg4 Argument to be passed on to the functor. - * @return The return value of the functor invocation. - */ - template - typename deduce_result_type::type - operator()(T_arg1 _A_arg1,T_arg2 _A_arg2,T_arg3 _A_arg3,T_arg4 _A_arg4) const - { return functor_(_A_arg1,_A_arg2,_A_arg3,_A_arg4); } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - typename deduce_result_type::type - sun_forte_workaround(T_arg1 _A_arg1,T_arg2 _A_arg2,T_arg3 _A_arg3,T_arg4 _A_arg4) const - { //Just calling operator() tries to copy the argument: - return functor_(_A_arg1,_A_arg2,_A_arg3,_A_arg4); - } - #endif - - /** Invokes the wrapped functor passing on the arguments. - * @param _A_arg1 Argument to be passed on to the functor. - * @param _A_arg2 Argument to be passed on to the functor. - * @param _A_arg3 Argument to be passed on to the functor. - * @param _A_arg4 Argument to be passed on to the functor. - * @param _A_arg5 Argument to be passed on to the functor. - * @return The return value of the functor invocation. - */ - template - typename deduce_result_type::type - operator()(T_arg1 _A_arg1,T_arg2 _A_arg2,T_arg3 _A_arg3,T_arg4 _A_arg4,T_arg5 _A_arg5) const - { return functor_(_A_arg1,_A_arg2,_A_arg3,_A_arg4,_A_arg5); } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - typename deduce_result_type::type - sun_forte_workaround(T_arg1 _A_arg1,T_arg2 _A_arg2,T_arg3 _A_arg3,T_arg4 _A_arg4,T_arg5 _A_arg5) const - { //Just calling operator() tries to copy the argument: - return functor_(_A_arg1,_A_arg2,_A_arg3,_A_arg4,_A_arg5); - } - #endif - - /** Invokes the wrapped functor passing on the arguments. - * @param _A_arg1 Argument to be passed on to the functor. - * @param _A_arg2 Argument to be passed on to the functor. - * @param _A_arg3 Argument to be passed on to the functor. - * @param _A_arg4 Argument to be passed on to the functor. - * @param _A_arg5 Argument to be passed on to the functor. - * @param _A_arg6 Argument to be passed on to the functor. - * @return The return value of the functor invocation. - */ - template - typename deduce_result_type::type - operator()(T_arg1 _A_arg1,T_arg2 _A_arg2,T_arg3 _A_arg3,T_arg4 _A_arg4,T_arg5 _A_arg5,T_arg6 _A_arg6) const - { return functor_(_A_arg1,_A_arg2,_A_arg3,_A_arg4,_A_arg5,_A_arg6); } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - typename deduce_result_type::type - sun_forte_workaround(T_arg1 _A_arg1,T_arg2 _A_arg2,T_arg3 _A_arg3,T_arg4 _A_arg4,T_arg5 _A_arg5,T_arg6 _A_arg6) const - { //Just calling operator() tries to copy the argument: - return functor_(_A_arg1,_A_arg2,_A_arg3,_A_arg4,_A_arg5,_A_arg6); - } - #endif - - /** Invokes the wrapped functor passing on the arguments. - * @param _A_arg1 Argument to be passed on to the functor. - * @param _A_arg2 Argument to be passed on to the functor. - * @param _A_arg3 Argument to be passed on to the functor. - * @param _A_arg4 Argument to be passed on to the functor. - * @param _A_arg5 Argument to be passed on to the functor. - * @param _A_arg6 Argument to be passed on to the functor. - * @param _A_arg7 Argument to be passed on to the functor. - * @return The return value of the functor invocation. - */ - template - typename deduce_result_type::type - operator()(T_arg1 _A_arg1,T_arg2 _A_arg2,T_arg3 _A_arg3,T_arg4 _A_arg4,T_arg5 _A_arg5,T_arg6 _A_arg6,T_arg7 _A_arg7) const - { return functor_(_A_arg1,_A_arg2,_A_arg3,_A_arg4,_A_arg5,_A_arg6,_A_arg7); } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - typename deduce_result_type::type - sun_forte_workaround(T_arg1 _A_arg1,T_arg2 _A_arg2,T_arg3 _A_arg3,T_arg4 _A_arg4,T_arg5 _A_arg5,T_arg6 _A_arg6,T_arg7 _A_arg7) const - { //Just calling operator() tries to copy the argument: - return functor_(_A_arg1,_A_arg2,_A_arg3,_A_arg4,_A_arg5,_A_arg6,_A_arg7); - } - #endif - - /// Constructs an invalid functor. - adaptor_functor() - {} - - /** Constructs an adaptor_functor object that wraps the passed functor. - * @param _A_functor Functor to invoke from operator()(). - */ - explicit adaptor_functor(const T_functor& _A_functor) - : functor_(_A_functor) - {} - - /** Constructs an adaptor_functor object that wraps the passed (member) - * function pointer. - * @param _A_type Pointer to function or class method to invoke from operator()(). - */ - template - explicit adaptor_functor(const T_type& _A_type) - : functor_(_A_type) - {} - - /// Functor that is invoked from operator()(). - mutable T_functor functor_; -}; - -template -typename adaptor_functor::result_type -adaptor_functor::operator()() const - { return functor_(); } - - -/** Performs a functor on each of the targets of a functor. - * The function overload for sigc::adaptor_functor performs a functor - * on the functor stored in the sigc::adaptor_functor object. - * - * @ingroup adaptors - */ -template -void visit_each(const T_action& _A_action, - const adaptor_functor& _A_target) -{ - visit_each(_A_action, _A_target.functor_); -} - - -/** Trait that specifies what is the adaptor version of a functor type. - * Template specializations for sigc::adaptor_base derived functors, - * for function pointers and for class methods are provided. - * - * The template argument @e T_functor is the functor type to convert. - * @e I_isadaptor indicates whether @e T_functor inherits from sigc::adaptor_base. - * - * @ingroup adaptors - */ -template ::value> struct adaptor_trait; - -/** Trait that specifies what is the adaptor version of a functor type. - * This template specialization is used for types that inherit from adaptor_base. - * adaptor_type is equal to @p T_functor in this case. - */ -template -struct adaptor_trait -{ - typedef typename T_functor::result_type result_type; - typedef T_functor functor_type; - typedef T_functor adaptor_type; -}; - -/** Trait that specifies what is the adaptor version of a functor type. - * This template specialization is used for arbitrary functors, - * for function pointers and for class methods are provided. - * The latter are converted into @p pointer_functor or @p mem_functor types. - * adaptor_type is equal to @p adaptor_functor. - */ -template -struct adaptor_trait -{ - typedef typename functor_trait::result_type result_type; - typedef typename functor_trait::functor_type functor_type; - typedef adaptor_functor adaptor_type; -}; - - -/** Base type for adaptors. - * adapts wraps adaptors, functors, function pointers and class methods. - * It contains a single member functor which is always a sigc::adaptor_base. - * The typedef adaptor_type defines the exact type that is used - * to store the adaptor, functor, function pointer or class method passed - * into the constructor. It differs from @e T_functor unless @e T_functor - * inherits from sigc::adaptor_base. - * - * @par Example of a simple adaptor: - * @code - * template - * struct my_adpator : public sigc::adapts - * { - * template - * struct deduce_result_type - * { typedef typename sigc::deduce_result_type::type type; }; - * typedef typename sigc::functor_trait::result_type result_type; - * - * result_type - * operator()() const; - * - * template - * typename deduce_result_type::type - * operator()(T_arg1 _A_arg1) const; - * - * template - * typename deduce_result_type::type - * operator()(T_arg1 _A_arg1, class T_arg2) const; - * - * explicit adaptor_functor(const T_functor& _A_functor) // Constructs a my_functor object that wraps the passed functor. - * : sigc::adapts(_A_functor) {} - * - * mutable T_functor functor_; // Functor that is invoked from operator()(). - * }; - * @endcode - * - * @ingroup adaptors - */ -template -struct adapts : public adaptor_base -{ - typedef typename adaptor_trait::result_type result_type; - typedef typename adaptor_trait::adaptor_type adaptor_type; - - /** Constructs an adaptor that wraps the passed functor. - * @param _A_functor Functor to invoke from operator()(). - */ - explicit adapts(const T_functor& _A_functor) - : functor_(_A_functor) - {} - - /// Adaptor that is invoked from operator()(). - mutable adaptor_type functor_; -}; - -} /* namespace sigc */ -#endif /* _SIGC_ADAPTORS_MACROS_ADAPTOR_TRAITHM4_ */ diff --git a/libs/sigc++2/sigc++/adaptors/adaptors.h b/libs/sigc++2/sigc++/adaptors/adaptors.h deleted file mode 100644 index 950063b122..0000000000 --- a/libs/sigc++2/sigc++/adaptors/adaptors.h +++ /dev/null @@ -1,32 +0,0 @@ -// -*- c++ -*- -/* - * Copyright 2002, The libsigc++ Development Team - * - * 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.1 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 - * - */ -#ifndef _SIGC_ADAPTOR_HPP_ -#define _SIGC_ADAPTOR_HPP_ - -#include -#include -#include -#include -#include -#include -#include -#include - -#endif /* _SIGC_ADAPTOR_HPP_ */ diff --git a/libs/sigc++2/sigc++/adaptors/bind.h b/libs/sigc++2/sigc++/adaptors/bind.h deleted file mode 100644 index 180a5f26e7..0000000000 --- a/libs/sigc++2/sigc++/adaptors/bind.h +++ /dev/null @@ -1,2262 +0,0 @@ -// -*- c++ -*- -/* Do not edit! -- generated file */ -#ifndef _SIGC_ADAPTORS_MACROS_BINDHM4_ -#define _SIGC_ADAPTORS_MACROS_BINDHM4_ -#include - -namespace sigc { - -#ifndef DOXYGEN_SHOULD_SKIP_THIS - -namespace internal { - -template -struct count_void - { static const int value=0; }; -template -struct count_void - { static const int value=1; }; -template -struct count_void - { static const int value=2; }; -template -struct count_void - { static const int value=3; }; -template -struct count_void - { static const int value=4; }; -template -struct count_void - { static const int value=5; }; -template -struct count_void - { static const int value=6; }; -template <> -struct count_void - { static const int value=7; }; - -} /* namespace internal */ - -#endif /*DOXYGEN_SHOULD_SKIP_THIS*/ - - -/** @defgroup bind bind(), bind_return() - * sigc::bind() alters an arbitrary functor by fixing arguments to certain values. - * Up to 7 arguments can be bound at a time. - * For single argument binding overloads of sigc::bind() are provided that let you - * specify the zero-based position of the argument to fix with the first template parameter. - * (A value of @p -1 fixes the last argument so sigc::bind<-1>() gives the same result as sigc::bind().) - * The types of the arguments can optionally be specified if not deduced. - * - * @par Examples: - * @code - * void foo(int, int, int); - * // single argument binding ... - * sigc::bind(&foo,1)(2,3); //fixes the last (third) argument and calls foo(2,3,1) - * sigc::bind<-1>(&foo,1)(2,3); //same as bind(&foo,1)(2,3) (calls foo(2,3,1)) - * sigc::bind<0>(&foo,1)(2,3); //fixes the first argument and calls foo(1,2,3) - * sigc::bind<1>(&foo,1)(2,3); //fixes the second argument and calls foo(2,1,3) - * sigc::bind<2>(&foo,1)(2,3); //fixes the third argument and calls foo(2,3,1) - * // multi argument binding ... - * sigc::bind(&foo,1,2)(3); //fixes the last two arguments and calls foo(3,1,2) - * sigc::bind(&foo,1,2,3)(); //fixes all three arguments and calls foo(1,2,3) - * @endcode - * - * The functor sigc::bind() returns can be passed into - * sigc::signal::connect() directly. - * - * @par Example: - * @code - * sigc::signal some_signal; - * void foo(int); - * some_signal.connect(sigc::bind(&foo,1)); - * @endcode - * - * sigc::bind_return() alters an arbitrary functor by - * fixing its return value to a certain value. - * - * @par Example: - * @code - * void foo(); - * std::cout << sigc::bind_return(&foo, 5)(); // calls foo() and returns 5 - * @endcode - * - * You can bind references to functors by passing the objects through - * the sigc::ref() helper function. - * - * @par Example: - * @code - * int some_int; - * sigc::signal some_signal; - * void foo(int&); - * some_signal.connect(sigc::bind(&foo,sigc::ref(some_int))); - * @endcode - * - * If you bind an object of a sigc::trackable derived type to a functor - * by reference, a slot assigned to the bind adaptor is cleared automatically - * when the object goes out of scope. - * - * @par Example: - * @code - * struct bar : public sigc::trackable {} some_bar; - * sigc::signal some_signal; - * void foo(bar&); - * some_signal.connect(sigc::bind(&foo,sigc::ref(some_bar))); - * // disconnected automatically if some_bar goes out of scope - * @endcode - * - * For a more powerful version of this functionality see the lambda - * library adaptor sigc::group() which can bind, hide and reorder - * arguments arbitrarily. Although sigc::group() is more flexible, - * sigc::bind() provides a means of binding parameters when then total - * number of parameters called is variable. - * - * @ingroup adaptors - */ - -/** Adaptor that binds an argument to the wrapped functor. - * Use the convenience function sigc::bind() to create an instance of sigc::bind_functor. - * - * The following template arguments are used: - * - @e I_location Zero-based position of the argument to fix (@p -1 for the last argument). - - * - @e T_type1 Type of the 1st bound argument. - * - @e T_type2 Type of the 2st bound argument. - * - @e T_type3 Type of the 3st bound argument. - * - @e T_type4 Type of the 4st bound argument. - * - @e T_type5 Type of the 5st bound argument. - * - @e T_type6 Type of the 6st bound argument. - * - @e T_type7 Type of the 7st bound argument. - * - @e T_functor Type of the functor to wrap. - * - * @ingroup bind - */ -template -struct bind_functor; - -/** Adaptor that binds an argument to the wrapped functor. - * This template specialization fixes the 1th argument of the wrapped functor. - * - * @ingroup bind - */ -template -struct bind_functor<0, T_functor, T_bound> : public adapts -{ - typedef typename adapts::adaptor_type adaptor_type; - - template - struct deduce_result_type - { typedef typename adaptor_type::template deduce_result_type::pass, typename type_trait::pass, typename type_trait::pass, typename type_trait::pass, typename type_trait::pass, typename type_trait::pass, typename type_trait::pass>::type type; }; - typedef typename adaptor_type::result_type result_type; - - /** Invokes the wrapped functor passing on the bound argument only. - * @return The return value of the functor invocation. - */ - result_type - operator()(); - - /** Invokes the wrapped functor passing on the arguments. - * bound_ is passed as the 1th argument. - * @param _A_arg1 Argument to be passed on to the functor. - * @return The return value of the functor invocation. - */ - template - typename deduce_result_type::type - operator()(T_arg1 _A_arg1) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass, typename type_trait::pass> - (bound_, _A_arg1); - } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - typename deduce_result_type::type - sun_forte_workaround(T_arg1 _A_arg1) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass, typename type_trait::pass> - (bound_, _A_arg1); - } - #endif - - /** Invokes the wrapped functor passing on the arguments. - * bound_ is passed as the 1th argument. - * @param _A_arg1 Argument to be passed on to the functor. - * @param _A_arg2 Argument to be passed on to the functor. - * @return The return value of the functor invocation. - */ - template - typename deduce_result_type::type - operator()(T_arg1 _A_arg1,T_arg2 _A_arg2) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass, typename type_trait::pass, typename type_trait::pass> - (bound_, _A_arg1, _A_arg2); - } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - typename deduce_result_type::type - sun_forte_workaround(T_arg1 _A_arg1,T_arg2 _A_arg2) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass, typename type_trait::pass, typename type_trait::pass> - (bound_, _A_arg1, _A_arg2); - } - #endif - - /** Invokes the wrapped functor passing on the arguments. - * bound_ is passed as the 1th argument. - * @param _A_arg1 Argument to be passed on to the functor. - * @param _A_arg2 Argument to be passed on to the functor. - * @param _A_arg3 Argument to be passed on to the functor. - * @return The return value of the functor invocation. - */ - template - typename deduce_result_type::type - operator()(T_arg1 _A_arg1,T_arg2 _A_arg2,T_arg3 _A_arg3) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass, typename type_trait::pass, typename type_trait::pass, typename type_trait::pass> - (bound_, _A_arg1, _A_arg2, _A_arg3); - } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - typename deduce_result_type::type - sun_forte_workaround(T_arg1 _A_arg1,T_arg2 _A_arg2,T_arg3 _A_arg3) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass, typename type_trait::pass, typename type_trait::pass, typename type_trait::pass> - (bound_, _A_arg1, _A_arg2, _A_arg3); - } - #endif - - /** Invokes the wrapped functor passing on the arguments. - * bound_ is passed as the 1th argument. - * @param _A_arg1 Argument to be passed on to the functor. - * @param _A_arg2 Argument to be passed on to the functor. - * @param _A_arg3 Argument to be passed on to the functor. - * @param _A_arg4 Argument to be passed on to the functor. - * @return The return value of the functor invocation. - */ - template - typename deduce_result_type::type - operator()(T_arg1 _A_arg1,T_arg2 _A_arg2,T_arg3 _A_arg3,T_arg4 _A_arg4) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass, typename type_trait::pass, typename type_trait::pass, typename type_trait::pass, typename type_trait::pass> - (bound_, _A_arg1, _A_arg2, _A_arg3, _A_arg4); - } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - typename deduce_result_type::type - sun_forte_workaround(T_arg1 _A_arg1,T_arg2 _A_arg2,T_arg3 _A_arg3,T_arg4 _A_arg4) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass, typename type_trait::pass, typename type_trait::pass, typename type_trait::pass, typename type_trait::pass> - (bound_, _A_arg1, _A_arg2, _A_arg3, _A_arg4); - } - #endif - - /** Invokes the wrapped functor passing on the arguments. - * bound_ is passed as the 1th argument. - * @param _A_arg1 Argument to be passed on to the functor. - * @param _A_arg2 Argument to be passed on to the functor. - * @param _A_arg3 Argument to be passed on to the functor. - * @param _A_arg4 Argument to be passed on to the functor. - * @param _A_arg5 Argument to be passed on to the functor. - * @return The return value of the functor invocation. - */ - template - typename deduce_result_type::type - operator()(T_arg1 _A_arg1,T_arg2 _A_arg2,T_arg3 _A_arg3,T_arg4 _A_arg4,T_arg5 _A_arg5) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass, typename type_trait::pass, typename type_trait::pass, typename type_trait::pass, typename type_trait::pass, typename type_trait::pass> - (bound_, _A_arg1, _A_arg2, _A_arg3, _A_arg4, _A_arg5); - } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - typename deduce_result_type::type - sun_forte_workaround(T_arg1 _A_arg1,T_arg2 _A_arg2,T_arg3 _A_arg3,T_arg4 _A_arg4,T_arg5 _A_arg5) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass, typename type_trait::pass, typename type_trait::pass, typename type_trait::pass, typename type_trait::pass, typename type_trait::pass> - (bound_, _A_arg1, _A_arg2, _A_arg3, _A_arg4, _A_arg5); - } - #endif - - /** Invokes the wrapped functor passing on the arguments. - * bound_ is passed as the 1th argument. - * @param _A_arg1 Argument to be passed on to the functor. - * @param _A_arg2 Argument to be passed on to the functor. - * @param _A_arg3 Argument to be passed on to the functor. - * @param _A_arg4 Argument to be passed on to the functor. - * @param _A_arg5 Argument to be passed on to the functor. - * @param _A_arg6 Argument to be passed on to the functor. - * @return The return value of the functor invocation. - */ - template - typename deduce_result_type::type - operator()(T_arg1 _A_arg1,T_arg2 _A_arg2,T_arg3 _A_arg3,T_arg4 _A_arg4,T_arg5 _A_arg5,T_arg6 _A_arg6) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass, typename type_trait::pass, typename type_trait::pass, typename type_trait::pass, typename type_trait::pass, typename type_trait::pass, typename type_trait::pass> - (bound_, _A_arg1, _A_arg2, _A_arg3, _A_arg4, _A_arg5, _A_arg6); - } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - typename deduce_result_type::type - sun_forte_workaround(T_arg1 _A_arg1,T_arg2 _A_arg2,T_arg3 _A_arg3,T_arg4 _A_arg4,T_arg5 _A_arg5,T_arg6 _A_arg6) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass, typename type_trait::pass, typename type_trait::pass, typename type_trait::pass, typename type_trait::pass, typename type_trait::pass, typename type_trait::pass> - (bound_, _A_arg1, _A_arg2, _A_arg3, _A_arg4, _A_arg5, _A_arg6); - } - #endif - - /** Constructs a bind_functor object that binds an argument to the passed functor. - * @param _A_functor Functor to invoke from operator()(). - * @param _A_bound Argument to bind to the functor. - */ - bind_functor(typename type_trait::take _A_func, typename type_trait::take _A_bound) - : adapts(_A_func), bound_(_A_bound) - {} - - /// The argument bound to the functor. - T_bound bound_; -}; - -template -typename bind_functor<0, T_functor, T_bound>::result_type -bind_functor<0, T_functor, T_bound>::operator()() - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass> (bound_); } - -/** Adaptor that binds an argument to the wrapped functor. - * This template specialization fixes the 2th argument of the wrapped functor. - * - * @ingroup bind - */ -template -struct bind_functor<1, T_functor, T_bound> : public adapts -{ - typedef typename adapts::adaptor_type adaptor_type; - - template - struct deduce_result_type - { typedef typename adaptor_type::template deduce_result_type::pass, typename type_trait::pass, typename type_trait::pass, typename type_trait::pass, typename type_trait::pass, typename type_trait::pass, typename type_trait::pass>::type type; }; - typedef typename adaptor_type::result_type result_type; - - /** Invokes the wrapped functor passing on the bound argument only. - * @return The return value of the functor invocation. - */ - result_type - operator()(); - - /** Invokes the wrapped functor passing on the arguments. - * bound_ is passed as the 2th argument. - * @param _A_arg1 Argument to be passed on to the functor. - * @return The return value of the functor invocation. - */ - template - typename deduce_result_type::type - operator()(T_arg1 _A_arg1) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass, typename type_trait::pass> - (_A_arg1, bound_); - } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - typename deduce_result_type::type - sun_forte_workaround(T_arg1 _A_arg1) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass, typename type_trait::pass> - (_A_arg1, bound_); - } - #endif - - /** Invokes the wrapped functor passing on the arguments. - * bound_ is passed as the 2th argument. - * @param _A_arg1 Argument to be passed on to the functor. - * @param _A_arg2 Argument to be passed on to the functor. - * @return The return value of the functor invocation. - */ - template - typename deduce_result_type::type - operator()(T_arg1 _A_arg1,T_arg2 _A_arg2) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass, typename type_trait::pass, typename type_trait::pass> - (_A_arg1, bound_, _A_arg2); - } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - typename deduce_result_type::type - sun_forte_workaround(T_arg1 _A_arg1,T_arg2 _A_arg2) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass, typename type_trait::pass, typename type_trait::pass> - (_A_arg1, bound_, _A_arg2); - } - #endif - - /** Invokes the wrapped functor passing on the arguments. - * bound_ is passed as the 2th argument. - * @param _A_arg1 Argument to be passed on to the functor. - * @param _A_arg2 Argument to be passed on to the functor. - * @param _A_arg3 Argument to be passed on to the functor. - * @return The return value of the functor invocation. - */ - template - typename deduce_result_type::type - operator()(T_arg1 _A_arg1,T_arg2 _A_arg2,T_arg3 _A_arg3) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass, typename type_trait::pass, typename type_trait::pass, typename type_trait::pass> - (_A_arg1, bound_, _A_arg2, _A_arg3); - } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - typename deduce_result_type::type - sun_forte_workaround(T_arg1 _A_arg1,T_arg2 _A_arg2,T_arg3 _A_arg3) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass, typename type_trait::pass, typename type_trait::pass, typename type_trait::pass> - (_A_arg1, bound_, _A_arg2, _A_arg3); - } - #endif - - /** Invokes the wrapped functor passing on the arguments. - * bound_ is passed as the 2th argument. - * @param _A_arg1 Argument to be passed on to the functor. - * @param _A_arg2 Argument to be passed on to the functor. - * @param _A_arg3 Argument to be passed on to the functor. - * @param _A_arg4 Argument to be passed on to the functor. - * @return The return value of the functor invocation. - */ - template - typename deduce_result_type::type - operator()(T_arg1 _A_arg1,T_arg2 _A_arg2,T_arg3 _A_arg3,T_arg4 _A_arg4) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass, typename type_trait::pass, typename type_trait::pass, typename type_trait::pass, typename type_trait::pass> - (_A_arg1, bound_, _A_arg2, _A_arg3, _A_arg4); - } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - typename deduce_result_type::type - sun_forte_workaround(T_arg1 _A_arg1,T_arg2 _A_arg2,T_arg3 _A_arg3,T_arg4 _A_arg4) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass, typename type_trait::pass, typename type_trait::pass, typename type_trait::pass, typename type_trait::pass> - (_A_arg1, bound_, _A_arg2, _A_arg3, _A_arg4); - } - #endif - - /** Invokes the wrapped functor passing on the arguments. - * bound_ is passed as the 2th argument. - * @param _A_arg1 Argument to be passed on to the functor. - * @param _A_arg2 Argument to be passed on to the functor. - * @param _A_arg3 Argument to be passed on to the functor. - * @param _A_arg4 Argument to be passed on to the functor. - * @param _A_arg5 Argument to be passed on to the functor. - * @return The return value of the functor invocation. - */ - template - typename deduce_result_type::type - operator()(T_arg1 _A_arg1,T_arg2 _A_arg2,T_arg3 _A_arg3,T_arg4 _A_arg4,T_arg5 _A_arg5) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass, typename type_trait::pass, typename type_trait::pass, typename type_trait::pass, typename type_trait::pass, typename type_trait::pass> - (_A_arg1, bound_, _A_arg2, _A_arg3, _A_arg4, _A_arg5); - } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - typename deduce_result_type::type - sun_forte_workaround(T_arg1 _A_arg1,T_arg2 _A_arg2,T_arg3 _A_arg3,T_arg4 _A_arg4,T_arg5 _A_arg5) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass, typename type_trait::pass, typename type_trait::pass, typename type_trait::pass, typename type_trait::pass, typename type_trait::pass> - (_A_arg1, bound_, _A_arg2, _A_arg3, _A_arg4, _A_arg5); - } - #endif - - /** Invokes the wrapped functor passing on the arguments. - * bound_ is passed as the 2th argument. - * @param _A_arg1 Argument to be passed on to the functor. - * @param _A_arg2 Argument to be passed on to the functor. - * @param _A_arg3 Argument to be passed on to the functor. - * @param _A_arg4 Argument to be passed on to the functor. - * @param _A_arg5 Argument to be passed on to the functor. - * @param _A_arg6 Argument to be passed on to the functor. - * @return The return value of the functor invocation. - */ - template - typename deduce_result_type::type - operator()(T_arg1 _A_arg1,T_arg2 _A_arg2,T_arg3 _A_arg3,T_arg4 _A_arg4,T_arg5 _A_arg5,T_arg6 _A_arg6) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass, typename type_trait::pass, typename type_trait::pass, typename type_trait::pass, typename type_trait::pass, typename type_trait::pass, typename type_trait::pass> - (_A_arg1, bound_, _A_arg2, _A_arg3, _A_arg4, _A_arg5, _A_arg6); - } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - typename deduce_result_type::type - sun_forte_workaround(T_arg1 _A_arg1,T_arg2 _A_arg2,T_arg3 _A_arg3,T_arg4 _A_arg4,T_arg5 _A_arg5,T_arg6 _A_arg6) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass, typename type_trait::pass, typename type_trait::pass, typename type_trait::pass, typename type_trait::pass, typename type_trait::pass, typename type_trait::pass> - (_A_arg1, bound_, _A_arg2, _A_arg3, _A_arg4, _A_arg5, _A_arg6); - } - #endif - - /** Constructs a bind_functor object that binds an argument to the passed functor. - * @param _A_functor Functor to invoke from operator()(). - * @param _A_bound Argument to bind to the functor. - */ - bind_functor(typename type_trait::take _A_func, typename type_trait::take _A_bound) - : adapts(_A_func), bound_(_A_bound) - {} - - /// The argument bound to the functor. - T_bound bound_; -}; - -template -typename bind_functor<1, T_functor, T_bound>::result_type -bind_functor<1, T_functor, T_bound>::operator()() - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass> (bound_); } - -/** Adaptor that binds an argument to the wrapped functor. - * This template specialization fixes the 3th argument of the wrapped functor. - * - * @ingroup bind - */ -template -struct bind_functor<2, T_functor, T_bound> : public adapts -{ - typedef typename adapts::adaptor_type adaptor_type; - - template - struct deduce_result_type - { typedef typename adaptor_type::template deduce_result_type::pass,typename type_trait::pass, typename type_trait::pass, typename type_trait::pass, typename type_trait::pass, typename type_trait::pass, typename type_trait::pass>::type type; }; - typedef typename adaptor_type::result_type result_type; - - /** Invokes the wrapped functor passing on the bound argument only. - * @return The return value of the functor invocation. - */ - result_type - operator()(); - - /** Invokes the wrapped functor passing on the arguments. - * bound_ is passed as the 3th argument. - * @param _A_arg1 Argument to be passed on to the functor. - * @param _A_arg2 Argument to be passed on to the functor. - * @return The return value of the functor invocation. - */ - template - typename deduce_result_type::type - operator()(T_arg1 _A_arg1,T_arg2 _A_arg2) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass,typename type_trait::pass, typename type_trait::pass> - (_A_arg1,_A_arg2, bound_); - } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - typename deduce_result_type::type - sun_forte_workaround(T_arg1 _A_arg1,T_arg2 _A_arg2) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass,typename type_trait::pass, typename type_trait::pass> - (_A_arg1,_A_arg2, bound_); - } - #endif - - /** Invokes the wrapped functor passing on the arguments. - * bound_ is passed as the 3th argument. - * @param _A_arg1 Argument to be passed on to the functor. - * @param _A_arg2 Argument to be passed on to the functor. - * @param _A_arg3 Argument to be passed on to the functor. - * @return The return value of the functor invocation. - */ - template - typename deduce_result_type::type - operator()(T_arg1 _A_arg1,T_arg2 _A_arg2,T_arg3 _A_arg3) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass,typename type_trait::pass, typename type_trait::pass, typename type_trait::pass> - (_A_arg1,_A_arg2, bound_, _A_arg3); - } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - typename deduce_result_type::type - sun_forte_workaround(T_arg1 _A_arg1,T_arg2 _A_arg2,T_arg3 _A_arg3) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass,typename type_trait::pass, typename type_trait::pass, typename type_trait::pass> - (_A_arg1,_A_arg2, bound_, _A_arg3); - } - #endif - - /** Invokes the wrapped functor passing on the arguments. - * bound_ is passed as the 3th argument. - * @param _A_arg1 Argument to be passed on to the functor. - * @param _A_arg2 Argument to be passed on to the functor. - * @param _A_arg3 Argument to be passed on to the functor. - * @param _A_arg4 Argument to be passed on to the functor. - * @return The return value of the functor invocation. - */ - template - typename deduce_result_type::type - operator()(T_arg1 _A_arg1,T_arg2 _A_arg2,T_arg3 _A_arg3,T_arg4 _A_arg4) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass,typename type_trait::pass, typename type_trait::pass, typename type_trait::pass, typename type_trait::pass> - (_A_arg1,_A_arg2, bound_, _A_arg3, _A_arg4); - } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - typename deduce_result_type::type - sun_forte_workaround(T_arg1 _A_arg1,T_arg2 _A_arg2,T_arg3 _A_arg3,T_arg4 _A_arg4) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass,typename type_trait::pass, typename type_trait::pass, typename type_trait::pass, typename type_trait::pass> - (_A_arg1,_A_arg2, bound_, _A_arg3, _A_arg4); - } - #endif - - /** Invokes the wrapped functor passing on the arguments. - * bound_ is passed as the 3th argument. - * @param _A_arg1 Argument to be passed on to the functor. - * @param _A_arg2 Argument to be passed on to the functor. - * @param _A_arg3 Argument to be passed on to the functor. - * @param _A_arg4 Argument to be passed on to the functor. - * @param _A_arg5 Argument to be passed on to the functor. - * @return The return value of the functor invocation. - */ - template - typename deduce_result_type::type - operator()(T_arg1 _A_arg1,T_arg2 _A_arg2,T_arg3 _A_arg3,T_arg4 _A_arg4,T_arg5 _A_arg5) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass,typename type_trait::pass, typename type_trait::pass, typename type_trait::pass, typename type_trait::pass, typename type_trait::pass> - (_A_arg1,_A_arg2, bound_, _A_arg3, _A_arg4, _A_arg5); - } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - typename deduce_result_type::type - sun_forte_workaround(T_arg1 _A_arg1,T_arg2 _A_arg2,T_arg3 _A_arg3,T_arg4 _A_arg4,T_arg5 _A_arg5) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass,typename type_trait::pass, typename type_trait::pass, typename type_trait::pass, typename type_trait::pass, typename type_trait::pass> - (_A_arg1,_A_arg2, bound_, _A_arg3, _A_arg4, _A_arg5); - } - #endif - - /** Invokes the wrapped functor passing on the arguments. - * bound_ is passed as the 3th argument. - * @param _A_arg1 Argument to be passed on to the functor. - * @param _A_arg2 Argument to be passed on to the functor. - * @param _A_arg3 Argument to be passed on to the functor. - * @param _A_arg4 Argument to be passed on to the functor. - * @param _A_arg5 Argument to be passed on to the functor. - * @param _A_arg6 Argument to be passed on to the functor. - * @return The return value of the functor invocation. - */ - template - typename deduce_result_type::type - operator()(T_arg1 _A_arg1,T_arg2 _A_arg2,T_arg3 _A_arg3,T_arg4 _A_arg4,T_arg5 _A_arg5,T_arg6 _A_arg6) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass,typename type_trait::pass, typename type_trait::pass, typename type_trait::pass, typename type_trait::pass, typename type_trait::pass, typename type_trait::pass> - (_A_arg1,_A_arg2, bound_, _A_arg3, _A_arg4, _A_arg5, _A_arg6); - } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - typename deduce_result_type::type - sun_forte_workaround(T_arg1 _A_arg1,T_arg2 _A_arg2,T_arg3 _A_arg3,T_arg4 _A_arg4,T_arg5 _A_arg5,T_arg6 _A_arg6) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass,typename type_trait::pass, typename type_trait::pass, typename type_trait::pass, typename type_trait::pass, typename type_trait::pass, typename type_trait::pass> - (_A_arg1,_A_arg2, bound_, _A_arg3, _A_arg4, _A_arg5, _A_arg6); - } - #endif - - /** Constructs a bind_functor object that binds an argument to the passed functor. - * @param _A_functor Functor to invoke from operator()(). - * @param _A_bound Argument to bind to the functor. - */ - bind_functor(typename type_trait::take _A_func, typename type_trait::take _A_bound) - : adapts(_A_func), bound_(_A_bound) - {} - - /// The argument bound to the functor. - T_bound bound_; -}; - -template -typename bind_functor<2, T_functor, T_bound>::result_type -bind_functor<2, T_functor, T_bound>::operator()() - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass> (bound_); } - -/** Adaptor that binds an argument to the wrapped functor. - * This template specialization fixes the 4th argument of the wrapped functor. - * - * @ingroup bind - */ -template -struct bind_functor<3, T_functor, T_bound> : public adapts -{ - typedef typename adapts::adaptor_type adaptor_type; - - template - struct deduce_result_type - { typedef typename adaptor_type::template deduce_result_type::pass,typename type_trait::pass,typename type_trait::pass, typename type_trait::pass, typename type_trait::pass, typename type_trait::pass, typename type_trait::pass>::type type; }; - typedef typename adaptor_type::result_type result_type; - - /** Invokes the wrapped functor passing on the bound argument only. - * @return The return value of the functor invocation. - */ - result_type - operator()(); - - /** Invokes the wrapped functor passing on the arguments. - * bound_ is passed as the 4th argument. - * @param _A_arg1 Argument to be passed on to the functor. - * @param _A_arg2 Argument to be passed on to the functor. - * @param _A_arg3 Argument to be passed on to the functor. - * @return The return value of the functor invocation. - */ - template - typename deduce_result_type::type - operator()(T_arg1 _A_arg1,T_arg2 _A_arg2,T_arg3 _A_arg3) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass,typename type_trait::pass,typename type_trait::pass, typename type_trait::pass> - (_A_arg1,_A_arg2,_A_arg3, bound_); - } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - typename deduce_result_type::type - sun_forte_workaround(T_arg1 _A_arg1,T_arg2 _A_arg2,T_arg3 _A_arg3) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass,typename type_trait::pass,typename type_trait::pass, typename type_trait::pass> - (_A_arg1,_A_arg2,_A_arg3, bound_); - } - #endif - - /** Invokes the wrapped functor passing on the arguments. - * bound_ is passed as the 4th argument. - * @param _A_arg1 Argument to be passed on to the functor. - * @param _A_arg2 Argument to be passed on to the functor. - * @param _A_arg3 Argument to be passed on to the functor. - * @param _A_arg4 Argument to be passed on to the functor. - * @return The return value of the functor invocation. - */ - template - typename deduce_result_type::type - operator()(T_arg1 _A_arg1,T_arg2 _A_arg2,T_arg3 _A_arg3,T_arg4 _A_arg4) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass,typename type_trait::pass,typename type_trait::pass, typename type_trait::pass, typename type_trait::pass> - (_A_arg1,_A_arg2,_A_arg3, bound_, _A_arg4); - } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - typename deduce_result_type::type - sun_forte_workaround(T_arg1 _A_arg1,T_arg2 _A_arg2,T_arg3 _A_arg3,T_arg4 _A_arg4) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass,typename type_trait::pass,typename type_trait::pass, typename type_trait::pass, typename type_trait::pass> - (_A_arg1,_A_arg2,_A_arg3, bound_, _A_arg4); - } - #endif - - /** Invokes the wrapped functor passing on the arguments. - * bound_ is passed as the 4th argument. - * @param _A_arg1 Argument to be passed on to the functor. - * @param _A_arg2 Argument to be passed on to the functor. - * @param _A_arg3 Argument to be passed on to the functor. - * @param _A_arg4 Argument to be passed on to the functor. - * @param _A_arg5 Argument to be passed on to the functor. - * @return The return value of the functor invocation. - */ - template - typename deduce_result_type::type - operator()(T_arg1 _A_arg1,T_arg2 _A_arg2,T_arg3 _A_arg3,T_arg4 _A_arg4,T_arg5 _A_arg5) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass,typename type_trait::pass,typename type_trait::pass, typename type_trait::pass, typename type_trait::pass, typename type_trait::pass> - (_A_arg1,_A_arg2,_A_arg3, bound_, _A_arg4, _A_arg5); - } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - typename deduce_result_type::type - sun_forte_workaround(T_arg1 _A_arg1,T_arg2 _A_arg2,T_arg3 _A_arg3,T_arg4 _A_arg4,T_arg5 _A_arg5) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass,typename type_trait::pass,typename type_trait::pass, typename type_trait::pass, typename type_trait::pass, typename type_trait::pass> - (_A_arg1,_A_arg2,_A_arg3, bound_, _A_arg4, _A_arg5); - } - #endif - - /** Invokes the wrapped functor passing on the arguments. - * bound_ is passed as the 4th argument. - * @param _A_arg1 Argument to be passed on to the functor. - * @param _A_arg2 Argument to be passed on to the functor. - * @param _A_arg3 Argument to be passed on to the functor. - * @param _A_arg4 Argument to be passed on to the functor. - * @param _A_arg5 Argument to be passed on to the functor. - * @param _A_arg6 Argument to be passed on to the functor. - * @return The return value of the functor invocation. - */ - template - typename deduce_result_type::type - operator()(T_arg1 _A_arg1,T_arg2 _A_arg2,T_arg3 _A_arg3,T_arg4 _A_arg4,T_arg5 _A_arg5,T_arg6 _A_arg6) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass,typename type_trait::pass,typename type_trait::pass, typename type_trait::pass, typename type_trait::pass, typename type_trait::pass, typename type_trait::pass> - (_A_arg1,_A_arg2,_A_arg3, bound_, _A_arg4, _A_arg5, _A_arg6); - } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - typename deduce_result_type::type - sun_forte_workaround(T_arg1 _A_arg1,T_arg2 _A_arg2,T_arg3 _A_arg3,T_arg4 _A_arg4,T_arg5 _A_arg5,T_arg6 _A_arg6) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass,typename type_trait::pass,typename type_trait::pass, typename type_trait::pass, typename type_trait::pass, typename type_trait::pass, typename type_trait::pass> - (_A_arg1,_A_arg2,_A_arg3, bound_, _A_arg4, _A_arg5, _A_arg6); - } - #endif - - /** Constructs a bind_functor object that binds an argument to the passed functor. - * @param _A_functor Functor to invoke from operator()(). - * @param _A_bound Argument to bind to the functor. - */ - bind_functor(typename type_trait::take _A_func, typename type_trait::take _A_bound) - : adapts(_A_func), bound_(_A_bound) - {} - - /// The argument bound to the functor. - T_bound bound_; -}; - -template -typename bind_functor<3, T_functor, T_bound>::result_type -bind_functor<3, T_functor, T_bound>::operator()() - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass> (bound_); } - -/** Adaptor that binds an argument to the wrapped functor. - * This template specialization fixes the 5th argument of the wrapped functor. - * - * @ingroup bind - */ -template -struct bind_functor<4, T_functor, T_bound> : public adapts -{ - typedef typename adapts::adaptor_type adaptor_type; - - template - struct deduce_result_type - { typedef typename adaptor_type::template deduce_result_type::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass, typename type_trait::pass, typename type_trait::pass, typename type_trait::pass>::type type; }; - typedef typename adaptor_type::result_type result_type; - - /** Invokes the wrapped functor passing on the bound argument only. - * @return The return value of the functor invocation. - */ - result_type - operator()(); - - /** Invokes the wrapped functor passing on the arguments. - * bound_ is passed as the 5th argument. - * @param _A_arg1 Argument to be passed on to the functor. - * @param _A_arg2 Argument to be passed on to the functor. - * @param _A_arg3 Argument to be passed on to the functor. - * @param _A_arg4 Argument to be passed on to the functor. - * @return The return value of the functor invocation. - */ - template - typename deduce_result_type::type - operator()(T_arg1 _A_arg1,T_arg2 _A_arg2,T_arg3 _A_arg3,T_arg4 _A_arg4) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass, typename type_trait::pass> - (_A_arg1,_A_arg2,_A_arg3,_A_arg4, bound_); - } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - typename deduce_result_type::type - sun_forte_workaround(T_arg1 _A_arg1,T_arg2 _A_arg2,T_arg3 _A_arg3,T_arg4 _A_arg4) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass, typename type_trait::pass> - (_A_arg1,_A_arg2,_A_arg3,_A_arg4, bound_); - } - #endif - - /** Invokes the wrapped functor passing on the arguments. - * bound_ is passed as the 5th argument. - * @param _A_arg1 Argument to be passed on to the functor. - * @param _A_arg2 Argument to be passed on to the functor. - * @param _A_arg3 Argument to be passed on to the functor. - * @param _A_arg4 Argument to be passed on to the functor. - * @param _A_arg5 Argument to be passed on to the functor. - * @return The return value of the functor invocation. - */ - template - typename deduce_result_type::type - operator()(T_arg1 _A_arg1,T_arg2 _A_arg2,T_arg3 _A_arg3,T_arg4 _A_arg4,T_arg5 _A_arg5) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass, typename type_trait::pass, typename type_trait::pass> - (_A_arg1,_A_arg2,_A_arg3,_A_arg4, bound_, _A_arg5); - } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - typename deduce_result_type::type - sun_forte_workaround(T_arg1 _A_arg1,T_arg2 _A_arg2,T_arg3 _A_arg3,T_arg4 _A_arg4,T_arg5 _A_arg5) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass, typename type_trait::pass, typename type_trait::pass> - (_A_arg1,_A_arg2,_A_arg3,_A_arg4, bound_, _A_arg5); - } - #endif - - /** Invokes the wrapped functor passing on the arguments. - * bound_ is passed as the 5th argument. - * @param _A_arg1 Argument to be passed on to the functor. - * @param _A_arg2 Argument to be passed on to the functor. - * @param _A_arg3 Argument to be passed on to the functor. - * @param _A_arg4 Argument to be passed on to the functor. - * @param _A_arg5 Argument to be passed on to the functor. - * @param _A_arg6 Argument to be passed on to the functor. - * @return The return value of the functor invocation. - */ - template - typename deduce_result_type::type - operator()(T_arg1 _A_arg1,T_arg2 _A_arg2,T_arg3 _A_arg3,T_arg4 _A_arg4,T_arg5 _A_arg5,T_arg6 _A_arg6) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass, typename type_trait::pass, typename type_trait::pass, typename type_trait::pass> - (_A_arg1,_A_arg2,_A_arg3,_A_arg4, bound_, _A_arg5, _A_arg6); - } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - typename deduce_result_type::type - sun_forte_workaround(T_arg1 _A_arg1,T_arg2 _A_arg2,T_arg3 _A_arg3,T_arg4 _A_arg4,T_arg5 _A_arg5,T_arg6 _A_arg6) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass, typename type_trait::pass, typename type_trait::pass, typename type_trait::pass> - (_A_arg1,_A_arg2,_A_arg3,_A_arg4, bound_, _A_arg5, _A_arg6); - } - #endif - - /** Constructs a bind_functor object that binds an argument to the passed functor. - * @param _A_functor Functor to invoke from operator()(). - * @param _A_bound Argument to bind to the functor. - */ - bind_functor(typename type_trait::take _A_func, typename type_trait::take _A_bound) - : adapts(_A_func), bound_(_A_bound) - {} - - /// The argument bound to the functor. - T_bound bound_; -}; - -template -typename bind_functor<4, T_functor, T_bound>::result_type -bind_functor<4, T_functor, T_bound>::operator()() - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass> (bound_); } - -/** Adaptor that binds an argument to the wrapped functor. - * This template specialization fixes the 6th argument of the wrapped functor. - * - * @ingroup bind - */ -template -struct bind_functor<5, T_functor, T_bound> : public adapts -{ - typedef typename adapts::adaptor_type adaptor_type; - - template - struct deduce_result_type - { typedef typename adaptor_type::template deduce_result_type::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass, typename type_trait::pass, typename type_trait::pass>::type type; }; - typedef typename adaptor_type::result_type result_type; - - /** Invokes the wrapped functor passing on the bound argument only. - * @return The return value of the functor invocation. - */ - result_type - operator()(); - - /** Invokes the wrapped functor passing on the arguments. - * bound_ is passed as the 6th argument. - * @param _A_arg1 Argument to be passed on to the functor. - * @param _A_arg2 Argument to be passed on to the functor. - * @param _A_arg3 Argument to be passed on to the functor. - * @param _A_arg4 Argument to be passed on to the functor. - * @param _A_arg5 Argument to be passed on to the functor. - * @return The return value of the functor invocation. - */ - template - typename deduce_result_type::type - operator()(T_arg1 _A_arg1,T_arg2 _A_arg2,T_arg3 _A_arg3,T_arg4 _A_arg4,T_arg5 _A_arg5) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass, typename type_trait::pass> - (_A_arg1,_A_arg2,_A_arg3,_A_arg4,_A_arg5, bound_); - } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - typename deduce_result_type::type - sun_forte_workaround(T_arg1 _A_arg1,T_arg2 _A_arg2,T_arg3 _A_arg3,T_arg4 _A_arg4,T_arg5 _A_arg5) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass, typename type_trait::pass> - (_A_arg1,_A_arg2,_A_arg3,_A_arg4,_A_arg5, bound_); - } - #endif - - /** Invokes the wrapped functor passing on the arguments. - * bound_ is passed as the 6th argument. - * @param _A_arg1 Argument to be passed on to the functor. - * @param _A_arg2 Argument to be passed on to the functor. - * @param _A_arg3 Argument to be passed on to the functor. - * @param _A_arg4 Argument to be passed on to the functor. - * @param _A_arg5 Argument to be passed on to the functor. - * @param _A_arg6 Argument to be passed on to the functor. - * @return The return value of the functor invocation. - */ - template - typename deduce_result_type::type - operator()(T_arg1 _A_arg1,T_arg2 _A_arg2,T_arg3 _A_arg3,T_arg4 _A_arg4,T_arg5 _A_arg5,T_arg6 _A_arg6) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass, typename type_trait::pass, typename type_trait::pass> - (_A_arg1,_A_arg2,_A_arg3,_A_arg4,_A_arg5, bound_, _A_arg6); - } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - typename deduce_result_type::type - sun_forte_workaround(T_arg1 _A_arg1,T_arg2 _A_arg2,T_arg3 _A_arg3,T_arg4 _A_arg4,T_arg5 _A_arg5,T_arg6 _A_arg6) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass, typename type_trait::pass, typename type_trait::pass> - (_A_arg1,_A_arg2,_A_arg3,_A_arg4,_A_arg5, bound_, _A_arg6); - } - #endif - - /** Constructs a bind_functor object that binds an argument to the passed functor. - * @param _A_functor Functor to invoke from operator()(). - * @param _A_bound Argument to bind to the functor. - */ - bind_functor(typename type_trait::take _A_func, typename type_trait::take _A_bound) - : adapts(_A_func), bound_(_A_bound) - {} - - /// The argument bound to the functor. - T_bound bound_; -}; - -template -typename bind_functor<5, T_functor, T_bound>::result_type -bind_functor<5, T_functor, T_bound>::operator()() - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass> (bound_); } - -/** Adaptor that binds an argument to the wrapped functor. - * This template specialization fixes the 7th argument of the wrapped functor. - * - * @ingroup bind - */ -template -struct bind_functor<6, T_functor, T_bound> : public adapts -{ - typedef typename adapts::adaptor_type adaptor_type; - - template - struct deduce_result_type - { typedef typename adaptor_type::template deduce_result_type::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass, typename type_trait::pass>::type type; }; - typedef typename adaptor_type::result_type result_type; - - /** Invokes the wrapped functor passing on the bound argument only. - * @return The return value of the functor invocation. - */ - result_type - operator()(); - - /** Invokes the wrapped functor passing on the arguments. - * bound_ is passed as the 7th argument. - * @param _A_arg1 Argument to be passed on to the functor. - * @param _A_arg2 Argument to be passed on to the functor. - * @param _A_arg3 Argument to be passed on to the functor. - * @param _A_arg4 Argument to be passed on to the functor. - * @param _A_arg5 Argument to be passed on to the functor. - * @param _A_arg6 Argument to be passed on to the functor. - * @return The return value of the functor invocation. - */ - template - typename deduce_result_type::type - operator()(T_arg1 _A_arg1,T_arg2 _A_arg2,T_arg3 _A_arg3,T_arg4 _A_arg4,T_arg5 _A_arg5,T_arg6 _A_arg6) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass, typename type_trait::pass> - (_A_arg1,_A_arg2,_A_arg3,_A_arg4,_A_arg5,_A_arg6, bound_); - } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - typename deduce_result_type::type - sun_forte_workaround(T_arg1 _A_arg1,T_arg2 _A_arg2,T_arg3 _A_arg3,T_arg4 _A_arg4,T_arg5 _A_arg5,T_arg6 _A_arg6) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass, typename type_trait::pass> - (_A_arg1,_A_arg2,_A_arg3,_A_arg4,_A_arg5,_A_arg6, bound_); - } - #endif - - /** Constructs a bind_functor object that binds an argument to the passed functor. - * @param _A_functor Functor to invoke from operator()(). - * @param _A_bound Argument to bind to the functor. - */ - bind_functor(typename type_trait::take _A_func, typename type_trait::take _A_bound) - : adapts(_A_func), bound_(_A_bound) - {} - - /// The argument bound to the functor. - T_bound bound_; -}; - -template -typename bind_functor<6, T_functor, T_bound>::result_type -bind_functor<6, T_functor, T_bound>::operator()() - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass> (bound_); } - -/** Performs a functor on each of the targets of a functor. - * The function overload for sigc::bind_functor performs a functor on the - * functor and on the object instances stored in the sigc::bind_functor object. - * - * @ingroup bind - */ -template -void visit_each(const T_action& _A_action, - const bind_functor& _A_target) -{ - visit_each(_A_action, _A_target.functor_); - visit_each(_A_action, _A_target.bound_); -} - -/** Adaptor that binds 1 argument(s) to the wrapped functor. - * This template specialization fixes the last 1 argument(s) of the wrapped functor. - * - * @ingroup bind - */ -template -struct bind_functor<-1, T_functor, T_type1> : public adapts -{ - typedef typename adapts::adaptor_type adaptor_type; - -#ifndef DOXYGEN_SHOULD_SKIP_THIS - template - struct deduce_result_type_internal - { typedef typename adaptor_type::template deduce_result_type::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass, typename type_trait::pass>::type type; }; - template - struct deduce_result_type_internal<2, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6,T_arg7> - { typedef typename adaptor_type::template deduce_result_type::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass, typename type_trait::pass>::type type; }; - template - struct deduce_result_type_internal<3, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6,T_arg7> - { typedef typename adaptor_type::template deduce_result_type::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass, typename type_trait::pass>::type type; }; - template - struct deduce_result_type_internal<4, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6,T_arg7> - { typedef typename adaptor_type::template deduce_result_type::pass,typename type_trait::pass,typename type_trait::pass, typename type_trait::pass>::type type; }; - template - struct deduce_result_type_internal<5, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6,T_arg7> - { typedef typename adaptor_type::template deduce_result_type::pass,typename type_trait::pass, typename type_trait::pass>::type type; }; - template - struct deduce_result_type_internal<6, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6,T_arg7> - { typedef typename adaptor_type::template deduce_result_type::pass, typename type_trait::pass>::type type; }; -#endif /*DOXYGEN_SHOULD_SKIP_THIS*/ - - template - struct deduce_result_type { - typedef typename deduce_result_type_internal::value, - T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6,T_arg7>::type type; - }; - typedef typename adaptor_type::result_type result_type; - - /** Invokes the wrapped functor passing on the bound argument only. - * @return The return value of the functor invocation. - */ - result_type - operator()(); - - /** Invokes the wrapped functor passing on the arguments. - * The last 1 argument(s) are fixed. - * @param _A_arg1 Argument to be passed on to the functor. - * @return The return value of the functor invocation. - */ - template - typename deduce_result_type::type - operator()(T_arg1 _A_arg1) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass, typename type_trait::pass> - (_A_arg1, bound1_); - } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - typename deduce_result_type::type - sun_forte_workaround(T_arg1 _A_arg1) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass, typename type_trait::pass> - (_A_arg1, bound1_); - } - #endif - - /** Invokes the wrapped functor passing on the arguments. - * The last 1 argument(s) are fixed. - * @param _A_arg1 Argument to be passed on to the functor. - * @param _A_arg2 Argument to be passed on to the functor. - * @return The return value of the functor invocation. - */ - template - typename deduce_result_type::type - operator()(T_arg1 _A_arg1,T_arg2 _A_arg2) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass,typename type_trait::pass, typename type_trait::pass> - (_A_arg1,_A_arg2, bound1_); - } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - typename deduce_result_type::type - sun_forte_workaround(T_arg1 _A_arg1,T_arg2 _A_arg2) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass,typename type_trait::pass, typename type_trait::pass> - (_A_arg1,_A_arg2, bound1_); - } - #endif - - /** Invokes the wrapped functor passing on the arguments. - * The last 1 argument(s) are fixed. - * @param _A_arg1 Argument to be passed on to the functor. - * @param _A_arg2 Argument to be passed on to the functor. - * @param _A_arg3 Argument to be passed on to the functor. - * @return The return value of the functor invocation. - */ - template - typename deduce_result_type::type - operator()(T_arg1 _A_arg1,T_arg2 _A_arg2,T_arg3 _A_arg3) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass,typename type_trait::pass,typename type_trait::pass, typename type_trait::pass> - (_A_arg1,_A_arg2,_A_arg3, bound1_); - } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - typename deduce_result_type::type - sun_forte_workaround(T_arg1 _A_arg1,T_arg2 _A_arg2,T_arg3 _A_arg3) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass,typename type_trait::pass,typename type_trait::pass, typename type_trait::pass> - (_A_arg1,_A_arg2,_A_arg3, bound1_); - } - #endif - - /** Invokes the wrapped functor passing on the arguments. - * The last 1 argument(s) are fixed. - * @param _A_arg1 Argument to be passed on to the functor. - * @param _A_arg2 Argument to be passed on to the functor. - * @param _A_arg3 Argument to be passed on to the functor. - * @param _A_arg4 Argument to be passed on to the functor. - * @return The return value of the functor invocation. - */ - template - typename deduce_result_type::type - operator()(T_arg1 _A_arg1,T_arg2 _A_arg2,T_arg3 _A_arg3,T_arg4 _A_arg4) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass, typename type_trait::pass> - (_A_arg1,_A_arg2,_A_arg3,_A_arg4, bound1_); - } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - typename deduce_result_type::type - sun_forte_workaround(T_arg1 _A_arg1,T_arg2 _A_arg2,T_arg3 _A_arg3,T_arg4 _A_arg4) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass, typename type_trait::pass> - (_A_arg1,_A_arg2,_A_arg3,_A_arg4, bound1_); - } - #endif - - /** Invokes the wrapped functor passing on the arguments. - * The last 1 argument(s) are fixed. - * @param _A_arg1 Argument to be passed on to the functor. - * @param _A_arg2 Argument to be passed on to the functor. - * @param _A_arg3 Argument to be passed on to the functor. - * @param _A_arg4 Argument to be passed on to the functor. - * @param _A_arg5 Argument to be passed on to the functor. - * @return The return value of the functor invocation. - */ - template - typename deduce_result_type::type - operator()(T_arg1 _A_arg1,T_arg2 _A_arg2,T_arg3 _A_arg3,T_arg4 _A_arg4,T_arg5 _A_arg5) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass, typename type_trait::pass> - (_A_arg1,_A_arg2,_A_arg3,_A_arg4,_A_arg5, bound1_); - } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - typename deduce_result_type::type - sun_forte_workaround(T_arg1 _A_arg1,T_arg2 _A_arg2,T_arg3 _A_arg3,T_arg4 _A_arg4,T_arg5 _A_arg5) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass, typename type_trait::pass> - (_A_arg1,_A_arg2,_A_arg3,_A_arg4,_A_arg5, bound1_); - } - #endif - - /** Invokes the wrapped functor passing on the arguments. - * The last 1 argument(s) are fixed. - * @param _A_arg1 Argument to be passed on to the functor. - * @param _A_arg2 Argument to be passed on to the functor. - * @param _A_arg3 Argument to be passed on to the functor. - * @param _A_arg4 Argument to be passed on to the functor. - * @param _A_arg5 Argument to be passed on to the functor. - * @param _A_arg6 Argument to be passed on to the functor. - * @return The return value of the functor invocation. - */ - template - typename deduce_result_type::type - operator()(T_arg1 _A_arg1,T_arg2 _A_arg2,T_arg3 _A_arg3,T_arg4 _A_arg4,T_arg5 _A_arg5,T_arg6 _A_arg6) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass, typename type_trait::pass> - (_A_arg1,_A_arg2,_A_arg3,_A_arg4,_A_arg5,_A_arg6, bound1_); - } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - typename deduce_result_type::type - sun_forte_workaround(T_arg1 _A_arg1,T_arg2 _A_arg2,T_arg3 _A_arg3,T_arg4 _A_arg4,T_arg5 _A_arg5,T_arg6 _A_arg6) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass, typename type_trait::pass> - (_A_arg1,_A_arg2,_A_arg3,_A_arg4,_A_arg5,_A_arg6, bound1_); - } - #endif - - /** Constructs a bind_functor object that binds an argument to the passed functor. - * @param _A_functor Functor to invoke from operator()(). - * @param _A_bound Argument to bind to the functor. - */ - bind_functor(typename type_trait::take _A_func, typename type_trait::take _A_bound1) - : adapts(_A_func), bound1_(_A_bound1) - {} - - /// The argument bound to the functor. - T_type1 bound1_; -}; - -template -typename bind_functor<-1, T_functor, T_type1>::result_type -bind_functor<-1, T_functor, T_type1>::operator()() - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass> (bound1_); } - -/** Performs a functor on each of the targets of a functor. - * The function overload for sigc::bind_functor performs a functor on the - * functor and on the object instances stored in the sigc::bind_functor object. - * - * @ingroup bind - */ -template -void visit_each(const T_action& _A_action, - const bind_functor<-1, T_functor, T_type1>& _A_target) -{ - visit_each(_A_action, _A_target.functor_); - visit_each(_A_action, _A_target.bound1_); -} - -/** Adaptor that binds 2 argument(s) to the wrapped functor. - * This template specialization fixes the last 2 argument(s) of the wrapped functor. - * - * @ingroup bind - */ -template -struct bind_functor<-1, T_functor, T_type1,T_type2> : public adapts -{ - typedef typename adapts::adaptor_type adaptor_type; - -#ifndef DOXYGEN_SHOULD_SKIP_THIS - template - struct deduce_result_type_internal - { typedef typename adaptor_type::template deduce_result_type::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass, typename type_trait::pass,typename type_trait::pass>::type type; }; - template - struct deduce_result_type_internal<3, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6,T_arg7> - { typedef typename adaptor_type::template deduce_result_type::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass, typename type_trait::pass,typename type_trait::pass>::type type; }; - template - struct deduce_result_type_internal<4, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6,T_arg7> - { typedef typename adaptor_type::template deduce_result_type::pass,typename type_trait::pass,typename type_trait::pass, typename type_trait::pass,typename type_trait::pass>::type type; }; - template - struct deduce_result_type_internal<5, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6,T_arg7> - { typedef typename adaptor_type::template deduce_result_type::pass,typename type_trait::pass, typename type_trait::pass,typename type_trait::pass>::type type; }; - template - struct deduce_result_type_internal<6, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6,T_arg7> - { typedef typename adaptor_type::template deduce_result_type::pass, typename type_trait::pass,typename type_trait::pass>::type type; }; -#endif /*DOXYGEN_SHOULD_SKIP_THIS*/ - - template - struct deduce_result_type { - typedef typename deduce_result_type_internal::value, - T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6,T_arg7>::type type; - }; - typedef typename adaptor_type::result_type result_type; - - /** Invokes the wrapped functor passing on the bound argument only. - * @return The return value of the functor invocation. - */ - result_type - operator()(); - - /** Invokes the wrapped functor passing on the arguments. - * The last 2 argument(s) are fixed. - * @param _A_arg1 Argument to be passed on to the functor. - * @return The return value of the functor invocation. - */ - template - typename deduce_result_type::type - operator()(T_arg1 _A_arg1) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass, typename type_trait::pass,typename type_trait::pass> - (_A_arg1, bound1_,bound2_); - } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - typename deduce_result_type::type - sun_forte_workaround(T_arg1 _A_arg1) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass, typename type_trait::pass,typename type_trait::pass> - (_A_arg1, bound1_,bound2_); - } - #endif - - /** Invokes the wrapped functor passing on the arguments. - * The last 2 argument(s) are fixed. - * @param _A_arg1 Argument to be passed on to the functor. - * @param _A_arg2 Argument to be passed on to the functor. - * @return The return value of the functor invocation. - */ - template - typename deduce_result_type::type - operator()(T_arg1 _A_arg1,T_arg2 _A_arg2) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass,typename type_trait::pass, typename type_trait::pass,typename type_trait::pass> - (_A_arg1,_A_arg2, bound1_,bound2_); - } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - typename deduce_result_type::type - sun_forte_workaround(T_arg1 _A_arg1,T_arg2 _A_arg2) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass,typename type_trait::pass, typename type_trait::pass,typename type_trait::pass> - (_A_arg1,_A_arg2, bound1_,bound2_); - } - #endif - - /** Invokes the wrapped functor passing on the arguments. - * The last 2 argument(s) are fixed. - * @param _A_arg1 Argument to be passed on to the functor. - * @param _A_arg2 Argument to be passed on to the functor. - * @param _A_arg3 Argument to be passed on to the functor. - * @return The return value of the functor invocation. - */ - template - typename deduce_result_type::type - operator()(T_arg1 _A_arg1,T_arg2 _A_arg2,T_arg3 _A_arg3) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass,typename type_trait::pass,typename type_trait::pass, typename type_trait::pass,typename type_trait::pass> - (_A_arg1,_A_arg2,_A_arg3, bound1_,bound2_); - } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - typename deduce_result_type::type - sun_forte_workaround(T_arg1 _A_arg1,T_arg2 _A_arg2,T_arg3 _A_arg3) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass,typename type_trait::pass,typename type_trait::pass, typename type_trait::pass,typename type_trait::pass> - (_A_arg1,_A_arg2,_A_arg3, bound1_,bound2_); - } - #endif - - /** Invokes the wrapped functor passing on the arguments. - * The last 2 argument(s) are fixed. - * @param _A_arg1 Argument to be passed on to the functor. - * @param _A_arg2 Argument to be passed on to the functor. - * @param _A_arg3 Argument to be passed on to the functor. - * @param _A_arg4 Argument to be passed on to the functor. - * @return The return value of the functor invocation. - */ - template - typename deduce_result_type::type - operator()(T_arg1 _A_arg1,T_arg2 _A_arg2,T_arg3 _A_arg3,T_arg4 _A_arg4) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass, typename type_trait::pass,typename type_trait::pass> - (_A_arg1,_A_arg2,_A_arg3,_A_arg4, bound1_,bound2_); - } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - typename deduce_result_type::type - sun_forte_workaround(T_arg1 _A_arg1,T_arg2 _A_arg2,T_arg3 _A_arg3,T_arg4 _A_arg4) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass, typename type_trait::pass,typename type_trait::pass> - (_A_arg1,_A_arg2,_A_arg3,_A_arg4, bound1_,bound2_); - } - #endif - - /** Invokes the wrapped functor passing on the arguments. - * The last 2 argument(s) are fixed. - * @param _A_arg1 Argument to be passed on to the functor. - * @param _A_arg2 Argument to be passed on to the functor. - * @param _A_arg3 Argument to be passed on to the functor. - * @param _A_arg4 Argument to be passed on to the functor. - * @param _A_arg5 Argument to be passed on to the functor. - * @return The return value of the functor invocation. - */ - template - typename deduce_result_type::type - operator()(T_arg1 _A_arg1,T_arg2 _A_arg2,T_arg3 _A_arg3,T_arg4 _A_arg4,T_arg5 _A_arg5) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass, typename type_trait::pass,typename type_trait::pass> - (_A_arg1,_A_arg2,_A_arg3,_A_arg4,_A_arg5, bound1_,bound2_); - } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - typename deduce_result_type::type - sun_forte_workaround(T_arg1 _A_arg1,T_arg2 _A_arg2,T_arg3 _A_arg3,T_arg4 _A_arg4,T_arg5 _A_arg5) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass, typename type_trait::pass,typename type_trait::pass> - (_A_arg1,_A_arg2,_A_arg3,_A_arg4,_A_arg5, bound1_,bound2_); - } - #endif - - /** Constructs a bind_functor object that binds an argument to the passed functor. - * @param _A_functor Functor to invoke from operator()(). - * @param _A_bound Argument to bind to the functor. - */ - bind_functor(typename type_trait::take _A_func, typename type_trait::take _A_bound1,typename type_trait::take _A_bound2) - : adapts(_A_func), bound1_(_A_bound1),bound2_(_A_bound2) - {} - - /// The argument bound to the functor. - T_type1 bound1_; - T_type2 bound2_; -}; - -template -typename bind_functor<-1, T_functor, T_type1,T_type2>::result_type -bind_functor<-1, T_functor, T_type1,T_type2>::operator()() - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass,typename type_trait::pass> (bound1_,bound2_); } - -/** Performs a functor on each of the targets of a functor. - * The function overload for sigc::bind_functor performs a functor on the - * functor and on the object instances stored in the sigc::bind_functor object. - * - * @ingroup bind - */ -template -void visit_each(const T_action& _A_action, - const bind_functor<-1, T_functor, T_type1,T_type2>& _A_target) -{ - visit_each(_A_action, _A_target.functor_); - visit_each(_A_action, _A_target.bound1_); - visit_each(_A_action, _A_target.bound2_); -} - -/** Adaptor that binds 3 argument(s) to the wrapped functor. - * This template specialization fixes the last 3 argument(s) of the wrapped functor. - * - * @ingroup bind - */ -template -struct bind_functor<-1, T_functor, T_type1,T_type2,T_type3> : public adapts -{ - typedef typename adapts::adaptor_type adaptor_type; - -#ifndef DOXYGEN_SHOULD_SKIP_THIS - template - struct deduce_result_type_internal - { typedef typename adaptor_type::template deduce_result_type::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass, typename type_trait::pass,typename type_trait::pass,typename type_trait::pass>::type type; }; - template - struct deduce_result_type_internal<4, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6,T_arg7> - { typedef typename adaptor_type::template deduce_result_type::pass,typename type_trait::pass,typename type_trait::pass, typename type_trait::pass,typename type_trait::pass,typename type_trait::pass>::type type; }; - template - struct deduce_result_type_internal<5, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6,T_arg7> - { typedef typename adaptor_type::template deduce_result_type::pass,typename type_trait::pass, typename type_trait::pass,typename type_trait::pass,typename type_trait::pass>::type type; }; - template - struct deduce_result_type_internal<6, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6,T_arg7> - { typedef typename adaptor_type::template deduce_result_type::pass, typename type_trait::pass,typename type_trait::pass,typename type_trait::pass>::type type; }; -#endif /*DOXYGEN_SHOULD_SKIP_THIS*/ - - template - struct deduce_result_type { - typedef typename deduce_result_type_internal::value, - T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6,T_arg7>::type type; - }; - typedef typename adaptor_type::result_type result_type; - - /** Invokes the wrapped functor passing on the bound argument only. - * @return The return value of the functor invocation. - */ - result_type - operator()(); - - /** Invokes the wrapped functor passing on the arguments. - * The last 3 argument(s) are fixed. - * @param _A_arg1 Argument to be passed on to the functor. - * @return The return value of the functor invocation. - */ - template - typename deduce_result_type::type - operator()(T_arg1 _A_arg1) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass, typename type_trait::pass,typename type_trait::pass,typename type_trait::pass> - (_A_arg1, bound1_,bound2_,bound3_); - } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - typename deduce_result_type::type - sun_forte_workaround(T_arg1 _A_arg1) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass, typename type_trait::pass,typename type_trait::pass,typename type_trait::pass> - (_A_arg1, bound1_,bound2_,bound3_); - } - #endif - - /** Invokes the wrapped functor passing on the arguments. - * The last 3 argument(s) are fixed. - * @param _A_arg1 Argument to be passed on to the functor. - * @param _A_arg2 Argument to be passed on to the functor. - * @return The return value of the functor invocation. - */ - template - typename deduce_result_type::type - operator()(T_arg1 _A_arg1,T_arg2 _A_arg2) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass,typename type_trait::pass, typename type_trait::pass,typename type_trait::pass,typename type_trait::pass> - (_A_arg1,_A_arg2, bound1_,bound2_,bound3_); - } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - typename deduce_result_type::type - sun_forte_workaround(T_arg1 _A_arg1,T_arg2 _A_arg2) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass,typename type_trait::pass, typename type_trait::pass,typename type_trait::pass,typename type_trait::pass> - (_A_arg1,_A_arg2, bound1_,bound2_,bound3_); - } - #endif - - /** Invokes the wrapped functor passing on the arguments. - * The last 3 argument(s) are fixed. - * @param _A_arg1 Argument to be passed on to the functor. - * @param _A_arg2 Argument to be passed on to the functor. - * @param _A_arg3 Argument to be passed on to the functor. - * @return The return value of the functor invocation. - */ - template - typename deduce_result_type::type - operator()(T_arg1 _A_arg1,T_arg2 _A_arg2,T_arg3 _A_arg3) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass,typename type_trait::pass,typename type_trait::pass, typename type_trait::pass,typename type_trait::pass,typename type_trait::pass> - (_A_arg1,_A_arg2,_A_arg3, bound1_,bound2_,bound3_); - } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - typename deduce_result_type::type - sun_forte_workaround(T_arg1 _A_arg1,T_arg2 _A_arg2,T_arg3 _A_arg3) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass,typename type_trait::pass,typename type_trait::pass, typename type_trait::pass,typename type_trait::pass,typename type_trait::pass> - (_A_arg1,_A_arg2,_A_arg3, bound1_,bound2_,bound3_); - } - #endif - - /** Invokes the wrapped functor passing on the arguments. - * The last 3 argument(s) are fixed. - * @param _A_arg1 Argument to be passed on to the functor. - * @param _A_arg2 Argument to be passed on to the functor. - * @param _A_arg3 Argument to be passed on to the functor. - * @param _A_arg4 Argument to be passed on to the functor. - * @return The return value of the functor invocation. - */ - template - typename deduce_result_type::type - operator()(T_arg1 _A_arg1,T_arg2 _A_arg2,T_arg3 _A_arg3,T_arg4 _A_arg4) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass, typename type_trait::pass,typename type_trait::pass,typename type_trait::pass> - (_A_arg1,_A_arg2,_A_arg3,_A_arg4, bound1_,bound2_,bound3_); - } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - typename deduce_result_type::type - sun_forte_workaround(T_arg1 _A_arg1,T_arg2 _A_arg2,T_arg3 _A_arg3,T_arg4 _A_arg4) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass, typename type_trait::pass,typename type_trait::pass,typename type_trait::pass> - (_A_arg1,_A_arg2,_A_arg3,_A_arg4, bound1_,bound2_,bound3_); - } - #endif - - /** Constructs a bind_functor object that binds an argument to the passed functor. - * @param _A_functor Functor to invoke from operator()(). - * @param _A_bound Argument to bind to the functor. - */ - bind_functor(typename type_trait::take _A_func, typename type_trait::take _A_bound1,typename type_trait::take _A_bound2,typename type_trait::take _A_bound3) - : adapts(_A_func), bound1_(_A_bound1),bound2_(_A_bound2),bound3_(_A_bound3) - {} - - /// The argument bound to the functor. - T_type1 bound1_; - T_type2 bound2_; - T_type3 bound3_; -}; - -template -typename bind_functor<-1, T_functor, T_type1,T_type2,T_type3>::result_type -bind_functor<-1, T_functor, T_type1,T_type2,T_type3>::operator()() - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass,typename type_trait::pass,typename type_trait::pass> (bound1_,bound2_,bound3_); } - -/** Performs a functor on each of the targets of a functor. - * The function overload for sigc::bind_functor performs a functor on the - * functor and on the object instances stored in the sigc::bind_functor object. - * - * @ingroup bind - */ -template -void visit_each(const T_action& _A_action, - const bind_functor<-1, T_functor, T_type1,T_type2,T_type3>& _A_target) -{ - visit_each(_A_action, _A_target.functor_); - visit_each(_A_action, _A_target.bound1_); - visit_each(_A_action, _A_target.bound2_); - visit_each(_A_action, _A_target.bound3_); -} - -/** Adaptor that binds 4 argument(s) to the wrapped functor. - * This template specialization fixes the last 4 argument(s) of the wrapped functor. - * - * @ingroup bind - */ -template -struct bind_functor<-1, T_functor, T_type1,T_type2,T_type3,T_type4> : public adapts -{ - typedef typename adapts::adaptor_type adaptor_type; - -#ifndef DOXYGEN_SHOULD_SKIP_THIS - template - struct deduce_result_type_internal - { typedef typename adaptor_type::template deduce_result_type::pass,typename type_trait::pass,typename type_trait::pass, typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass>::type type; }; - template - struct deduce_result_type_internal<5, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6,T_arg7> - { typedef typename adaptor_type::template deduce_result_type::pass,typename type_trait::pass, typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass>::type type; }; - template - struct deduce_result_type_internal<6, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6,T_arg7> - { typedef typename adaptor_type::template deduce_result_type::pass, typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass>::type type; }; -#endif /*DOXYGEN_SHOULD_SKIP_THIS*/ - - template - struct deduce_result_type { - typedef typename deduce_result_type_internal::value, - T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6,T_arg7>::type type; - }; - typedef typename adaptor_type::result_type result_type; - - /** Invokes the wrapped functor passing on the bound argument only. - * @return The return value of the functor invocation. - */ - result_type - operator()(); - - /** Invokes the wrapped functor passing on the arguments. - * The last 4 argument(s) are fixed. - * @param _A_arg1 Argument to be passed on to the functor. - * @return The return value of the functor invocation. - */ - template - typename deduce_result_type::type - operator()(T_arg1 _A_arg1) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass, typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass> - (_A_arg1, bound1_,bound2_,bound3_,bound4_); - } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - typename deduce_result_type::type - sun_forte_workaround(T_arg1 _A_arg1) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass, typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass> - (_A_arg1, bound1_,bound2_,bound3_,bound4_); - } - #endif - - /** Invokes the wrapped functor passing on the arguments. - * The last 4 argument(s) are fixed. - * @param _A_arg1 Argument to be passed on to the functor. - * @param _A_arg2 Argument to be passed on to the functor. - * @return The return value of the functor invocation. - */ - template - typename deduce_result_type::type - operator()(T_arg1 _A_arg1,T_arg2 _A_arg2) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass,typename type_trait::pass, typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass> - (_A_arg1,_A_arg2, bound1_,bound2_,bound3_,bound4_); - } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - typename deduce_result_type::type - sun_forte_workaround(T_arg1 _A_arg1,T_arg2 _A_arg2) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass,typename type_trait::pass, typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass> - (_A_arg1,_A_arg2, bound1_,bound2_,bound3_,bound4_); - } - #endif - - /** Invokes the wrapped functor passing on the arguments. - * The last 4 argument(s) are fixed. - * @param _A_arg1 Argument to be passed on to the functor. - * @param _A_arg2 Argument to be passed on to the functor. - * @param _A_arg3 Argument to be passed on to the functor. - * @return The return value of the functor invocation. - */ - template - typename deduce_result_type::type - operator()(T_arg1 _A_arg1,T_arg2 _A_arg2,T_arg3 _A_arg3) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass,typename type_trait::pass,typename type_trait::pass, typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass> - (_A_arg1,_A_arg2,_A_arg3, bound1_,bound2_,bound3_,bound4_); - } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - typename deduce_result_type::type - sun_forte_workaround(T_arg1 _A_arg1,T_arg2 _A_arg2,T_arg3 _A_arg3) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass,typename type_trait::pass,typename type_trait::pass, typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass> - (_A_arg1,_A_arg2,_A_arg3, bound1_,bound2_,bound3_,bound4_); - } - #endif - - /** Constructs a bind_functor object that binds an argument to the passed functor. - * @param _A_functor Functor to invoke from operator()(). - * @param _A_bound Argument to bind to the functor. - */ - bind_functor(typename type_trait::take _A_func, typename type_trait::take _A_bound1,typename type_trait::take _A_bound2,typename type_trait::take _A_bound3,typename type_trait::take _A_bound4) - : adapts(_A_func), bound1_(_A_bound1),bound2_(_A_bound2),bound3_(_A_bound3),bound4_(_A_bound4) - {} - - /// The argument bound to the functor. - T_type1 bound1_; - T_type2 bound2_; - T_type3 bound3_; - T_type4 bound4_; -}; - -template -typename bind_functor<-1, T_functor, T_type1,T_type2,T_type3,T_type4>::result_type -bind_functor<-1, T_functor, T_type1,T_type2,T_type3,T_type4>::operator()() - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass> (bound1_,bound2_,bound3_,bound4_); } - -/** Performs a functor on each of the targets of a functor. - * The function overload for sigc::bind_functor performs a functor on the - * functor and on the object instances stored in the sigc::bind_functor object. - * - * @ingroup bind - */ -template -void visit_each(const T_action& _A_action, - const bind_functor<-1, T_functor, T_type1,T_type2,T_type3,T_type4>& _A_target) -{ - visit_each(_A_action, _A_target.functor_); - visit_each(_A_action, _A_target.bound1_); - visit_each(_A_action, _A_target.bound2_); - visit_each(_A_action, _A_target.bound3_); - visit_each(_A_action, _A_target.bound4_); -} - -/** Adaptor that binds 5 argument(s) to the wrapped functor. - * This template specialization fixes the last 5 argument(s) of the wrapped functor. - * - * @ingroup bind - */ -template -struct bind_functor<-1, T_functor, T_type1,T_type2,T_type3,T_type4,T_type5> : public adapts -{ - typedef typename adapts::adaptor_type adaptor_type; - -#ifndef DOXYGEN_SHOULD_SKIP_THIS - template - struct deduce_result_type_internal - { typedef typename adaptor_type::template deduce_result_type::pass,typename type_trait::pass, typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass>::type type; }; - template - struct deduce_result_type_internal<6, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6,T_arg7> - { typedef typename adaptor_type::template deduce_result_type::pass, typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass>::type type; }; -#endif /*DOXYGEN_SHOULD_SKIP_THIS*/ - - template - struct deduce_result_type { - typedef typename deduce_result_type_internal::value, - T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6,T_arg7>::type type; - }; - typedef typename adaptor_type::result_type result_type; - - /** Invokes the wrapped functor passing on the bound argument only. - * @return The return value of the functor invocation. - */ - result_type - operator()(); - - /** Invokes the wrapped functor passing on the arguments. - * The last 5 argument(s) are fixed. - * @param _A_arg1 Argument to be passed on to the functor. - * @return The return value of the functor invocation. - */ - template - typename deduce_result_type::type - operator()(T_arg1 _A_arg1) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass, typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass> - (_A_arg1, bound1_,bound2_,bound3_,bound4_,bound5_); - } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - typename deduce_result_type::type - sun_forte_workaround(T_arg1 _A_arg1) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass, typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass> - (_A_arg1, bound1_,bound2_,bound3_,bound4_,bound5_); - } - #endif - - /** Invokes the wrapped functor passing on the arguments. - * The last 5 argument(s) are fixed. - * @param _A_arg1 Argument to be passed on to the functor. - * @param _A_arg2 Argument to be passed on to the functor. - * @return The return value of the functor invocation. - */ - template - typename deduce_result_type::type - operator()(T_arg1 _A_arg1,T_arg2 _A_arg2) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass,typename type_trait::pass, typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass> - (_A_arg1,_A_arg2, bound1_,bound2_,bound3_,bound4_,bound5_); - } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - typename deduce_result_type::type - sun_forte_workaround(T_arg1 _A_arg1,T_arg2 _A_arg2) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass,typename type_trait::pass, typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass> - (_A_arg1,_A_arg2, bound1_,bound2_,bound3_,bound4_,bound5_); - } - #endif - - /** Constructs a bind_functor object that binds an argument to the passed functor. - * @param _A_functor Functor to invoke from operator()(). - * @param _A_bound Argument to bind to the functor. - */ - bind_functor(typename type_trait::take _A_func, typename type_trait::take _A_bound1,typename type_trait::take _A_bound2,typename type_trait::take _A_bound3,typename type_trait::take _A_bound4,typename type_trait::take _A_bound5) - : adapts(_A_func), bound1_(_A_bound1),bound2_(_A_bound2),bound3_(_A_bound3),bound4_(_A_bound4),bound5_(_A_bound5) - {} - - /// The argument bound to the functor. - T_type1 bound1_; - T_type2 bound2_; - T_type3 bound3_; - T_type4 bound4_; - T_type5 bound5_; -}; - -template -typename bind_functor<-1, T_functor, T_type1,T_type2,T_type3,T_type4,T_type5>::result_type -bind_functor<-1, T_functor, T_type1,T_type2,T_type3,T_type4,T_type5>::operator()() - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass> (bound1_,bound2_,bound3_,bound4_,bound5_); } - -/** Performs a functor on each of the targets of a functor. - * The function overload for sigc::bind_functor performs a functor on the - * functor and on the object instances stored in the sigc::bind_functor object. - * - * @ingroup bind - */ -template -void visit_each(const T_action& _A_action, - const bind_functor<-1, T_functor, T_type1,T_type2,T_type3,T_type4,T_type5>& _A_target) -{ - visit_each(_A_action, _A_target.functor_); - visit_each(_A_action, _A_target.bound1_); - visit_each(_A_action, _A_target.bound2_); - visit_each(_A_action, _A_target.bound3_); - visit_each(_A_action, _A_target.bound4_); - visit_each(_A_action, _A_target.bound5_); -} - -/** Adaptor that binds 6 argument(s) to the wrapped functor. - * This template specialization fixes the last 6 argument(s) of the wrapped functor. - * - * @ingroup bind - */ -template -struct bind_functor<-1, T_functor, T_type1,T_type2,T_type3,T_type4,T_type5,T_type6> : public adapts -{ - typedef typename adapts::adaptor_type adaptor_type; - -#ifndef DOXYGEN_SHOULD_SKIP_THIS - template - struct deduce_result_type_internal - { typedef typename adaptor_type::template deduce_result_type::pass, typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass>::type type; }; -#endif /*DOXYGEN_SHOULD_SKIP_THIS*/ - - template - struct deduce_result_type { - typedef typename deduce_result_type_internal::value, - T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6,T_arg7>::type type; - }; - typedef typename adaptor_type::result_type result_type; - - /** Invokes the wrapped functor passing on the bound argument only. - * @return The return value of the functor invocation. - */ - result_type - operator()(); - - /** Invokes the wrapped functor passing on the arguments. - * The last 6 argument(s) are fixed. - * @param _A_arg1 Argument to be passed on to the functor. - * @return The return value of the functor invocation. - */ - template - typename deduce_result_type::type - operator()(T_arg1 _A_arg1) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass, typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass> - (_A_arg1, bound1_,bound2_,bound3_,bound4_,bound5_,bound6_); - } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - typename deduce_result_type::type - sun_forte_workaround(T_arg1 _A_arg1) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass, typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass> - (_A_arg1, bound1_,bound2_,bound3_,bound4_,bound5_,bound6_); - } - #endif - - /** Constructs a bind_functor object that binds an argument to the passed functor. - * @param _A_functor Functor to invoke from operator()(). - * @param _A_bound Argument to bind to the functor. - */ - bind_functor(typename type_trait::take _A_func, typename type_trait::take _A_bound1,typename type_trait::take _A_bound2,typename type_trait::take _A_bound3,typename type_trait::take _A_bound4,typename type_trait::take _A_bound5,typename type_trait::take _A_bound6) - : adapts(_A_func), bound1_(_A_bound1),bound2_(_A_bound2),bound3_(_A_bound3),bound4_(_A_bound4),bound5_(_A_bound5),bound6_(_A_bound6) - {} - - /// The argument bound to the functor. - T_type1 bound1_; - T_type2 bound2_; - T_type3 bound3_; - T_type4 bound4_; - T_type5 bound5_; - T_type6 bound6_; -}; - -template -typename bind_functor<-1, T_functor, T_type1,T_type2,T_type3,T_type4,T_type5,T_type6>::result_type -bind_functor<-1, T_functor, T_type1,T_type2,T_type3,T_type4,T_type5,T_type6>::operator()() - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass> (bound1_,bound2_,bound3_,bound4_,bound5_,bound6_); } - -/** Performs a functor on each of the targets of a functor. - * The function overload for sigc::bind_functor performs a functor on the - * functor and on the object instances stored in the sigc::bind_functor object. - * - * @ingroup bind - */ -template -void visit_each(const T_action& _A_action, - const bind_functor<-1, T_functor, T_type1,T_type2,T_type3,T_type4,T_type5,T_type6>& _A_target) -{ - visit_each(_A_action, _A_target.functor_); - visit_each(_A_action, _A_target.bound1_); - visit_each(_A_action, _A_target.bound2_); - visit_each(_A_action, _A_target.bound3_); - visit_each(_A_action, _A_target.bound4_); - visit_each(_A_action, _A_target.bound5_); - visit_each(_A_action, _A_target.bound6_); -} - -/** Adaptor that binds 7 argument(s) to the wrapped functor. - * This template specialization fixes the last 7 argument(s) of the wrapped functor. - * - * @ingroup bind - */ -template -struct bind_functor<-1, T_functor, T_type1,T_type2,T_type3,T_type4,T_type5,T_type6,T_type7> : public adapts -{ - typedef typename adapts::adaptor_type adaptor_type; - -#ifndef DOXYGEN_SHOULD_SKIP_THIS - template - struct deduce_result_type_internal - { typedef typename adaptor_type::template deduce_result_type::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass>::type type; }; -#endif /*DOXYGEN_SHOULD_SKIP_THIS*/ - - template - struct deduce_result_type { - typedef typename deduce_result_type_internal::value, - T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6,T_arg7>::type type; - }; - typedef typename adaptor_type::result_type result_type; - - /** Invokes the wrapped functor passing on the bound argument only. - * @return The return value of the functor invocation. - */ - result_type - operator()(); - - /** Constructs a bind_functor object that binds an argument to the passed functor. - * @param _A_functor Functor to invoke from operator()(). - * @param _A_bound Argument to bind to the functor. - */ - bind_functor(typename type_trait::take _A_func, typename type_trait::take _A_bound1,typename type_trait::take _A_bound2,typename type_trait::take _A_bound3,typename type_trait::take _A_bound4,typename type_trait::take _A_bound5,typename type_trait::take _A_bound6,typename type_trait::take _A_bound7) - : adapts(_A_func), bound1_(_A_bound1),bound2_(_A_bound2),bound3_(_A_bound3),bound4_(_A_bound4),bound5_(_A_bound5),bound6_(_A_bound6),bound7_(_A_bound7) - {} - - /// The argument bound to the functor. - T_type1 bound1_; - T_type2 bound2_; - T_type3 bound3_; - T_type4 bound4_; - T_type5 bound5_; - T_type6 bound6_; - T_type7 bound7_; -}; - -template -typename bind_functor<-1, T_functor, T_type1,T_type2,T_type3,T_type4,T_type5,T_type6,T_type7>::result_type -bind_functor<-1, T_functor, T_type1,T_type2,T_type3,T_type4,T_type5,T_type6,T_type7>::operator()() - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass> (bound1_,bound2_,bound3_,bound4_,bound5_,bound6_,bound7_); } - -/** Performs a functor on each of the targets of a functor. - * The function overload for sigc::bind_functor performs a functor on the - * functor and on the object instances stored in the sigc::bind_functor object. - * - * @ingroup bind - */ -template -void visit_each(const T_action& _A_action, - const bind_functor<-1, T_functor, T_type1,T_type2,T_type3,T_type4,T_type5,T_type6,T_type7>& _A_target) -{ - visit_each(_A_action, _A_target.functor_); - visit_each(_A_action, _A_target.bound1_); - visit_each(_A_action, _A_target.bound2_); - visit_each(_A_action, _A_target.bound3_); - visit_each(_A_action, _A_target.bound4_); - visit_each(_A_action, _A_target.bound5_); - visit_each(_A_action, _A_target.bound6_); - visit_each(_A_action, _A_target.bound7_); -} - - -/** Creates an adaptor of type sigc::bind_functor which binds the passed argument to the passed functor. - * The optional template argument @e I_location specifies the zero-based - * position of the argument to be fixed (@p -1 stands for the last argument). - * - * @param _A_func Functor that should be wrapped. - * @param _A_b1 Argument to bind to @e _A_func. - * @return Adaptor that executes @e _A_func with the bound argument on invokation. - * - * @ingroup bind - */ -template -inline bind_functor::type> -bind(const T_functor& _A_func, T_bound1 _A_b1) -{ - return bind_functor::type> - (_A_func, _A_b1); -} - -/** Creates an adaptor of type sigc::bind_functor which fixes the last 1 argument(s) of the passed functor. - * This function overload fixes the last 1 argument(s) of @e _A_func. - * - * @param _A_func Functor that should be wrapped. - * @param _A_b1 Argument to bind to @e _A_func. - * @return Adaptor that executes _A_func with the bound argument on invokation. - * - * @ingroup bind - */ -template -inline bind_functor<-1, T_functor, - typename unwrap_reference::type> -bind(const T_functor& _A_func, T_type1 _A_b1) -{ return bind_functor<-1, T_functor, - typename unwrap_reference::type> - (_A_func, _A_b1); -} - -/** Creates an adaptor of type sigc::bind_functor which fixes the last 2 argument(s) of the passed functor. - * This function overload fixes the last 2 argument(s) of @e _A_func. - * - * @param _A_func Functor that should be wrapped. - * @param _A_b1 Argument to bind to @e _A_func. - * @param _A_b2 Argument to bind to @e _A_func. - * @return Adaptor that executes _A_func with the bound argument on invokation. - * - * @ingroup bind - */ -template -inline bind_functor<-1, T_functor, - typename unwrap_reference::type, - typename unwrap_reference::type> -bind(const T_functor& _A_func, T_type1 _A_b1,T_type2 _A_b2) -{ return bind_functor<-1, T_functor, - typename unwrap_reference::type, - typename unwrap_reference::type> - (_A_func, _A_b1,_A_b2); -} - -/** Creates an adaptor of type sigc::bind_functor which fixes the last 3 argument(s) of the passed functor. - * This function overload fixes the last 3 argument(s) of @e _A_func. - * - * @param _A_func Functor that should be wrapped. - * @param _A_b1 Argument to bind to @e _A_func. - * @param _A_b2 Argument to bind to @e _A_func. - * @param _A_b3 Argument to bind to @e _A_func. - * @return Adaptor that executes _A_func with the bound argument on invokation. - * - * @ingroup bind - */ -template -inline bind_functor<-1, T_functor, - typename unwrap_reference::type, - typename unwrap_reference::type, - typename unwrap_reference::type> -bind(const T_functor& _A_func, T_type1 _A_b1,T_type2 _A_b2,T_type3 _A_b3) -{ return bind_functor<-1, T_functor, - typename unwrap_reference::type, - typename unwrap_reference::type, - typename unwrap_reference::type> - (_A_func, _A_b1,_A_b2,_A_b3); -} - -/** Creates an adaptor of type sigc::bind_functor which fixes the last 4 argument(s) of the passed functor. - * This function overload fixes the last 4 argument(s) of @e _A_func. - * - * @param _A_func Functor that should be wrapped. - * @param _A_b1 Argument to bind to @e _A_func. - * @param _A_b2 Argument to bind to @e _A_func. - * @param _A_b3 Argument to bind to @e _A_func. - * @param _A_b4 Argument to bind to @e _A_func. - * @return Adaptor that executes _A_func with the bound argument on invokation. - * - * @ingroup bind - */ -template -inline bind_functor<-1, T_functor, - typename unwrap_reference::type, - typename unwrap_reference::type, - typename unwrap_reference::type, - typename unwrap_reference::type> -bind(const T_functor& _A_func, T_type1 _A_b1,T_type2 _A_b2,T_type3 _A_b3,T_type4 _A_b4) -{ return bind_functor<-1, T_functor, - typename unwrap_reference::type, - typename unwrap_reference::type, - typename unwrap_reference::type, - typename unwrap_reference::type> - (_A_func, _A_b1,_A_b2,_A_b3,_A_b4); -} - -/** Creates an adaptor of type sigc::bind_functor which fixes the last 5 argument(s) of the passed functor. - * This function overload fixes the last 5 argument(s) of @e _A_func. - * - * @param _A_func Functor that should be wrapped. - * @param _A_b1 Argument to bind to @e _A_func. - * @param _A_b2 Argument to bind to @e _A_func. - * @param _A_b3 Argument to bind to @e _A_func. - * @param _A_b4 Argument to bind to @e _A_func. - * @param _A_b5 Argument to bind to @e _A_func. - * @return Adaptor that executes _A_func with the bound argument on invokation. - * - * @ingroup bind - */ -template -inline bind_functor<-1, T_functor, - typename unwrap_reference::type, - typename unwrap_reference::type, - typename unwrap_reference::type, - typename unwrap_reference::type, - typename unwrap_reference::type> -bind(const T_functor& _A_func, T_type1 _A_b1,T_type2 _A_b2,T_type3 _A_b3,T_type4 _A_b4,T_type5 _A_b5) -{ return bind_functor<-1, T_functor, - typename unwrap_reference::type, - typename unwrap_reference::type, - typename unwrap_reference::type, - typename unwrap_reference::type, - typename unwrap_reference::type> - (_A_func, _A_b1,_A_b2,_A_b3,_A_b4,_A_b5); -} - -/** Creates an adaptor of type sigc::bind_functor which fixes the last 6 argument(s) of the passed functor. - * This function overload fixes the last 6 argument(s) of @e _A_func. - * - * @param _A_func Functor that should be wrapped. - * @param _A_b1 Argument to bind to @e _A_func. - * @param _A_b2 Argument to bind to @e _A_func. - * @param _A_b3 Argument to bind to @e _A_func. - * @param _A_b4 Argument to bind to @e _A_func. - * @param _A_b5 Argument to bind to @e _A_func. - * @param _A_b6 Argument to bind to @e _A_func. - * @return Adaptor that executes _A_func with the bound argument on invokation. - * - * @ingroup bind - */ -template -inline bind_functor<-1, T_functor, - typename unwrap_reference::type, - typename unwrap_reference::type, - typename unwrap_reference::type, - typename unwrap_reference::type, - typename unwrap_reference::type, - typename unwrap_reference::type> -bind(const T_functor& _A_func, T_type1 _A_b1,T_type2 _A_b2,T_type3 _A_b3,T_type4 _A_b4,T_type5 _A_b5,T_type6 _A_b6) -{ return bind_functor<-1, T_functor, - typename unwrap_reference::type, - typename unwrap_reference::type, - typename unwrap_reference::type, - typename unwrap_reference::type, - typename unwrap_reference::type, - typename unwrap_reference::type> - (_A_func, _A_b1,_A_b2,_A_b3,_A_b4,_A_b5,_A_b6); -} - -/** Creates an adaptor of type sigc::bind_functor which fixes the last 7 argument(s) of the passed functor. - * This function overload fixes the last 7 argument(s) of @e _A_func. - * - * @param _A_func Functor that should be wrapped. - * @param _A_b1 Argument to bind to @e _A_func. - * @param _A_b2 Argument to bind to @e _A_func. - * @param _A_b3 Argument to bind to @e _A_func. - * @param _A_b4 Argument to bind to @e _A_func. - * @param _A_b5 Argument to bind to @e _A_func. - * @param _A_b6 Argument to bind to @e _A_func. - * @param _A_b7 Argument to bind to @e _A_func. - * @return Adaptor that executes _A_func with the bound argument on invokation. - * - * @ingroup bind - */ -template -inline bind_functor<-1, T_functor, - typename unwrap_reference::type, - typename unwrap_reference::type, - typename unwrap_reference::type, - typename unwrap_reference::type, - typename unwrap_reference::type, - typename unwrap_reference::type, - typename unwrap_reference::type> -bind(const T_functor& _A_func, T_type1 _A_b1,T_type2 _A_b2,T_type3 _A_b3,T_type4 _A_b4,T_type5 _A_b5,T_type6 _A_b6,T_type7 _A_b7) -{ return bind_functor<-1, T_functor, - typename unwrap_reference::type, - typename unwrap_reference::type, - typename unwrap_reference::type, - typename unwrap_reference::type, - typename unwrap_reference::type, - typename unwrap_reference::type, - typename unwrap_reference::type> - (_A_func, _A_b1,_A_b2,_A_b3,_A_b4,_A_b5,_A_b6,_A_b7); -} - - -} /* namespace sigc */ -#endif /* _SIGC_ADAPTORS_MACROS_BINDHM4_ */ diff --git a/libs/sigc++2/sigc++/adaptors/bind_return.h b/libs/sigc++2/sigc++/adaptors/bind_return.h deleted file mode 100644 index 40e3524090..0000000000 --- a/libs/sigc++2/sigc++/adaptors/bind_return.h +++ /dev/null @@ -1,204 +0,0 @@ -// -*- c++ -*- -/* Do not edit! -- generated file */ -#ifndef _SIGC_ADAPTORS_MACROS_BIND_RETURNHM4_ -#define _SIGC_ADAPTORS_MACROS_BIND_RETURNHM4_ -#include - -namespace sigc { - -/** Adaptor that fixes the return value of the wrapped functor. - * Use the convenience function sigc::bind_return() to create an instance of sigc::bind_return_functor. - * - * The following template arguments are used: - * - @e T_return Type of the fixed return value. - * - @e T_functor Type of the functor to wrap. - * - * @ingroup bind - */ -template -struct bind_return_functor : public adapts -{ - template - struct deduce_result_type - { typedef T_return type; }; - typedef T_return result_type; - - /** Invokes the wrapped functor dropping its return value. - * @return The fixed return value. - */ - T_return operator()(); - - /** Invokes the wrapped functor passing on the arguments., - * @param _A_arg%1 Argument to be passed on to the functor.) - * @return The fixed return value. - */ - template - inline T_return operator()(T_arg1 _A_a1) - { this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass> - (_A_a1); return ret_value_; - } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - inline T_return sun_forte_workaround(T_arg1 _A_a1) - { this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass> - (_A_a1); return ret_value_; - } - #endif - - /** Invokes the wrapped functor passing on the arguments., - * @param _A_arg%1 Argument to be passed on to the functor.) - * @return The fixed return value. - */ - template - inline T_return operator()(T_arg1 _A_a1,T_arg2 _A_a2) - { this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass,typename type_trait::pass> - (_A_a1,_A_a2); return ret_value_; - } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - inline T_return sun_forte_workaround(T_arg1 _A_a1,T_arg2 _A_a2) - { this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass,typename type_trait::pass> - (_A_a1,_A_a2); return ret_value_; - } - #endif - - /** Invokes the wrapped functor passing on the arguments., - * @param _A_arg%1 Argument to be passed on to the functor.) - * @return The fixed return value. - */ - template - inline T_return operator()(T_arg1 _A_a1,T_arg2 _A_a2,T_arg3 _A_a3) - { this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass,typename type_trait::pass,typename type_trait::pass> - (_A_a1,_A_a2,_A_a3); return ret_value_; - } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - inline T_return sun_forte_workaround(T_arg1 _A_a1,T_arg2 _A_a2,T_arg3 _A_a3) - { this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass,typename type_trait::pass,typename type_trait::pass> - (_A_a1,_A_a2,_A_a3); return ret_value_; - } - #endif - - /** Invokes the wrapped functor passing on the arguments., - * @param _A_arg%1 Argument to be passed on to the functor.) - * @return The fixed return value. - */ - template - inline T_return operator()(T_arg1 _A_a1,T_arg2 _A_a2,T_arg3 _A_a3,T_arg4 _A_a4) - { this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass> - (_A_a1,_A_a2,_A_a3,_A_a4); return ret_value_; - } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - inline T_return sun_forte_workaround(T_arg1 _A_a1,T_arg2 _A_a2,T_arg3 _A_a3,T_arg4 _A_a4) - { this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass> - (_A_a1,_A_a2,_A_a3,_A_a4); return ret_value_; - } - #endif - - /** Invokes the wrapped functor passing on the arguments., - * @param _A_arg%1 Argument to be passed on to the functor.) - * @return The fixed return value. - */ - template - inline T_return operator()(T_arg1 _A_a1,T_arg2 _A_a2,T_arg3 _A_a3,T_arg4 _A_a4,T_arg5 _A_a5) - { this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass> - (_A_a1,_A_a2,_A_a3,_A_a4,_A_a5); return ret_value_; - } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - inline T_return sun_forte_workaround(T_arg1 _A_a1,T_arg2 _A_a2,T_arg3 _A_a3,T_arg4 _A_a4,T_arg5 _A_a5) - { this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass> - (_A_a1,_A_a2,_A_a3,_A_a4,_A_a5); return ret_value_; - } - #endif - - /** Invokes the wrapped functor passing on the arguments., - * @param _A_arg%1 Argument to be passed on to the functor.) - * @return The fixed return value. - */ - template - inline T_return operator()(T_arg1 _A_a1,T_arg2 _A_a2,T_arg3 _A_a3,T_arg4 _A_a4,T_arg5 _A_a5,T_arg6 _A_a6) - { this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass> - (_A_a1,_A_a2,_A_a3,_A_a4,_A_a5,_A_a6); return ret_value_; - } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - inline T_return sun_forte_workaround(T_arg1 _A_a1,T_arg2 _A_a2,T_arg3 _A_a3,T_arg4 _A_a4,T_arg5 _A_a5,T_arg6 _A_a6) - { this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass> - (_A_a1,_A_a2,_A_a3,_A_a4,_A_a5,_A_a6); return ret_value_; - } - #endif - - /** Invokes the wrapped functor passing on the arguments., - * @param _A_arg%1 Argument to be passed on to the functor.) - * @return The fixed return value. - */ - template - inline T_return operator()(T_arg1 _A_a1,T_arg2 _A_a2,T_arg3 _A_a3,T_arg4 _A_a4,T_arg5 _A_a5,T_arg6 _A_a6,T_arg7 _A_a7) - { this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass> - (_A_a1,_A_a2,_A_a3,_A_a4,_A_a5,_A_a6,_A_a7); return ret_value_; - } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - inline T_return sun_forte_workaround(T_arg1 _A_a1,T_arg2 _A_a2,T_arg3 _A_a3,T_arg4 _A_a4,T_arg5 _A_a5,T_arg6 _A_a6,T_arg7 _A_a7) - { this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass> - (_A_a1,_A_a2,_A_a3,_A_a4,_A_a5,_A_a6,_A_a7); return ret_value_; - } - #endif - - - /** Constructs a bind_return_functor object that fixes the return value to @p _A_ret_value. - * @param _A_functor Functor to invoke from operator()(). - * @param _A_ret_value Value to return from operator()(). - */ - bind_return_functor(typename type_trait::take _A_functor, typename type_trait::take _A_ret_value) - : adapts(_A_functor), ret_value_(_A_ret_value) - {} - - /// The fixed return value. - T_return ret_value_; // public, so that visit_each() can access it -}; - -template -T_return bind_return_functor::operator()() - { this->functor_(); return ret_value_; } - - -/** Performs a functor on each of the targets of a functor. - * The function overload for sigc::bind_return_functor performs a functor on the - * functor and on the object instance stored in the sigc::bind_return_functor object. - * - * @ingroup bind - */ -template -void visit_each(const T_action& _A_action, - const bind_return_functor& _A_target) -{ - visit_each(_A_action, _A_target.ret_value_); - visit_each(_A_action, _A_target.functor_); -} - - -/** Creates an adaptor of type sigc::bind_return_functor which fixes the return value of the passed functor to the passed argument. - * - * @param _A_functor Functor that should be wrapped. - * @param _A_ret_value Argument to fix the return value of @e _A_functor to. - * @return Adaptor that executes @e _A_functor on invokation and returns @e _A_ret_value. - * - * @ingroup bind - */ -template -inline bind_return_functor::type, T_functor> -bind_return(const T_functor& _A_functor, T_return _A_ret_value) -{ return bind_return_functor::type, T_functor>(_A_functor, _A_ret_value); } - -} /* namespace sigc */ -#endif /* _SIGC_ADAPTORS_MACROS_BIND_RETURNHM4_ */ diff --git a/libs/sigc++2/sigc++/adaptors/compose.h b/libs/sigc++2/sigc++/adaptors/compose.h deleted file mode 100644 index 0f098ff2df..0000000000 --- a/libs/sigc++2/sigc++/adaptors/compose.h +++ /dev/null @@ -1,294 +0,0 @@ -// -*- c++ -*- -/* Do not edit! -- generated file */ - -#ifndef _SIGC_ADAPTORS_MACROS_COMPOSEHM4_ -#define _SIGC_ADAPTORS_MACROS_COMPOSEHM4_ -#include - -namespace sigc { - -/** @defgroup compose compose() - * sigc::compose() combines two or three arbitrary functors. - * On invokation parameters are passed on to one or two getter functor(s). - * The return value(s) are then passed on to the setter function. - * - * @par Examples: - * @code - * float square_root(float a) { return sqrtf(a); } - * float sum(float a, float b) { return a+b; } - * std::cout << sigc::compose(&square_root, &sum)(9, 16); // calls square_root(sum(3,6)) - * std::cout << sigc::compose(&sum, &square_root, &square_root)(9); // calls sum(square_root(9), square_root(9)) - * @endcode - * - * The functor sigc::compose() returns can be passed into - * sigc::signal::connect() directly. - * - * @par Example: - * @code - * sigc::signal some_signal; - * some_signal.connect(sigc::compose(&square_root, &sum)); - * @endcode - * - * For a more powerful version of this functionality see the lambda - * library adaptor sigc::group() which can bind, hide and reorder - * arguments arbitrarily. Although sigc::group() is more flexible, - * sigc::bind() provides a means of binding parameters when then total - * number of parameters called is variable. - * - * @ingroup adaptors - */ - -/** Adaptor that combines two functors. - * Use the convenience function sigc::compose() to create an instance of sigc::compose1_functor. - * - * The following template arguments are used: - * - @e T_setter Type of the setter functor to wrap. - * - @e T_getter Type of the getter functor to wrap. - * - * @ingroup compose - */ -template -struct compose1_functor : public adapts -{ - typedef typename adapts::adaptor_type adaptor_type; - - template - struct deduce_result_type - { typedef typename adaptor_type::template deduce_result_type< - typename sigc::deduce_result_type::type - >::type type; }; - typedef typename adaptor_type::result_type result_type; - - result_type - operator()(); - - template - typename deduce_result_type::type - operator()(T_arg1 _A_a1) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::type> - (get_(_A_a1)); - } - - template - typename deduce_result_type::type - operator()(T_arg1 _A_a1,T_arg2 _A_a2) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::type> - (get_(_A_a1,_A_a2)); - } - - template - typename deduce_result_type::type - operator()(T_arg1 _A_a1,T_arg2 _A_a2,T_arg3 _A_a3) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::type> - (get_(_A_a1,_A_a2,_A_a3)); - } - - template - typename deduce_result_type::type - operator()(T_arg1 _A_a1,T_arg2 _A_a2,T_arg3 _A_a3,T_arg4 _A_a4) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::type> - (get_(_A_a1,_A_a2,_A_a3,_A_a4)); - } - - template - typename deduce_result_type::type - operator()(T_arg1 _A_a1,T_arg2 _A_a2,T_arg3 _A_a3,T_arg4 _A_a4,T_arg5 _A_a5) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::type> - (get_(_A_a1,_A_a2,_A_a3,_A_a4,_A_a5)); - } - - template - typename deduce_result_type::type - operator()(T_arg1 _A_a1,T_arg2 _A_a2,T_arg3 _A_a3,T_arg4 _A_a4,T_arg5 _A_a5,T_arg6 _A_a6) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::type> - (get_(_A_a1,_A_a2,_A_a3,_A_a4,_A_a5,_A_a6)); - } - - template - typename deduce_result_type::type - operator()(T_arg1 _A_a1,T_arg2 _A_a2,T_arg3 _A_a3,T_arg4 _A_a4,T_arg5 _A_a5,T_arg6 _A_a6,T_arg7 _A_a7) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::type> - (get_(_A_a1,_A_a2,_A_a3,_A_a4,_A_a5,_A_a6,_A_a7)); - } - - - /** Constructs a compose1_functor object that combines the passed functors. - * @param _A_setter Functor that receives the return values of the invokation of @e _A_getter1 and @e _A_getter2. - * @param _A_getter1 Functor to invoke from operator()(). - * @param _A_getter2 Functor to invoke from operator()(). - */ - compose1_functor(const T_setter& _A_setter, const T_getter& _A_getter) - : adapts(_A_setter), get_(_A_getter) - {} - - T_getter get_; // public, so that visit_each() can access it -}; - -template -typename compose1_functor::result_type -compose1_functor::operator()() - { return this->functor_(get_()); } - -/** Adaptor that combines three functors. - * Use the convenience function sigc::compose() to create an instance of sigc::compose2_functor. - * - * The following template arguments are used: - * - @e T_setter Type of the setter functor to wrap. - * - @e T_getter1 Type of the first getter functor to wrap. - * - @e T_getter2 Type of the second getter functor to wrap. - * - * @ingroup compose - */ -template -struct compose2_functor : public adapts -{ - typedef typename adapts::adaptor_type adaptor_type; - - template - struct deduce_result_type - { typedef typename adaptor_type::template deduce_result_type< - typename sigc::deduce_result_type::type, - typename sigc::deduce_result_type::type - >::type result_type; }; - typedef typename adaptor_type::result_type result_type; - - result_type - operator()(); - - template - typename deduce_result_type::type - operator()(T_arg1 _A_a1) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::type, - typename sigc::deduce_result_type::type> - (get1_(_A_a1), get2_(_A_a1)); - } - - template - typename deduce_result_type::type - operator()(T_arg1 _A_a1,T_arg2 _A_a2) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::type, - typename sigc::deduce_result_type::type> - (get1_(_A_a1,_A_a2), get2_(_A_a1,_A_a2)); - } - - template - typename deduce_result_type::type - operator()(T_arg1 _A_a1,T_arg2 _A_a2,T_arg3 _A_a3) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::type, - typename sigc::deduce_result_type::type> - (get1_(_A_a1,_A_a2,_A_a3), get2_(_A_a1,_A_a2,_A_a3)); - } - - template - typename deduce_result_type::type - operator()(T_arg1 _A_a1,T_arg2 _A_a2,T_arg3 _A_a3,T_arg4 _A_a4) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::type, - typename sigc::deduce_result_type::type> - (get1_(_A_a1,_A_a2,_A_a3,_A_a4), get2_(_A_a1,_A_a2,_A_a3,_A_a4)); - } - - template - typename deduce_result_type::type - operator()(T_arg1 _A_a1,T_arg2 _A_a2,T_arg3 _A_a3,T_arg4 _A_a4,T_arg5 _A_a5) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::type, - typename sigc::deduce_result_type::type> - (get1_(_A_a1,_A_a2,_A_a3,_A_a4,_A_a5), get2_(_A_a1,_A_a2,_A_a3,_A_a4,_A_a5)); - } - - template - typename deduce_result_type::type - operator()(T_arg1 _A_a1,T_arg2 _A_a2,T_arg3 _A_a3,T_arg4 _A_a4,T_arg5 _A_a5,T_arg6 _A_a6) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::type, - typename sigc::deduce_result_type::type> - (get1_(_A_a1,_A_a2,_A_a3,_A_a4,_A_a5,_A_a6), get2_(_A_a1,_A_a2,_A_a3,_A_a4,_A_a5,_A_a6)); - } - - template - typename deduce_result_type::type - operator()(T_arg1 _A_a1,T_arg2 _A_a2,T_arg3 _A_a3,T_arg4 _A_a4,T_arg5 _A_a5,T_arg6 _A_a6,T_arg7 _A_a7) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::type, - typename sigc::deduce_result_type::type> - (get1_(_A_a1,_A_a2,_A_a3,_A_a4,_A_a5,_A_a6,_A_a7), get2_(_A_a1,_A_a2,_A_a3,_A_a4,_A_a5,_A_a6,_A_a7)); - } - - - /** Constructs a compose2_functor object that combines the passed functors. - * @param _A_setter Functor that receives the return values of the invokation of @e _A_getter1 and @e _A_getter2. - * @param _A_getter1 Functor to invoke from operator()(). - * @param _A_getter2 Functor to invoke from operator()(). - */ - compose2_functor(const T_setter& _A_setter, - const T_getter1& _A_getter1, - const T_getter2& _A_getter2) - : adapts(_A_setter), get1_(_A_getter1), get2_(_A_getter2) - {} - - T_getter1 get1_; // public, so that visit_each() can access it - T_getter2 get2_; // public, so that visit_each() can access it -}; - -template -typename compose2_functor::result_type -compose2_functor::operator()() - { return this->functor_(get1_(), get2_()); } - - -/** Performs a functor on each of the targets of a functor. - * The function overload for sigc::compose1_functor performs a functor on the - * functors stored in the sigc::compose1_functor object. - * - * @ingroup compose - */ -template -void visit_each(const T_action& _A_action, - const compose1_functor& _A_target) -{ - visit_each(_A_action, _A_target.functor_); - visit_each(_A_action, _A_target.get_); -} - -/** Performs a functor on each of the targets of a functor. - * The function overload for sigc::compose2_functor performs a functor on the - * functors stored in the sigc::compose2_functor object. - * - * @ingroup compose - */ -template -void visit_each(const T_action& _A_action, - const compose2_functor& _A_target) -{ - visit_each(_A_action, _A_target.functor_); - visit_each(_A_action, _A_target.get1_); - visit_each(_A_action, _A_target.get2_); -} - - -/** Creates an adaptor of type sigc::compose1_functor which combines two functors. - * - * @param _A_setter Functor that receives the return value of the invokation of @e _A_getter. - * @param _A_getter Functor to invoke from operator()(). - * @return Adaptor that executes @e _A_setter with the value returned from invokation of @e _A_getter. - * - * @ingroup compose - */ -template -inline compose1_functor -compose(const T_setter& _A_setter, const T_getter& _A_getter) - { return compose1_functor(_A_setter, _A_getter); } - -/** Creates an adaptor of type sigc::compose2_functor which combines three functors. - * - * @param _A_setter Functor that receives the return values of the invokation of @e _A_getter1 and @e _A_getter2. - * @param _A_getter1 Functor to invoke from operator()(). - * @param _A_getter2 Functor to invoke from operator()(). - * @return Adaptor that executes @e _A_setter with the values return from invokation of @e _A_getter1 and @e _A_getter2. - * - * @ingroup compose - */ -template -inline compose2_functor -compose(const T_setter& _A_setter, const T_getter1& _A_getter1, const T_getter2& _A_getter2) - { return compose2_functor(_A_setter, _A_getter1, _A_getter2); } - -} /* namespace sigc */ -#endif /* _SIGC_ADAPTORS_MACROS_COMPOSEHM4_ */ diff --git a/libs/sigc++2/sigc++/adaptors/deduce_result_type.h b/libs/sigc++2/sigc++/adaptors/deduce_result_type.h deleted file mode 100644 index 397bb50ff7..0000000000 --- a/libs/sigc++2/sigc++/adaptors/deduce_result_type.h +++ /dev/null @@ -1,121 +0,0 @@ -// -*- c++ -*- -/* Do not edit! -- generated file */ -/* -*/ -#ifndef _SIGC_ADAPTORS_MACROS_DEDUCE_RESULT_TYPEHM4_ -#define _SIGC_ADAPTORS_MACROS_DEDUCE_RESULT_TYPEHM4_ -#include - - -namespace sigc { - -/** A hint to the compiler. - * Functors which have all methods based on templates - * should publicly inherit from this hint and define - * a nested template class @p deduce_result_type that - * can be used to deduce the methods' return types. - * - * adaptor_base inherits from the functor_base hint so - * derived types should also have a result_type defined. - * - * Adaptors don't inherit from this type directly. They use - * use sigc::adapts as a base type instead. sigc::adaptors - * wraps arbitrary functor types as well as function pointers - * and class methods. - * - * @ingroup adaptors - */ -struct adaptor_base : public functor_base {}; - - -/** Deduce the return type of a functor. - * typename deduce_result_type::type - * deduces a functor's result type if @p functor_type inherits from - * sigc::functor_base and defines @p result_type or if @p functor_type - * is actually a (member) function type. Multi-type functors are not - * supported. - * - * sigc++ adaptors use - * typename deduce_result_type::type - * to determine the return type of their templated operator() overloads. - * - * Adaptors in turn define a nested template class @p deduce_result_type - * that is used by template specializations of the global deduce_result_type - * template to correctly deduce the return types of the adaptor's suitable - * template operator() overload. - * - * @ingroup adaptors - */ -template ::value> -struct deduce_result_type - { typedef typename functor_trait::result_type type; }; - -/** Deduce the return type of a functor. - * This is the template specialization of the sigc::deduce_result_type template - * for 0 arguments. - */ -template -struct deduce_result_type - { typedef typename T_functor::template deduce_result_type<>::type type; }; - -/** Deduce the return type of a functor. - * This is the template specialization of the sigc::deduce_result_type template - * for 1 arguments. - */ -template -struct deduce_result_type - { typedef typename T_functor::template deduce_result_type::type type; }; - -/** Deduce the return type of a functor. - * This is the template specialization of the sigc::deduce_result_type template - * for 2 arguments. - */ -template -struct deduce_result_type - { typedef typename T_functor::template deduce_result_type::type type; }; - -/** Deduce the return type of a functor. - * This is the template specialization of the sigc::deduce_result_type template - * for 3 arguments. - */ -template -struct deduce_result_type - { typedef typename T_functor::template deduce_result_type::type type; }; - -/** Deduce the return type of a functor. - * This is the template specialization of the sigc::deduce_result_type template - * for 4 arguments. - */ -template -struct deduce_result_type - { typedef typename T_functor::template deduce_result_type::type type; }; - -/** Deduce the return type of a functor. - * This is the template specialization of the sigc::deduce_result_type template - * for 5 arguments. - */ -template -struct deduce_result_type - { typedef typename T_functor::template deduce_result_type::type type; }; - -/** Deduce the return type of a functor. - * This is the template specialization of the sigc::deduce_result_type template - * for 6 arguments. - */ -template -struct deduce_result_type - { typedef typename T_functor::template deduce_result_type::type type; }; - -/** Deduce the return type of a functor. - * This is the template specialization of the sigc::deduce_result_type template - * for 7 arguments. - */ -template -struct deduce_result_type - { typedef typename T_functor::template deduce_result_type::type type; }; - - -} /* namespace sigc */ -#endif /* _SIGC_ADAPTORS_MACROS_DEDUCE_RESULT_TYPEHM4_ */ diff --git a/libs/sigc++2/sigc++/adaptors/exception_catch.h b/libs/sigc++2/sigc++/adaptors/exception_catch.h deleted file mode 100644 index cd7c41e67d..0000000000 --- a/libs/sigc++2/sigc++/adaptors/exception_catch.h +++ /dev/null @@ -1,319 +0,0 @@ -// -*- c++ -*- -/* Do not edit! -- generated file */ -#ifndef _SIGC_ADAPTORS_MACROS_EXCEPTION_CATCHHM4_ -#define _SIGC_ADAPTORS_MACROS_EXCEPTION_CATCHHM4_ -#include - -namespace sigc { - -/* - functor adaptor: exception_catch(functor, catcher) - - usage: - - - Future directions: - The catcher should be told what type of return it needs to - return for multiple type functors, to do this the user - will need to derive from catcher_base. -*/ -/** @defgroup exception_catch exception_catch() - * sigc::exception_catch() catches an exception thrown from within - * the wrapped functor and directs it to a catcher functor. - * This catcher can then rethrow the exception and catch it with the proper type. - * - * Note that the catcher is expected to return the same type - * as the wrapped functor so that normal flow can continue. - * - * Catchers can be cascaded to catch multiple types because uncaught - * rethrown exceptions proceed to the next catcher adaptor. - * - * @par Examples: - * @code - * struct my_catch - * { - * int operator()() - * { - * try { throw; } - * catch (std::range_error e) // catch what types we know - * { std::cerr << "caught " << e.what() << std::endl; } - * return 1; - * } - * } - * int foo(); // throws std::range_error - * sigc::exception_catch(&foo, my_catch())(); - * @endcode - * - * The functor sigc::execption_catch() returns can be passed into - * sigc::signal::connect() directly. - * - * @par Example: - * @code - * sigc::signal some_signal; - * some_signal.connect(sigc::exception_catch(&foo, my_catch)); - * @endcode - * - * @ingroup adaptors - */ - -template ::result_type> -struct exception_catch_functor : public adapts -{ - typedef typename adapts::adaptor_type adaptor_type; - - template - struct deduce_result_type - { typedef typename adaptor_type::template deduce_result_type::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass>::type type; }; - typedef T_return result_type; - - result_type - operator()(); - - template - typename deduce_result_type::type - operator()(T_arg1 _A_a1) - { - try - { - return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass> - (_A_a1); - } - catch (...) - { return catcher_(); } - } - - template - typename deduce_result_type::type - operator()(T_arg1 _A_a1,T_arg2 _A_a2) - { - try - { - return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass,typename type_trait::pass> - (_A_a1,_A_a2); - } - catch (...) - { return catcher_(); } - } - - template - typename deduce_result_type::type - operator()(T_arg1 _A_a1,T_arg2 _A_a2,T_arg3 _A_a3) - { - try - { - return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass,typename type_trait::pass,typename type_trait::pass> - (_A_a1,_A_a2,_A_a3); - } - catch (...) - { return catcher_(); } - } - - template - typename deduce_result_type::type - operator()(T_arg1 _A_a1,T_arg2 _A_a2,T_arg3 _A_a3,T_arg4 _A_a4) - { - try - { - return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass> - (_A_a1,_A_a2,_A_a3,_A_a4); - } - catch (...) - { return catcher_(); } - } - - template - typename deduce_result_type::type - operator()(T_arg1 _A_a1,T_arg2 _A_a2,T_arg3 _A_a3,T_arg4 _A_a4,T_arg5 _A_a5) - { - try - { - return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass> - (_A_a1,_A_a2,_A_a3,_A_a4,_A_a5); - } - catch (...) - { return catcher_(); } - } - - template - typename deduce_result_type::type - operator()(T_arg1 _A_a1,T_arg2 _A_a2,T_arg3 _A_a3,T_arg4 _A_a4,T_arg5 _A_a5,T_arg6 _A_a6) - { - try - { - return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass> - (_A_a1,_A_a2,_A_a3,_A_a4,_A_a5,_A_a6); - } - catch (...) - { return catcher_(); } - } - - template - typename deduce_result_type::type - operator()(T_arg1 _A_a1,T_arg2 _A_a2,T_arg3 _A_a3,T_arg4 _A_a4,T_arg5 _A_a5,T_arg6 _A_a6,T_arg7 _A_a7) - { - try - { - return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass> - (_A_a1,_A_a2,_A_a3,_A_a4,_A_a5,_A_a6,_A_a7); - } - catch (...) - { return catcher_(); } - } - - exception_catch_functor(const T_functor& _A_func, - const T_catcher& _A_catcher) - : adapts(_A_func), catcher_(_A_catcher) - {} - - protected: - T_catcher catcher_; -}; - -template -typename exception_catch_functor::result_type -exception_catch_functor::operator()() - { - try - { return this->functor_(); } - catch (...) - { return catcher_(); } - } - -// void specialization -template -struct exception_catch_functor : public adapts -{ - typedef void result_type; - typedef typename adapts::adaptor_type adaptor_type; - - void - operator()(); - - template - typename deduce_result_type::type - operator()(T_arg1 _A_a1) - { - try - { - return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass> - (_A_a1); - } - catch (...) - { return catcher_(); } - } - - template - typename deduce_result_type::type - operator()(T_arg1 _A_a1,T_arg2 _A_a2) - { - try - { - return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass,typename type_trait::pass> - (_A_a1,_A_a2); - } - catch (...) - { return catcher_(); } - } - - template - typename deduce_result_type::type - operator()(T_arg1 _A_a1,T_arg2 _A_a2,T_arg3 _A_a3) - { - try - { - return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass,typename type_trait::pass,typename type_trait::pass> - (_A_a1,_A_a2,_A_a3); - } - catch (...) - { return catcher_(); } - } - - template - typename deduce_result_type::type - operator()(T_arg1 _A_a1,T_arg2 _A_a2,T_arg3 _A_a3,T_arg4 _A_a4) - { - try - { - return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass> - (_A_a1,_A_a2,_A_a3,_A_a4); - } - catch (...) - { return catcher_(); } - } - - template - typename deduce_result_type::type - operator()(T_arg1 _A_a1,T_arg2 _A_a2,T_arg3 _A_a3,T_arg4 _A_a4,T_arg5 _A_a5) - { - try - { - return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass> - (_A_a1,_A_a2,_A_a3,_A_a4,_A_a5); - } - catch (...) - { return catcher_(); } - } - - template - typename deduce_result_type::type - operator()(T_arg1 _A_a1,T_arg2 _A_a2,T_arg3 _A_a3,T_arg4 _A_a4,T_arg5 _A_a5,T_arg6 _A_a6) - { - try - { - return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass> - (_A_a1,_A_a2,_A_a3,_A_a4,_A_a5,_A_a6); - } - catch (...) - { return catcher_(); } - } - - template - typename deduce_result_type::type - operator()(T_arg1 _A_a1,T_arg2 _A_a2,T_arg3 _A_a3,T_arg4 _A_a4,T_arg5 _A_a5,T_arg6 _A_a6,T_arg7 _A_a7) - { - try - { - return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass> - (_A_a1,_A_a2,_A_a3,_A_a4,_A_a5,_A_a6,_A_a7); - } - catch (...) - { return catcher_(); } - } - - exception_catch_functor() {} - exception_catch_functor(const T_functor& _A_func, - const T_catcher& _A_catcher) - : adapts(_A_func), catcher_(_A_catcher) - {} - ~exception_catch_functor() {} - - protected: - T_catcher catcher_; -}; - -template -void exception_catch_functor::operator()() - { - try - { this->functor_(); } // I don't understand why void return doesn't work here (Martin) - catch (...) - { this->catcher_(); } - } - - -template -void visit_each(const T_action& _A_action, - const exception_catch_functor& _A_target) -{ - visit_each(_A_action, _A_target.functor_); - visit_each(_A_action, _A_target.catcher_); -} - - -template -inline exception_catch_functor -exception_catch(const T_functor& _A_func, const T_catcher& _A_catcher) - { return exception_catch_functor(_A_func, _A_catcher); } - -} /* namespace sigc */ -#endif /* _SIGC_ADAPTORS_MACROS_EXCEPTION_CATCHHM4_ */ diff --git a/libs/sigc++2/sigc++/adaptors/hide.h b/libs/sigc++2/sigc++/adaptors/hide.h deleted file mode 100644 index 1b820fea6b..0000000000 --- a/libs/sigc++2/sigc++/adaptors/hide.h +++ /dev/null @@ -1,1063 +0,0 @@ -// -*- c++ -*- -/* Do not edit! -- generated file */ -#ifndef _SIGC_ADAPTORS_MACROS_HIDEHM4_ -#define _SIGC_ADAPTORS_MACROS_HIDEHM4_ -#include - -namespace sigc { - -/** @defgroup hide hide(), hide_return() - * sigc::hide() alters an arbitrary functor in that it adds a parameter - * whose value is ignored on invocation of the returned functor. - * Thus you can discard one or more of the arguments of a signal. - * - * You may optionally specify the zero-based position of the parameter - * to ignore as a template argument. The default is to ignore the last - * parameter. - * (A value of @p -1 adds a parameter at the end so sigc::hide<-1>() gives the same result as sigc::hide().) - * - * The type of the parameter can optionally be specified if not deduced. - * - * @par Examples: - * @code - * void foo(int, int); - * // single argument hiding ... - * sigc::hide(&foo)(1,2,3); // adds a dummy parameter at the back and calls foo(1,2) - * sigc::hide<-1>(&foo)(1,2,3); // same as sigc::hide(&foo)(1,2,3) (calls foo(1,2)) - * sigc::hide<0>(&foo)(1,2,3); // adds a dummy parameter at the beginning and calls foo(2,3) - * sigc::hide<1>(&foo)(1,2,3); // adds a dummy parameter in the middle and calls foo(1,3) - * sigc::hide<2>(&foo)(1,2,3); // adds a dummy parameter at the back and calls foo(1,2) - * // multiple argument hiding ... - * sigc::hide(sigc::hide(&foo))(1,2,3,4); // adds two dummy parameters at the back and calls foo(1,2) - * @endcode - * - * The functor sigc::hide() returns can be passed into - * sigc::signal::connect() directly. - * - * @par Example: - * @code - * sigc::signal some_signal; - * void foo(); - * some_signal.connect(sigc::hide(&foo)); - * @endcode - * - * sigc::hide_return() alters an arbitrary functor by - * dropping its return value, thus converting it to a void functor. - * - * For a more powerful version of this functionality see the lambda - * library adaptor sigc::group() which can bind, hide and reorder - * arguments arbitrarily. Although sigc::group() is more flexible, - * sigc::hide() provides a means of hiding parameters when then total - * number of parameters called is variable. - * - * @ingroup adaptors - */ - -/** Adaptor that adds a dummy parameter to the wrapped functor. - * Use the convenience function sigc::hide() to create an instance of sigc::hide_functor. - * - * The following template arguments are used: - * - @e I_location Zero-based position of the dummy parameter (@p -1 for the last parameter). - * - @e T_type Type of the dummy parameter. - * - @e T_functor Type of the functor to wrap. - * - * @ingroup hide - */ -template -struct hide_functor; - -/** Adaptor that adds a dummy parameter to the wrapped functor. - * This template specialization ignores the value of the last parameter in operator()(). - * - * @ingroup hide - */ -template -struct hide_functor <-1, T_functor> : public adapts -{ - typedef typename adapts::adaptor_type adaptor_type; - - template - struct deduce_result_type - { typedef typename adaptor_type::template deduce_result_type::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass>::type type; }; - typedef typename adaptor_type::result_type result_type; - - /** Invokes the wrapped functor ignoring the only argument. - * @param _A_arg%1 Argument to be ignored. - * @return The return value of the functor invocation. - */ - template - typename deduce_result_type::type - operator()(T_arg1 _A_a1) - { return this->functor_(); } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - typename deduce_result_type::type - sun_forte_workaround(T_arg1 _A_a1) - { return this->functor_(); } - #endif - - /** Invokes the wrapped functor ignoring the last argument. - * @param _A_arg1 Argument to be passed on to the functor. - * @param _A_arg2 Argument to be ignored. - * @return The return value of the functor invocation. - */ - template - typename deduce_result_type::type - operator()(T_arg1 _A_a1,T_arg2 _A_a2) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass> - (_A_a1); } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - typename deduce_result_type::type - sun_forte_workaround(T_arg1 _A_a1,T_arg2 _A_a2) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass> - (_A_a1); } - #endif - - /** Invokes the wrapped functor ignoring the last argument. - * @param _A_arg1 Argument to be passed on to the functor. - * @param _A_arg2 Argument to be passed on to the functor. - * @param _A_arg3 Argument to be ignored. - * @return The return value of the functor invocation. - */ - template - typename deduce_result_type::type - operator()(T_arg1 _A_a1,T_arg2 _A_a2,T_arg3 _A_a3) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass, typename type_trait::pass> - (_A_a1, _A_a2); } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - typename deduce_result_type::type - sun_forte_workaround(T_arg1 _A_a1,T_arg2 _A_a2,T_arg3 _A_a3) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass, typename type_trait::pass> - (_A_a1, _A_a2); } - #endif - - /** Invokes the wrapped functor ignoring the last argument. - * @param _A_arg1 Argument to be passed on to the functor. - * @param _A_arg2 Argument to be passed on to the functor. - * @param _A_arg3 Argument to be passed on to the functor. - * @param _A_arg4 Argument to be ignored. - * @return The return value of the functor invocation. - */ - template - typename deduce_result_type::type - operator()(T_arg1 _A_a1,T_arg2 _A_a2,T_arg3 _A_a3,T_arg4 _A_a4) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass, typename type_trait::pass, typename type_trait::pass> - (_A_a1, _A_a2, _A_a3); } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - typename deduce_result_type::type - sun_forte_workaround(T_arg1 _A_a1,T_arg2 _A_a2,T_arg3 _A_a3,T_arg4 _A_a4) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass, typename type_trait::pass, typename type_trait::pass> - (_A_a1, _A_a2, _A_a3); } - #endif - - /** Invokes the wrapped functor ignoring the last argument. - * @param _A_arg1 Argument to be passed on to the functor. - * @param _A_arg2 Argument to be passed on to the functor. - * @param _A_arg3 Argument to be passed on to the functor. - * @param _A_arg4 Argument to be passed on to the functor. - * @param _A_arg5 Argument to be ignored. - * @return The return value of the functor invocation. - */ - template - typename deduce_result_type::type - operator()(T_arg1 _A_a1,T_arg2 _A_a2,T_arg3 _A_a3,T_arg4 _A_a4,T_arg5 _A_a5) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass, typename type_trait::pass, typename type_trait::pass, typename type_trait::pass> - (_A_a1, _A_a2, _A_a3, _A_a4); } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - typename deduce_result_type::type - sun_forte_workaround(T_arg1 _A_a1,T_arg2 _A_a2,T_arg3 _A_a3,T_arg4 _A_a4,T_arg5 _A_a5) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass, typename type_trait::pass, typename type_trait::pass, typename type_trait::pass> - (_A_a1, _A_a2, _A_a3, _A_a4); } - #endif - - /** Invokes the wrapped functor ignoring the last argument. - * @param _A_arg1 Argument to be passed on to the functor. - * @param _A_arg2 Argument to be passed on to the functor. - * @param _A_arg3 Argument to be passed on to the functor. - * @param _A_arg4 Argument to be passed on to the functor. - * @param _A_arg5 Argument to be passed on to the functor. - * @param _A_arg6 Argument to be ignored. - * @return The return value of the functor invocation. - */ - template - typename deduce_result_type::type - operator()(T_arg1 _A_a1,T_arg2 _A_a2,T_arg3 _A_a3,T_arg4 _A_a4,T_arg5 _A_a5,T_arg6 _A_a6) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass, typename type_trait::pass, typename type_trait::pass, typename type_trait::pass, typename type_trait::pass> - (_A_a1, _A_a2, _A_a3, _A_a4, _A_a5); } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - typename deduce_result_type::type - sun_forte_workaround(T_arg1 _A_a1,T_arg2 _A_a2,T_arg3 _A_a3,T_arg4 _A_a4,T_arg5 _A_a5,T_arg6 _A_a6) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass, typename type_trait::pass, typename type_trait::pass, typename type_trait::pass, typename type_trait::pass> - (_A_a1, _A_a2, _A_a3, _A_a4, _A_a5); } - #endif - - /** Invokes the wrapped functor ignoring the last argument. - * @param _A_arg1 Argument to be passed on to the functor. - * @param _A_arg2 Argument to be passed on to the functor. - * @param _A_arg3 Argument to be passed on to the functor. - * @param _A_arg4 Argument to be passed on to the functor. - * @param _A_arg5 Argument to be passed on to the functor. - * @param _A_arg6 Argument to be passed on to the functor. - * @param _A_arg7 Argument to be ignored. - * @return The return value of the functor invocation. - */ - template - typename deduce_result_type::type - operator()(T_arg1 _A_a1,T_arg2 _A_a2,T_arg3 _A_a3,T_arg4 _A_a4,T_arg5 _A_a5,T_arg6 _A_a6,T_arg7 _A_a7) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass, typename type_trait::pass, typename type_trait::pass, typename type_trait::pass, typename type_trait::pass, typename type_trait::pass> - (_A_a1, _A_a2, _A_a3, _A_a4, _A_a5, _A_a6); } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - typename deduce_result_type::type - sun_forte_workaround(T_arg1 _A_a1,T_arg2 _A_a2,T_arg3 _A_a3,T_arg4 _A_a4,T_arg5 _A_a5,T_arg6 _A_a6,T_arg7 _A_a7) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass, typename type_trait::pass, typename type_trait::pass, typename type_trait::pass, typename type_trait::pass, typename type_trait::pass> - (_A_a1, _A_a2, _A_a3, _A_a4, _A_a5, _A_a6); } - #endif - - - /** Constructs a hide_functor object that adds a dummy parameter to the passed functor. - * @param _A_functor Functor to invoke from operator()(). - */ - explicit hide_functor(const T_functor& _A_func) - : adapts(_A_func) - {} -}; - -/** Adaptor that adds a dummy parameter to the wrapped functor. - * This template specialization ignores the value of the 0th parameter in operator()(). - * - * @ingroup hide - */ -template -struct hide_functor <0, T_functor> : public adapts -{ - typedef typename adapts::adaptor_type adaptor_type; - - template - struct deduce_result_type - { typedef typename adaptor_type::template deduce_result_type::pass, typename type_trait::pass, typename type_trait::pass, typename type_trait::pass, typename type_trait::pass, typename type_trait::pass>::type type; }; - typedef typename adaptor_type::result_type result_type; - - /** Invokes the wrapped functor ignoring the only argument. - * @param _A_arg%1 Argument to be ignored. - * @return The return value of the functor invocation. - */ - template - typename deduce_result_type::type - operator()(T_arg1 _A_a1) - { return this->functor_(); } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - typename deduce_result_type::type - sun_forte_workaround(T_arg1 _A_a1) - { return this->functor_(); } - #endif - - /** Invokes the wrapped functor ignoring the 1th argument. - * @param _A_arg1 Argument to be ignored. - * @param _A_arg2 Argument to be passed on to the functor. - * @return The return value of the functor invocation. - */ - template - typename deduce_result_type::type - operator()(T_arg1 _A_a1,T_arg2 _A_a2) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass> - (_A_a2); } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - typename deduce_result_type::type - sun_forte_workaround(T_arg1 _A_a1,T_arg2 _A_a2) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass> - (_A_a2); } - #endif - - /** Invokes the wrapped functor ignoring the 1th argument. - * @param _A_arg1 Argument to be ignored. - * @param _A_arg2 Argument to be passed on to the functor. - * @param _A_arg3 Argument to be passed on to the functor. - * @return The return value of the functor invocation. - */ - template - typename deduce_result_type::type - operator()(T_arg1 _A_a1,T_arg2 _A_a2,T_arg3 _A_a3) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass, typename type_trait::pass> - (_A_a2, _A_a3); } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - typename deduce_result_type::type - sun_forte_workaround(T_arg1 _A_a1,T_arg2 _A_a2,T_arg3 _A_a3) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass, typename type_trait::pass> - (_A_a2, _A_a3); } - #endif - - /** Invokes the wrapped functor ignoring the 1th argument. - * @param _A_arg1 Argument to be ignored. - * @param _A_arg2 Argument to be passed on to the functor. - * @param _A_arg3 Argument to be passed on to the functor. - * @param _A_arg4 Argument to be passed on to the functor. - * @return The return value of the functor invocation. - */ - template - typename deduce_result_type::type - operator()(T_arg1 _A_a1,T_arg2 _A_a2,T_arg3 _A_a3,T_arg4 _A_a4) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass, typename type_trait::pass, typename type_trait::pass> - (_A_a2, _A_a3, _A_a4); } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - typename deduce_result_type::type - sun_forte_workaround(T_arg1 _A_a1,T_arg2 _A_a2,T_arg3 _A_a3,T_arg4 _A_a4) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass, typename type_trait::pass, typename type_trait::pass> - (_A_a2, _A_a3, _A_a4); } - #endif - - /** Invokes the wrapped functor ignoring the 1th argument. - * @param _A_arg1 Argument to be ignored. - * @param _A_arg2 Argument to be passed on to the functor. - * @param _A_arg3 Argument to be passed on to the functor. - * @param _A_arg4 Argument to be passed on to the functor. - * @param _A_arg5 Argument to be passed on to the functor. - * @return The return value of the functor invocation. - */ - template - typename deduce_result_type::type - operator()(T_arg1 _A_a1,T_arg2 _A_a2,T_arg3 _A_a3,T_arg4 _A_a4,T_arg5 _A_a5) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass, typename type_trait::pass, typename type_trait::pass, typename type_trait::pass> - (_A_a2, _A_a3, _A_a4, _A_a5); } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - typename deduce_result_type::type - sun_forte_workaround(T_arg1 _A_a1,T_arg2 _A_a2,T_arg3 _A_a3,T_arg4 _A_a4,T_arg5 _A_a5) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass, typename type_trait::pass, typename type_trait::pass, typename type_trait::pass> - (_A_a2, _A_a3, _A_a4, _A_a5); } - #endif - - /** Invokes the wrapped functor ignoring the 1th argument. - * @param _A_arg1 Argument to be ignored. - * @param _A_arg2 Argument to be passed on to the functor. - * @param _A_arg3 Argument to be passed on to the functor. - * @param _A_arg4 Argument to be passed on to the functor. - * @param _A_arg5 Argument to be passed on to the functor. - * @param _A_arg6 Argument to be passed on to the functor. - * @return The return value of the functor invocation. - */ - template - typename deduce_result_type::type - operator()(T_arg1 _A_a1,T_arg2 _A_a2,T_arg3 _A_a3,T_arg4 _A_a4,T_arg5 _A_a5,T_arg6 _A_a6) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass, typename type_trait::pass, typename type_trait::pass, typename type_trait::pass, typename type_trait::pass> - (_A_a2, _A_a3, _A_a4, _A_a5, _A_a6); } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - typename deduce_result_type::type - sun_forte_workaround(T_arg1 _A_a1,T_arg2 _A_a2,T_arg3 _A_a3,T_arg4 _A_a4,T_arg5 _A_a5,T_arg6 _A_a6) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass, typename type_trait::pass, typename type_trait::pass, typename type_trait::pass, typename type_trait::pass> - (_A_a2, _A_a3, _A_a4, _A_a5, _A_a6); } - #endif - - /** Invokes the wrapped functor ignoring the 1th argument. - * @param _A_arg1 Argument to be ignored. - * @param _A_arg2 Argument to be passed on to the functor. - * @param _A_arg3 Argument to be passed on to the functor. - * @param _A_arg4 Argument to be passed on to the functor. - * @param _A_arg5 Argument to be passed on to the functor. - * @param _A_arg6 Argument to be passed on to the functor. - * @param _A_arg7 Argument to be passed on to the functor. - * @return The return value of the functor invocation. - */ - template - typename deduce_result_type::type - operator()(T_arg1 _A_a1,T_arg2 _A_a2,T_arg3 _A_a3,T_arg4 _A_a4,T_arg5 _A_a5,T_arg6 _A_a6,T_arg7 _A_a7) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass, typename type_trait::pass, typename type_trait::pass, typename type_trait::pass, typename type_trait::pass, typename type_trait::pass> - (_A_a2, _A_a3, _A_a4, _A_a5, _A_a6, _A_a7); } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - typename deduce_result_type::type - sun_forte_workaround(T_arg1 _A_a1,T_arg2 _A_a2,T_arg3 _A_a3,T_arg4 _A_a4,T_arg5 _A_a5,T_arg6 _A_a6,T_arg7 _A_a7) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass, typename type_trait::pass, typename type_trait::pass, typename type_trait::pass, typename type_trait::pass, typename type_trait::pass> - (_A_a2, _A_a3, _A_a4, _A_a5, _A_a6, _A_a7); } - #endif - - - /** Constructs a hide_functor object that adds a dummy parameter to the passed functor. - * @param _A_functor Functor to invoke from operator()(). - */ - explicit hide_functor(const T_functor& _A_func) - : adapts(_A_func) - {} -}; - -/** Adaptor that adds a dummy parameter to the wrapped functor. - * This template specialization ignores the value of the 1th parameter in operator()(). - * - * @ingroup hide - */ -template -struct hide_functor <1, T_functor> : public adapts -{ - typedef typename adapts::adaptor_type adaptor_type; - - template - struct deduce_result_type - { typedef typename adaptor_type::template deduce_result_type::pass, typename type_trait::pass, typename type_trait::pass, typename type_trait::pass, typename type_trait::pass, typename type_trait::pass>::type type; }; - typedef typename adaptor_type::result_type result_type; - - /** Invokes the wrapped functor ignoring the 2th argument. - * @param _A_arg1 Argument to be passed on to the functor. - * @param _A_arg2 Argument to be ignored. - * @return The return value of the functor invocation. - */ - template - typename deduce_result_type::type - operator()(T_arg1 _A_a1,T_arg2 _A_a2) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass> - (_A_a1); } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - typename deduce_result_type::type - sun_forte_workaround(T_arg1 _A_a1,T_arg2 _A_a2) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass> - (_A_a1); } - #endif - - /** Invokes the wrapped functor ignoring the 2th argument. - * @param _A_arg1 Argument to be passed on to the functor. - * @param _A_arg2 Argument to be ignored. - * @param _A_arg3 Argument to be passed on to the functor. - * @return The return value of the functor invocation. - */ - template - typename deduce_result_type::type - operator()(T_arg1 _A_a1,T_arg2 _A_a2,T_arg3 _A_a3) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass, typename type_trait::pass> - (_A_a1, _A_a3); } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - typename deduce_result_type::type - sun_forte_workaround(T_arg1 _A_a1,T_arg2 _A_a2,T_arg3 _A_a3) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass, typename type_trait::pass> - (_A_a1, _A_a3); } - #endif - - /** Invokes the wrapped functor ignoring the 2th argument. - * @param _A_arg1 Argument to be passed on to the functor. - * @param _A_arg2 Argument to be ignored. - * @param _A_arg3 Argument to be passed on to the functor. - * @param _A_arg4 Argument to be passed on to the functor. - * @return The return value of the functor invocation. - */ - template - typename deduce_result_type::type - operator()(T_arg1 _A_a1,T_arg2 _A_a2,T_arg3 _A_a3,T_arg4 _A_a4) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass, typename type_trait::pass, typename type_trait::pass> - (_A_a1, _A_a3, _A_a4); } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - typename deduce_result_type::type - sun_forte_workaround(T_arg1 _A_a1,T_arg2 _A_a2,T_arg3 _A_a3,T_arg4 _A_a4) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass, typename type_trait::pass, typename type_trait::pass> - (_A_a1, _A_a3, _A_a4); } - #endif - - /** Invokes the wrapped functor ignoring the 2th argument. - * @param _A_arg1 Argument to be passed on to the functor. - * @param _A_arg2 Argument to be ignored. - * @param _A_arg3 Argument to be passed on to the functor. - * @param _A_arg4 Argument to be passed on to the functor. - * @param _A_arg5 Argument to be passed on to the functor. - * @return The return value of the functor invocation. - */ - template - typename deduce_result_type::type - operator()(T_arg1 _A_a1,T_arg2 _A_a2,T_arg3 _A_a3,T_arg4 _A_a4,T_arg5 _A_a5) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass, typename type_trait::pass, typename type_trait::pass, typename type_trait::pass> - (_A_a1, _A_a3, _A_a4, _A_a5); } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - typename deduce_result_type::type - sun_forte_workaround(T_arg1 _A_a1,T_arg2 _A_a2,T_arg3 _A_a3,T_arg4 _A_a4,T_arg5 _A_a5) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass, typename type_trait::pass, typename type_trait::pass, typename type_trait::pass> - (_A_a1, _A_a3, _A_a4, _A_a5); } - #endif - - /** Invokes the wrapped functor ignoring the 2th argument. - * @param _A_arg1 Argument to be passed on to the functor. - * @param _A_arg2 Argument to be ignored. - * @param _A_arg3 Argument to be passed on to the functor. - * @param _A_arg4 Argument to be passed on to the functor. - * @param _A_arg5 Argument to be passed on to the functor. - * @param _A_arg6 Argument to be passed on to the functor. - * @return The return value of the functor invocation. - */ - template - typename deduce_result_type::type - operator()(T_arg1 _A_a1,T_arg2 _A_a2,T_arg3 _A_a3,T_arg4 _A_a4,T_arg5 _A_a5,T_arg6 _A_a6) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass, typename type_trait::pass, typename type_trait::pass, typename type_trait::pass, typename type_trait::pass> - (_A_a1, _A_a3, _A_a4, _A_a5, _A_a6); } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - typename deduce_result_type::type - sun_forte_workaround(T_arg1 _A_a1,T_arg2 _A_a2,T_arg3 _A_a3,T_arg4 _A_a4,T_arg5 _A_a5,T_arg6 _A_a6) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass, typename type_trait::pass, typename type_trait::pass, typename type_trait::pass, typename type_trait::pass> - (_A_a1, _A_a3, _A_a4, _A_a5, _A_a6); } - #endif - - /** Invokes the wrapped functor ignoring the 2th argument. - * @param _A_arg1 Argument to be passed on to the functor. - * @param _A_arg2 Argument to be ignored. - * @param _A_arg3 Argument to be passed on to the functor. - * @param _A_arg4 Argument to be passed on to the functor. - * @param _A_arg5 Argument to be passed on to the functor. - * @param _A_arg6 Argument to be passed on to the functor. - * @param _A_arg7 Argument to be passed on to the functor. - * @return The return value of the functor invocation. - */ - template - typename deduce_result_type::type - operator()(T_arg1 _A_a1,T_arg2 _A_a2,T_arg3 _A_a3,T_arg4 _A_a4,T_arg5 _A_a5,T_arg6 _A_a6,T_arg7 _A_a7) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass, typename type_trait::pass, typename type_trait::pass, typename type_trait::pass, typename type_trait::pass, typename type_trait::pass> - (_A_a1, _A_a3, _A_a4, _A_a5, _A_a6, _A_a7); } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - typename deduce_result_type::type - sun_forte_workaround(T_arg1 _A_a1,T_arg2 _A_a2,T_arg3 _A_a3,T_arg4 _A_a4,T_arg5 _A_a5,T_arg6 _A_a6,T_arg7 _A_a7) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass, typename type_trait::pass, typename type_trait::pass, typename type_trait::pass, typename type_trait::pass, typename type_trait::pass> - (_A_a1, _A_a3, _A_a4, _A_a5, _A_a6, _A_a7); } - #endif - - - /** Constructs a hide_functor object that adds a dummy parameter to the passed functor. - * @param _A_functor Functor to invoke from operator()(). - */ - explicit hide_functor(const T_functor& _A_func) - : adapts(_A_func) - {} -}; - -/** Adaptor that adds a dummy parameter to the wrapped functor. - * This template specialization ignores the value of the 2th parameter in operator()(). - * - * @ingroup hide - */ -template -struct hide_functor <2, T_functor> : public adapts -{ - typedef typename adapts::adaptor_type adaptor_type; - - template - struct deduce_result_type - { typedef typename adaptor_type::template deduce_result_type::pass,typename type_trait::pass, typename type_trait::pass, typename type_trait::pass, typename type_trait::pass, typename type_trait::pass>::type type; }; - typedef typename adaptor_type::result_type result_type; - - /** Invokes the wrapped functor ignoring the 3th argument. - * @param _A_arg1 Argument to be passed on to the functor. - * @param _A_arg2 Argument to be passed on to the functor. - * @param _A_arg3 Argument to be ignored. - * @return The return value of the functor invocation. - */ - template - typename deduce_result_type::type - operator()(T_arg1 _A_a1,T_arg2 _A_a2,T_arg3 _A_a3) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass, typename type_trait::pass> - (_A_a1, _A_a2); } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - typename deduce_result_type::type - sun_forte_workaround(T_arg1 _A_a1,T_arg2 _A_a2,T_arg3 _A_a3) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass, typename type_trait::pass> - (_A_a1, _A_a2); } - #endif - - /** Invokes the wrapped functor ignoring the 3th argument. - * @param _A_arg1 Argument to be passed on to the functor. - * @param _A_arg2 Argument to be passed on to the functor. - * @param _A_arg3 Argument to be ignored. - * @param _A_arg4 Argument to be passed on to the functor. - * @return The return value of the functor invocation. - */ - template - typename deduce_result_type::type - operator()(T_arg1 _A_a1,T_arg2 _A_a2,T_arg3 _A_a3,T_arg4 _A_a4) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass, typename type_trait::pass, typename type_trait::pass> - (_A_a1, _A_a2, _A_a4); } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - typename deduce_result_type::type - sun_forte_workaround(T_arg1 _A_a1,T_arg2 _A_a2,T_arg3 _A_a3,T_arg4 _A_a4) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass, typename type_trait::pass, typename type_trait::pass> - (_A_a1, _A_a2, _A_a4); } - #endif - - /** Invokes the wrapped functor ignoring the 3th argument. - * @param _A_arg1 Argument to be passed on to the functor. - * @param _A_arg2 Argument to be passed on to the functor. - * @param _A_arg3 Argument to be ignored. - * @param _A_arg4 Argument to be passed on to the functor. - * @param _A_arg5 Argument to be passed on to the functor. - * @return The return value of the functor invocation. - */ - template - typename deduce_result_type::type - operator()(T_arg1 _A_a1,T_arg2 _A_a2,T_arg3 _A_a3,T_arg4 _A_a4,T_arg5 _A_a5) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass, typename type_trait::pass, typename type_trait::pass, typename type_trait::pass> - (_A_a1, _A_a2, _A_a4, _A_a5); } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - typename deduce_result_type::type - sun_forte_workaround(T_arg1 _A_a1,T_arg2 _A_a2,T_arg3 _A_a3,T_arg4 _A_a4,T_arg5 _A_a5) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass, typename type_trait::pass, typename type_trait::pass, typename type_trait::pass> - (_A_a1, _A_a2, _A_a4, _A_a5); } - #endif - - /** Invokes the wrapped functor ignoring the 3th argument. - * @param _A_arg1 Argument to be passed on to the functor. - * @param _A_arg2 Argument to be passed on to the functor. - * @param _A_arg3 Argument to be ignored. - * @param _A_arg4 Argument to be passed on to the functor. - * @param _A_arg5 Argument to be passed on to the functor. - * @param _A_arg6 Argument to be passed on to the functor. - * @return The return value of the functor invocation. - */ - template - typename deduce_result_type::type - operator()(T_arg1 _A_a1,T_arg2 _A_a2,T_arg3 _A_a3,T_arg4 _A_a4,T_arg5 _A_a5,T_arg6 _A_a6) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass, typename type_trait::pass, typename type_trait::pass, typename type_trait::pass, typename type_trait::pass> - (_A_a1, _A_a2, _A_a4, _A_a5, _A_a6); } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - typename deduce_result_type::type - sun_forte_workaround(T_arg1 _A_a1,T_arg2 _A_a2,T_arg3 _A_a3,T_arg4 _A_a4,T_arg5 _A_a5,T_arg6 _A_a6) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass, typename type_trait::pass, typename type_trait::pass, typename type_trait::pass, typename type_trait::pass> - (_A_a1, _A_a2, _A_a4, _A_a5, _A_a6); } - #endif - - /** Invokes the wrapped functor ignoring the 3th argument. - * @param _A_arg1 Argument to be passed on to the functor. - * @param _A_arg2 Argument to be passed on to the functor. - * @param _A_arg3 Argument to be ignored. - * @param _A_arg4 Argument to be passed on to the functor. - * @param _A_arg5 Argument to be passed on to the functor. - * @param _A_arg6 Argument to be passed on to the functor. - * @param _A_arg7 Argument to be passed on to the functor. - * @return The return value of the functor invocation. - */ - template - typename deduce_result_type::type - operator()(T_arg1 _A_a1,T_arg2 _A_a2,T_arg3 _A_a3,T_arg4 _A_a4,T_arg5 _A_a5,T_arg6 _A_a6,T_arg7 _A_a7) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass, typename type_trait::pass, typename type_trait::pass, typename type_trait::pass, typename type_trait::pass, typename type_trait::pass> - (_A_a1, _A_a2, _A_a4, _A_a5, _A_a6, _A_a7); } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - typename deduce_result_type::type - sun_forte_workaround(T_arg1 _A_a1,T_arg2 _A_a2,T_arg3 _A_a3,T_arg4 _A_a4,T_arg5 _A_a5,T_arg6 _A_a6,T_arg7 _A_a7) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass, typename type_trait::pass, typename type_trait::pass, typename type_trait::pass, typename type_trait::pass, typename type_trait::pass> - (_A_a1, _A_a2, _A_a4, _A_a5, _A_a6, _A_a7); } - #endif - - - /** Constructs a hide_functor object that adds a dummy parameter to the passed functor. - * @param _A_functor Functor to invoke from operator()(). - */ - explicit hide_functor(const T_functor& _A_func) - : adapts(_A_func) - {} -}; - -/** Adaptor that adds a dummy parameter to the wrapped functor. - * This template specialization ignores the value of the 3th parameter in operator()(). - * - * @ingroup hide - */ -template -struct hide_functor <3, T_functor> : public adapts -{ - typedef typename adapts::adaptor_type adaptor_type; - - template - struct deduce_result_type - { typedef typename adaptor_type::template deduce_result_type::pass,typename type_trait::pass,typename type_trait::pass, typename type_trait::pass, typename type_trait::pass, typename type_trait::pass>::type type; }; - typedef typename adaptor_type::result_type result_type; - - /** Invokes the wrapped functor ignoring the 4th argument. - * @param _A_arg1 Argument to be passed on to the functor. - * @param _A_arg2 Argument to be passed on to the functor. - * @param _A_arg3 Argument to be passed on to the functor. - * @param _A_arg4 Argument to be ignored. - * @return The return value of the functor invocation. - */ - template - typename deduce_result_type::type - operator()(T_arg1 _A_a1,T_arg2 _A_a2,T_arg3 _A_a3,T_arg4 _A_a4) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass, typename type_trait::pass, typename type_trait::pass> - (_A_a1, _A_a2, _A_a3); } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - typename deduce_result_type::type - sun_forte_workaround(T_arg1 _A_a1,T_arg2 _A_a2,T_arg3 _A_a3,T_arg4 _A_a4) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass, typename type_trait::pass, typename type_trait::pass> - (_A_a1, _A_a2, _A_a3); } - #endif - - /** Invokes the wrapped functor ignoring the 4th argument. - * @param _A_arg1 Argument to be passed on to the functor. - * @param _A_arg2 Argument to be passed on to the functor. - * @param _A_arg3 Argument to be passed on to the functor. - * @param _A_arg4 Argument to be ignored. - * @param _A_arg5 Argument to be passed on to the functor. - * @return The return value of the functor invocation. - */ - template - typename deduce_result_type::type - operator()(T_arg1 _A_a1,T_arg2 _A_a2,T_arg3 _A_a3,T_arg4 _A_a4,T_arg5 _A_a5) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass, typename type_trait::pass, typename type_trait::pass, typename type_trait::pass> - (_A_a1, _A_a2, _A_a3, _A_a5); } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - typename deduce_result_type::type - sun_forte_workaround(T_arg1 _A_a1,T_arg2 _A_a2,T_arg3 _A_a3,T_arg4 _A_a4,T_arg5 _A_a5) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass, typename type_trait::pass, typename type_trait::pass, typename type_trait::pass> - (_A_a1, _A_a2, _A_a3, _A_a5); } - #endif - - /** Invokes the wrapped functor ignoring the 4th argument. - * @param _A_arg1 Argument to be passed on to the functor. - * @param _A_arg2 Argument to be passed on to the functor. - * @param _A_arg3 Argument to be passed on to the functor. - * @param _A_arg4 Argument to be ignored. - * @param _A_arg5 Argument to be passed on to the functor. - * @param _A_arg6 Argument to be passed on to the functor. - * @return The return value of the functor invocation. - */ - template - typename deduce_result_type::type - operator()(T_arg1 _A_a1,T_arg2 _A_a2,T_arg3 _A_a3,T_arg4 _A_a4,T_arg5 _A_a5,T_arg6 _A_a6) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass, typename type_trait::pass, typename type_trait::pass, typename type_trait::pass, typename type_trait::pass> - (_A_a1, _A_a2, _A_a3, _A_a5, _A_a6); } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - typename deduce_result_type::type - sun_forte_workaround(T_arg1 _A_a1,T_arg2 _A_a2,T_arg3 _A_a3,T_arg4 _A_a4,T_arg5 _A_a5,T_arg6 _A_a6) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass, typename type_trait::pass, typename type_trait::pass, typename type_trait::pass, typename type_trait::pass> - (_A_a1, _A_a2, _A_a3, _A_a5, _A_a6); } - #endif - - /** Invokes the wrapped functor ignoring the 4th argument. - * @param _A_arg1 Argument to be passed on to the functor. - * @param _A_arg2 Argument to be passed on to the functor. - * @param _A_arg3 Argument to be passed on to the functor. - * @param _A_arg4 Argument to be ignored. - * @param _A_arg5 Argument to be passed on to the functor. - * @param _A_arg6 Argument to be passed on to the functor. - * @param _A_arg7 Argument to be passed on to the functor. - * @return The return value of the functor invocation. - */ - template - typename deduce_result_type::type - operator()(T_arg1 _A_a1,T_arg2 _A_a2,T_arg3 _A_a3,T_arg4 _A_a4,T_arg5 _A_a5,T_arg6 _A_a6,T_arg7 _A_a7) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass, typename type_trait::pass, typename type_trait::pass, typename type_trait::pass, typename type_trait::pass, typename type_trait::pass> - (_A_a1, _A_a2, _A_a3, _A_a5, _A_a6, _A_a7); } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - typename deduce_result_type::type - sun_forte_workaround(T_arg1 _A_a1,T_arg2 _A_a2,T_arg3 _A_a3,T_arg4 _A_a4,T_arg5 _A_a5,T_arg6 _A_a6,T_arg7 _A_a7) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass, typename type_trait::pass, typename type_trait::pass, typename type_trait::pass, typename type_trait::pass, typename type_trait::pass> - (_A_a1, _A_a2, _A_a3, _A_a5, _A_a6, _A_a7); } - #endif - - - /** Constructs a hide_functor object that adds a dummy parameter to the passed functor. - * @param _A_functor Functor to invoke from operator()(). - */ - explicit hide_functor(const T_functor& _A_func) - : adapts(_A_func) - {} -}; - -/** Adaptor that adds a dummy parameter to the wrapped functor. - * This template specialization ignores the value of the 4th parameter in operator()(). - * - * @ingroup hide - */ -template -struct hide_functor <4, T_functor> : public adapts -{ - typedef typename adapts::adaptor_type adaptor_type; - - template - struct deduce_result_type - { typedef typename adaptor_type::template deduce_result_type::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass, typename type_trait::pass, typename type_trait::pass>::type type; }; - typedef typename adaptor_type::result_type result_type; - - /** Invokes the wrapped functor ignoring the 5th argument. - * @param _A_arg1 Argument to be passed on to the functor. - * @param _A_arg2 Argument to be passed on to the functor. - * @param _A_arg3 Argument to be passed on to the functor. - * @param _A_arg4 Argument to be passed on to the functor. - * @param _A_arg5 Argument to be ignored. - * @return The return value of the functor invocation. - */ - template - typename deduce_result_type::type - operator()(T_arg1 _A_a1,T_arg2 _A_a2,T_arg3 _A_a3,T_arg4 _A_a4,T_arg5 _A_a5) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass, typename type_trait::pass, typename type_trait::pass, typename type_trait::pass> - (_A_a1, _A_a2, _A_a3, _A_a4); } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - typename deduce_result_type::type - sun_forte_workaround(T_arg1 _A_a1,T_arg2 _A_a2,T_arg3 _A_a3,T_arg4 _A_a4,T_arg5 _A_a5) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass, typename type_trait::pass, typename type_trait::pass, typename type_trait::pass> - (_A_a1, _A_a2, _A_a3, _A_a4); } - #endif - - /** Invokes the wrapped functor ignoring the 5th argument. - * @param _A_arg1 Argument to be passed on to the functor. - * @param _A_arg2 Argument to be passed on to the functor. - * @param _A_arg3 Argument to be passed on to the functor. - * @param _A_arg4 Argument to be passed on to the functor. - * @param _A_arg5 Argument to be ignored. - * @param _A_arg6 Argument to be passed on to the functor. - * @return The return value of the functor invocation. - */ - template - typename deduce_result_type::type - operator()(T_arg1 _A_a1,T_arg2 _A_a2,T_arg3 _A_a3,T_arg4 _A_a4,T_arg5 _A_a5,T_arg6 _A_a6) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass, typename type_trait::pass, typename type_trait::pass, typename type_trait::pass, typename type_trait::pass> - (_A_a1, _A_a2, _A_a3, _A_a4, _A_a6); } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - typename deduce_result_type::type - sun_forte_workaround(T_arg1 _A_a1,T_arg2 _A_a2,T_arg3 _A_a3,T_arg4 _A_a4,T_arg5 _A_a5,T_arg6 _A_a6) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass, typename type_trait::pass, typename type_trait::pass, typename type_trait::pass, typename type_trait::pass> - (_A_a1, _A_a2, _A_a3, _A_a4, _A_a6); } - #endif - - /** Invokes the wrapped functor ignoring the 5th argument. - * @param _A_arg1 Argument to be passed on to the functor. - * @param _A_arg2 Argument to be passed on to the functor. - * @param _A_arg3 Argument to be passed on to the functor. - * @param _A_arg4 Argument to be passed on to the functor. - * @param _A_arg5 Argument to be ignored. - * @param _A_arg6 Argument to be passed on to the functor. - * @param _A_arg7 Argument to be passed on to the functor. - * @return The return value of the functor invocation. - */ - template - typename deduce_result_type::type - operator()(T_arg1 _A_a1,T_arg2 _A_a2,T_arg3 _A_a3,T_arg4 _A_a4,T_arg5 _A_a5,T_arg6 _A_a6,T_arg7 _A_a7) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass, typename type_trait::pass, typename type_trait::pass, typename type_trait::pass, typename type_trait::pass, typename type_trait::pass> - (_A_a1, _A_a2, _A_a3, _A_a4, _A_a6, _A_a7); } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - typename deduce_result_type::type - sun_forte_workaround(T_arg1 _A_a1,T_arg2 _A_a2,T_arg3 _A_a3,T_arg4 _A_a4,T_arg5 _A_a5,T_arg6 _A_a6,T_arg7 _A_a7) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass, typename type_trait::pass, typename type_trait::pass, typename type_trait::pass, typename type_trait::pass, typename type_trait::pass> - (_A_a1, _A_a2, _A_a3, _A_a4, _A_a6, _A_a7); } - #endif - - - /** Constructs a hide_functor object that adds a dummy parameter to the passed functor. - * @param _A_functor Functor to invoke from operator()(). - */ - explicit hide_functor(const T_functor& _A_func) - : adapts(_A_func) - {} -}; - -/** Adaptor that adds a dummy parameter to the wrapped functor. - * This template specialization ignores the value of the 5th parameter in operator()(). - * - * @ingroup hide - */ -template -struct hide_functor <5, T_functor> : public adapts -{ - typedef typename adapts::adaptor_type adaptor_type; - - template - struct deduce_result_type - { typedef typename adaptor_type::template deduce_result_type::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass, typename type_trait::pass>::type type; }; - typedef typename adaptor_type::result_type result_type; - - /** Invokes the wrapped functor ignoring the 6th argument. - * @param _A_arg1 Argument to be passed on to the functor. - * @param _A_arg2 Argument to be passed on to the functor. - * @param _A_arg3 Argument to be passed on to the functor. - * @param _A_arg4 Argument to be passed on to the functor. - * @param _A_arg5 Argument to be passed on to the functor. - * @param _A_arg6 Argument to be ignored. - * @return The return value of the functor invocation. - */ - template - typename deduce_result_type::type - operator()(T_arg1 _A_a1,T_arg2 _A_a2,T_arg3 _A_a3,T_arg4 _A_a4,T_arg5 _A_a5,T_arg6 _A_a6) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass, typename type_trait::pass, typename type_trait::pass, typename type_trait::pass, typename type_trait::pass> - (_A_a1, _A_a2, _A_a3, _A_a4, _A_a5); } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - typename deduce_result_type::type - sun_forte_workaround(T_arg1 _A_a1,T_arg2 _A_a2,T_arg3 _A_a3,T_arg4 _A_a4,T_arg5 _A_a5,T_arg6 _A_a6) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass, typename type_trait::pass, typename type_trait::pass, typename type_trait::pass, typename type_trait::pass> - (_A_a1, _A_a2, _A_a3, _A_a4, _A_a5); } - #endif - - /** Invokes the wrapped functor ignoring the 6th argument. - * @param _A_arg1 Argument to be passed on to the functor. - * @param _A_arg2 Argument to be passed on to the functor. - * @param _A_arg3 Argument to be passed on to the functor. - * @param _A_arg4 Argument to be passed on to the functor. - * @param _A_arg5 Argument to be passed on to the functor. - * @param _A_arg6 Argument to be ignored. - * @param _A_arg7 Argument to be passed on to the functor. - * @return The return value of the functor invocation. - */ - template - typename deduce_result_type::type - operator()(T_arg1 _A_a1,T_arg2 _A_a2,T_arg3 _A_a3,T_arg4 _A_a4,T_arg5 _A_a5,T_arg6 _A_a6,T_arg7 _A_a7) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass, typename type_trait::pass, typename type_trait::pass, typename type_trait::pass, typename type_trait::pass, typename type_trait::pass> - (_A_a1, _A_a2, _A_a3, _A_a4, _A_a5, _A_a7); } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - typename deduce_result_type::type - sun_forte_workaround(T_arg1 _A_a1,T_arg2 _A_a2,T_arg3 _A_a3,T_arg4 _A_a4,T_arg5 _A_a5,T_arg6 _A_a6,T_arg7 _A_a7) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass, typename type_trait::pass, typename type_trait::pass, typename type_trait::pass, typename type_trait::pass, typename type_trait::pass> - (_A_a1, _A_a2, _A_a3, _A_a4, _A_a5, _A_a7); } - #endif - - - /** Constructs a hide_functor object that adds a dummy parameter to the passed functor. - * @param _A_functor Functor to invoke from operator()(). - */ - explicit hide_functor(const T_functor& _A_func) - : adapts(_A_func) - {} -}; - -/** Adaptor that adds a dummy parameter to the wrapped functor. - * This template specialization ignores the value of the 6th parameter in operator()(). - * - * @ingroup hide - */ -template -struct hide_functor <6, T_functor> : public adapts -{ - typedef typename adapts::adaptor_type adaptor_type; - - template - struct deduce_result_type - { typedef typename adaptor_type::template deduce_result_type::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass>::type type; }; - typedef typename adaptor_type::result_type result_type; - - /** Invokes the wrapped functor ignoring the 7th argument. - * @param _A_arg1 Argument to be passed on to the functor. - * @param _A_arg2 Argument to be passed on to the functor. - * @param _A_arg3 Argument to be passed on to the functor. - * @param _A_arg4 Argument to be passed on to the functor. - * @param _A_arg5 Argument to be passed on to the functor. - * @param _A_arg6 Argument to be passed on to the functor. - * @param _A_arg7 Argument to be ignored. - * @return The return value of the functor invocation. - */ - template - typename deduce_result_type::type - operator()(T_arg1 _A_a1,T_arg2 _A_a2,T_arg3 _A_a3,T_arg4 _A_a4,T_arg5 _A_a5,T_arg6 _A_a6,T_arg7 _A_a7) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass, typename type_trait::pass, typename type_trait::pass, typename type_trait::pass, typename type_trait::pass, typename type_trait::pass> - (_A_a1, _A_a2, _A_a3, _A_a4, _A_a5, _A_a6); } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - typename deduce_result_type::type - sun_forte_workaround(T_arg1 _A_a1,T_arg2 _A_a2,T_arg3 _A_a3,T_arg4 _A_a4,T_arg5 _A_a5,T_arg6 _A_a6,T_arg7 _A_a7) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass, typename type_trait::pass, typename type_trait::pass, typename type_trait::pass, typename type_trait::pass, typename type_trait::pass> - (_A_a1, _A_a2, _A_a3, _A_a4, _A_a5, _A_a6); } - #endif - - - /** Constructs a hide_functor object that adds a dummy parameter to the passed functor. - * @param _A_functor Functor to invoke from operator()(). - */ - explicit hide_functor(const T_functor& _A_func) - : adapts(_A_func) - {} -}; - - -/** Performs a functor on each of the targets of a functor. - * The function overload for sigc::hide_functor performs a functor on the - * functor stored in the sigc::hide_functor object. - * - * @ingroup hide - */ -template -void visit_each(const T_action& _A_action, - const hide_functor& _A_target) -{ - visit_each(_A_action, _A_target.functor_); -} - - -/** Creates an adaptor of type sigc::hide_functor which adds a dummy parameter to the passed functor. - * The optional template argument @e I_location specifies the zero-based - * position of the dummy parameter in the returned functor (@p -1 stands for the last parameter). - * - * @param _A_func Functor that should be wrapped. - * @return Adaptor that executes @e _A_func ignoring the value of the dummy parameter. - * - * @ingroup hide - */ -template -inline hide_functor -hide(const T_functor& _A_func) - { return hide_functor(_A_func); } - -/** Creates an adaptor of type sigc::hide_functor which adds a dummy parameter to the passed functor. - * This overload adds a dummy parameter at the back of the functor's parameter list. - * - * @param _A_func Functor that should be wrapped. - * @return Adaptor that executes @e _A_func ignoring the value of the last parameter. - * - * @ingroup hide - */ -template -inline hide_functor<-1, T_functor> -hide(const T_functor& _A_func) - { return hide_functor<-1, T_functor> (_A_func); } - -} /* namespace sigc */ -#endif /* _SIGC_ADAPTORS_MACROS_HIDEHM4_ */ diff --git a/libs/sigc++2/sigc++/adaptors/lambda/.cvsignore b/libs/sigc++2/sigc++/adaptors/lambda/.cvsignore deleted file mode 100644 index 1edeb79fd1..0000000000 --- a/libs/sigc++2/sigc++/adaptors/lambda/.cvsignore +++ /dev/null @@ -1 +0,0 @@ -*.os diff --git a/libs/sigc++2/sigc++/adaptors/lambda/base.h b/libs/sigc++2/sigc++/adaptors/lambda/base.h deleted file mode 100644 index 6a2c402c89..0000000000 --- a/libs/sigc++2/sigc++/adaptors/lambda/base.h +++ /dev/null @@ -1,392 +0,0 @@ -// -*- c++ -*- -/* Do not edit! -- generated file */ -#ifndef _SIGC_LAMBDA_BASE_HPP_ -#define _SIGC_LAMBDA_BASE_HPP_ -#include - -namespace sigc { - -/** @defgroup lambdas Lambdas - * libsigc++ ships with basic lambda functionality and the sigc::group adaptor that uses lambdas to transform a functor's parameter list. - * - * The lambda selectors sigc::_1, sigc::_2, ..., sigc::_9 are used to select the - * first, second, ..., nineth argument from a list. - * - * @par Examples: - * @code - * std::cout << sigc::_1(10,20,30); // returns 10 - * std::cout << sigc::_2(10,20,30); // returns 20 - * ... - * @endcode - * - * Operators are defined so that lambda selectors can be used e.g. as placeholders in - * arithmetic expressions. - * - * @par Examples: - * @code - * std::cout << (sigc::_1 + 5)(3); // returns (3 + 5) - * std::cout << (sigc::_1 * sigc::_2)(7,10); // returns (7 * 10) - * @endcode - */ - -/** A hint to the compiler. - * All lambda types publically inherit from this hint. - * - * @ingroup lambdas - */ -struct lambda_base : public adaptor_base {}; - -// Forward declaration of lambda. -template struct lambda; - - -namespace internal { - -/** Abstracts lambda functionality. - * Objects of this type store a value that may be of type lambda itself. - * In this case, operator()() executes the lambda (a lambda is always a functor at the same time). - * Otherwise, operator()() simply returns the stored value. - */ -template ::value> struct lambda_core; - -/// Abstracts lambda functionality (template specialization for lambda values). -template -struct lambda_core : public lambda_base -{ - template - struct deduce_result_type - { typedef typename T_type::template deduce_result_type::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass>::type type; }; - typedef typename T_type::result_type result_type; - typedef T_type lambda_type; - - result_type - operator()() const; - - template - typename deduce_result_type::type - operator ()(T_arg1 _A_1) const - { return value_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass> - (_A_1); - } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - typename deduce_result_type::type - sun_forte_workaround(T_arg1 _A_1) const - { return value_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass> - (_A_1); - } - #endif //SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - - template - typename deduce_result_type::type - operator ()(T_arg1 _A_1,T_arg2 _A_2) const - { return value_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass,typename type_trait::pass> - (_A_1,_A_2); - } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - typename deduce_result_type::type - sun_forte_workaround(T_arg1 _A_1,T_arg2 _A_2) const - { return value_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass,typename type_trait::pass> - (_A_1,_A_2); - } - #endif //SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - - template - typename deduce_result_type::type - operator ()(T_arg1 _A_1,T_arg2 _A_2,T_arg3 _A_3) const - { return value_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass,typename type_trait::pass,typename type_trait::pass> - (_A_1,_A_2,_A_3); - } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - typename deduce_result_type::type - sun_forte_workaround(T_arg1 _A_1,T_arg2 _A_2,T_arg3 _A_3) const - { return value_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass,typename type_trait::pass,typename type_trait::pass> - (_A_1,_A_2,_A_3); - } - #endif //SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - - template - typename deduce_result_type::type - operator ()(T_arg1 _A_1,T_arg2 _A_2,T_arg3 _A_3,T_arg4 _A_4) const - { return value_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass> - (_A_1,_A_2,_A_3,_A_4); - } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - typename deduce_result_type::type - sun_forte_workaround(T_arg1 _A_1,T_arg2 _A_2,T_arg3 _A_3,T_arg4 _A_4) const - { return value_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass> - (_A_1,_A_2,_A_3,_A_4); - } - #endif //SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - - template - typename deduce_result_type::type - operator ()(T_arg1 _A_1,T_arg2 _A_2,T_arg3 _A_3,T_arg4 _A_4,T_arg5 _A_5) const - { return value_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass> - (_A_1,_A_2,_A_3,_A_4,_A_5); - } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - typename deduce_result_type::type - sun_forte_workaround(T_arg1 _A_1,T_arg2 _A_2,T_arg3 _A_3,T_arg4 _A_4,T_arg5 _A_5) const - { return value_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass> - (_A_1,_A_2,_A_3,_A_4,_A_5); - } - #endif //SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - - template - typename deduce_result_type::type - operator ()(T_arg1 _A_1,T_arg2 _A_2,T_arg3 _A_3,T_arg4 _A_4,T_arg5 _A_5,T_arg6 _A_6) const - { return value_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass> - (_A_1,_A_2,_A_3,_A_4,_A_5,_A_6); - } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - typename deduce_result_type::type - sun_forte_workaround(T_arg1 _A_1,T_arg2 _A_2,T_arg3 _A_3,T_arg4 _A_4,T_arg5 _A_5,T_arg6 _A_6) const - { return value_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass> - (_A_1,_A_2,_A_3,_A_4,_A_5,_A_6); - } - #endif //SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - - template - typename deduce_result_type::type - operator ()(T_arg1 _A_1,T_arg2 _A_2,T_arg3 _A_3,T_arg4 _A_4,T_arg5 _A_5,T_arg6 _A_6,T_arg7 _A_7) const - { return value_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass> - (_A_1,_A_2,_A_3,_A_4,_A_5,_A_6,_A_7); - } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - typename deduce_result_type::type - sun_forte_workaround(T_arg1 _A_1,T_arg2 _A_2,T_arg3 _A_3,T_arg4 _A_4,T_arg5 _A_5,T_arg6 _A_6,T_arg7 _A_7) const - { return value_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass> - (_A_1,_A_2,_A_3,_A_4,_A_5,_A_6,_A_7); - } - #endif //SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - - lambda_core() {} - - explicit lambda_core(const T_type& v) - : value_(v) {} - - T_type value_; -}; - -template -typename lambda_core::result_type -lambda_core::operator()() const - { return value_(); } - - -/// Abstracts lambda functionality (template specialization for other value types). -template -struct lambda_core : public lambda_base -{ - template - struct deduce_result_type - { typedef T_type type; }; - typedef T_type result_type; // all operator() overloads return T_type. - typedef lambda lambda_type; - - result_type operator()() const; - - template - result_type operator ()(T_arg1 _A_1) const - { return value_; } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - result_type sun_forte_workaround(T_arg1 _A_1) const - { return value_; } - #endif //SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - - template - result_type operator ()(T_arg1 _A_1,T_arg2 _A_2) const - { return value_; } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - result_type sun_forte_workaround(T_arg1 _A_1,T_arg2 _A_2) const - { return value_; } - #endif //SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - - template - result_type operator ()(T_arg1 _A_1,T_arg2 _A_2,T_arg3 _A_3) const - { return value_; } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - result_type sun_forte_workaround(T_arg1 _A_1,T_arg2 _A_2,T_arg3 _A_3) const - { return value_; } - #endif //SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - - template - result_type operator ()(T_arg1 _A_1,T_arg2 _A_2,T_arg3 _A_3,T_arg4 _A_4) const - { return value_; } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - result_type sun_forte_workaround(T_arg1 _A_1,T_arg2 _A_2,T_arg3 _A_3,T_arg4 _A_4) const - { return value_; } - #endif //SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - - template - result_type operator ()(T_arg1 _A_1,T_arg2 _A_2,T_arg3 _A_3,T_arg4 _A_4,T_arg5 _A_5) const - { return value_; } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - result_type sun_forte_workaround(T_arg1 _A_1,T_arg2 _A_2,T_arg3 _A_3,T_arg4 _A_4,T_arg5 _A_5) const - { return value_; } - #endif //SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - - template - result_type operator ()(T_arg1 _A_1,T_arg2 _A_2,T_arg3 _A_3,T_arg4 _A_4,T_arg5 _A_5,T_arg6 _A_6) const - { return value_; } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - result_type sun_forte_workaround(T_arg1 _A_1,T_arg2 _A_2,T_arg3 _A_3,T_arg4 _A_4,T_arg5 _A_5,T_arg6 _A_6) const - { return value_; } - #endif //SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - - template - result_type operator ()(T_arg1 _A_1,T_arg2 _A_2,T_arg3 _A_3,T_arg4 _A_4,T_arg5 _A_5,T_arg6 _A_6,T_arg7 _A_7) const - { return value_; } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - result_type sun_forte_workaround(T_arg1 _A_1,T_arg2 _A_2,T_arg3 _A_3,T_arg4 _A_4,T_arg5 _A_5,T_arg6 _A_6,T_arg7 _A_7) const - { return value_; } - #endif //SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - - explicit lambda_core(typename type_trait::take v) - : value_(v) {} - - T_type value_; -}; - -template -typename lambda_core::result_type lambda_core::operator()() const - { return value_; } - -} /* namespace internal */ - - -template -void visit_each(const T_action& _A_action, - const internal::lambda_core& _A_target) -{ - visit_each(_A_action, _A_target.value_); -} - - -// forward declarations for lambda operators other and other -template -struct other; -struct subscript; -struct assign; - -template -struct lambda_operator; - -template -struct unwrap_lambda_type; - - -/** Lambda type. - * Objects of this type store a value that may be of type lambda itself. - * In this case, operator()() executes the lambda (a lambda is always a functor at the same time). - * Otherwise, operator()() simply returns the stored value. - * The assign and subscript operators are defined to return a lambda operator. - * - * @ingroup lambdas - */ -template -struct lambda : public internal::lambda_core -{ - typedef lambda self; - - lambda() - {} - - lambda(typename type_trait::take v) - : internal::lambda_core(v) - {} - - // operators for other - template - lambda, self, typename unwrap_lambda_type::type> > - operator [] (const T_arg& a) const - { typedef lambda_operator, self, typename unwrap_lambda_type::type> lambda_operator_type; - return lambda(lambda_operator_type(this->value_, unwrap_lambda_value(a))); } - - // operators for other - template - lambda, self, typename unwrap_lambda_type::type> > - operator = (const T_arg& a) const - { typedef lambda_operator, self, typename unwrap_lambda_type::type> lambda_operator_type; - return lambda(lambda_operator_type(this->value_, unwrap_lambda_value(a))); } -}; - - -template -void visit_each(const T_action& _A_action, - const lambda& _A_target) -{ - visit_each(_A_action, _A_target.value_); -} - - -/// Converts a reference into a lambda object. -template -lambda var(T_type& v) -{ return lambda(v); } - -/// Converts a constant reference into a lambda object. -template -lambda var(const T_type& v) -{ return lambda(v); } - - -/** Deduces the type of the object stored in an object of the passed lambda type. - * If the type passed as template argument is no lambda type, - * type is defined to unwrap_reference::type. - */ -template -struct unwrap_lambda_type -{ typedef typename unwrap_reference::type type; }; - -template -struct unwrap_lambda_type > -{ typedef T_type type; }; - - -/** Gets the object stored inside a lambda object. - * Returns the object passed as argument if it is not of type lambda. - */ -template -T_type& unwrap_lambda_value(T_type& a) -{ return a; } - -template -const T_type& unwrap_lambda_value(const T_type& a) -{ return a; } - -template -const T_type& unwrap_lambda_value(const lambda& a) -{ return a.value_; } - -} /* namespace sigc */ - -#endif /* _SIGC_LAMBDA_BASE_HPP_ */ diff --git a/libs/sigc++2/sigc++/adaptors/lambda/group.h b/libs/sigc++2/sigc++/adaptors/lambda/group.h deleted file mode 100644 index 7b7525dc41..0000000000 --- a/libs/sigc++2/sigc++/adaptors/lambda/group.h +++ /dev/null @@ -1,734 +0,0 @@ -// -*- c++ -*- -/* Do not edit! -- generated file */ -#ifndef _SIGC_ADAPTORS_LAMBDA_MACROS_GROUPHM4_ -#define _SIGC_ADAPTORS_LAMBDA_MACROS_GROUPHM4_ -#include - -/** @defgroup group_ group() - * sigc::group() alters an arbitrary functor by rebuilding its arguments from one or more lambda expressions. - * For each parameter that should be passed to the wrapped functor one lambda expression - * has to be passed into group(). Lambda selectors can be used as placeholders for the - * arguments passed into the new functor. Arguments that don't have a placeholder in one - * of the lambda expressions are dropped. - * - * @par Examples: - * @code - * void foo(int, int); - * int bar(int); - * // argument binding ... - * sigc::group(&foo,10,sigc::_1)(20); //fixes the first argument and calls foo(10,20) - * sigc::group(&foo,sigc::_1,30)(40); //fixes the second argument and calls foo(40,30) - * // argument reordering ... - * sigc::group(&foo,sigc::_2,sigc::_1)(1,2); //calls foo(2,1) - * // argument hiding ... - * sigc::group(&foo,sigc::_1,sigc::_2)(1,2,3); //calls foo(1,2) - * // functor composition ... - * sigc::group(&foo,sigc::_1,sigc::group(&bar,sigc::_2))(1,2); //calls foo(1,bar(2)) - * // algebraic expressions ... - * sigc::group(&foo,sigc::_1*sigc::_2,sigc::_1/sigc::_2)(6,3); //calls foo(6*3,6/3) - * @endcode - * - * The functor sigc::group() returns can be passed into - * sigc::signal::connect() directly. - * - * @par Example: - * @code - * sigc::signal some_signal; - * void foo(int); - * some_signal.connect(sigc::group(&foo,sigc::_2)); - * @endcode - * - * Like in sigc::bind() you can bind references to functors by passing the objects - * through the sigc::ref() helper function. - * - * @par Example: - * @code - * int some_int; - * sigc::signal some_signal; - * void foo(int&); - * some_signal.connect(sigc::group(&foo,sigc::ref(some_int))); - * @endcode - * - * If you bind an object of a sigc::trackable derived type to a functor - * by reference, a slot assigned to the group adaptor is cleared automatically - * when the object goes out of scope. - * - * @par Example: - * @code - * struct bar : public sigc::trackable {} some_bar; - * sigc::signal some_signal; - * void foo(bar&); - * some_signal.connect(sigc::group(&foo,sigc::ref(some_bar))); - * // disconnected automatically if some_bar goes out of scope - * @endcode - * - * @ingroup adaptors, lambdas - */ - -namespace sigc { - -template -struct lambda_group1 : public lambda_base -{ - typedef typename functor_trait::result_type result_type; - typedef typename lambda::lambda_type value1_type; - typedef typename adaptor_trait::adaptor_type functor_type; - - template - struct deduce_result_type - { typedef typename functor_type::template deduce_result_type< - typename value1_type::template deduce_result_type< - typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass>::type - >::type type; }; - - result_type - operator ()() const; - - template - typename deduce_result_type::type - operator() (T_arg1 _A_1) const - { return this->func_.SIGC_WORKAROUND_OPERATOR_PARENTHESES< - typename value1_type::template deduce_result_type::type>( - this->value1_.SIGC_WORKAROUND_OPERATOR_PARENTHESES< - typename type_trait::pass>(_A_1)); } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - typename deduce_result_type::type - sun_forte_workaround (T_arg1 _A_1) const - { return this->func_.SIGC_WORKAROUND_OPERATOR_PARENTHESES< - typename value1_type::template deduce_result_type::type>( - this->value1_.SIGC_WORKAROUND_OPERATOR_PARENTHESES< - typename type_trait::pass>(_A_1)); } - #endif //SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - - template - typename deduce_result_type::type - operator() (T_arg1 _A_1,T_arg2 _A_2) const - { return this->func_.SIGC_WORKAROUND_OPERATOR_PARENTHESES< - typename value1_type::template deduce_result_type::type>( - this->value1_.SIGC_WORKAROUND_OPERATOR_PARENTHESES< - typename type_trait::pass,typename type_trait::pass>(_A_1,_A_2)); } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - typename deduce_result_type::type - sun_forte_workaround (T_arg1 _A_1,T_arg2 _A_2) const - { return this->func_.SIGC_WORKAROUND_OPERATOR_PARENTHESES< - typename value1_type::template deduce_result_type::type>( - this->value1_.SIGC_WORKAROUND_OPERATOR_PARENTHESES< - typename type_trait::pass,typename type_trait::pass>(_A_1,_A_2)); } - #endif //SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - - template - typename deduce_result_type::type - operator() (T_arg1 _A_1,T_arg2 _A_2,T_arg3 _A_3) const - { return this->func_.SIGC_WORKAROUND_OPERATOR_PARENTHESES< - typename value1_type::template deduce_result_type::type>( - this->value1_.SIGC_WORKAROUND_OPERATOR_PARENTHESES< - typename type_trait::pass,typename type_trait::pass,typename type_trait::pass>(_A_1,_A_2,_A_3)); } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - typename deduce_result_type::type - sun_forte_workaround (T_arg1 _A_1,T_arg2 _A_2,T_arg3 _A_3) const - { return this->func_.SIGC_WORKAROUND_OPERATOR_PARENTHESES< - typename value1_type::template deduce_result_type::type>( - this->value1_.SIGC_WORKAROUND_OPERATOR_PARENTHESES< - typename type_trait::pass,typename type_trait::pass,typename type_trait::pass>(_A_1,_A_2,_A_3)); } - #endif //SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - - template - typename deduce_result_type::type - operator() (T_arg1 _A_1,T_arg2 _A_2,T_arg3 _A_3,T_arg4 _A_4) const - { return this->func_.SIGC_WORKAROUND_OPERATOR_PARENTHESES< - typename value1_type::template deduce_result_type::type>( - this->value1_.SIGC_WORKAROUND_OPERATOR_PARENTHESES< - typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass>(_A_1,_A_2,_A_3,_A_4)); } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - typename deduce_result_type::type - sun_forte_workaround (T_arg1 _A_1,T_arg2 _A_2,T_arg3 _A_3,T_arg4 _A_4) const - { return this->func_.SIGC_WORKAROUND_OPERATOR_PARENTHESES< - typename value1_type::template deduce_result_type::type>( - this->value1_.SIGC_WORKAROUND_OPERATOR_PARENTHESES< - typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass>(_A_1,_A_2,_A_3,_A_4)); } - #endif //SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - - template - typename deduce_result_type::type - operator() (T_arg1 _A_1,T_arg2 _A_2,T_arg3 _A_3,T_arg4 _A_4,T_arg5 _A_5) const - { return this->func_.SIGC_WORKAROUND_OPERATOR_PARENTHESES< - typename value1_type::template deduce_result_type::type>( - this->value1_.SIGC_WORKAROUND_OPERATOR_PARENTHESES< - typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass>(_A_1,_A_2,_A_3,_A_4,_A_5)); } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - typename deduce_result_type::type - sun_forte_workaround (T_arg1 _A_1,T_arg2 _A_2,T_arg3 _A_3,T_arg4 _A_4,T_arg5 _A_5) const - { return this->func_.SIGC_WORKAROUND_OPERATOR_PARENTHESES< - typename value1_type::template deduce_result_type::type>( - this->value1_.SIGC_WORKAROUND_OPERATOR_PARENTHESES< - typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass>(_A_1,_A_2,_A_3,_A_4,_A_5)); } - #endif //SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - - template - typename deduce_result_type::type - operator() (T_arg1 _A_1,T_arg2 _A_2,T_arg3 _A_3,T_arg4 _A_4,T_arg5 _A_5,T_arg6 _A_6) const - { return this->func_.SIGC_WORKAROUND_OPERATOR_PARENTHESES< - typename value1_type::template deduce_result_type::type>( - this->value1_.SIGC_WORKAROUND_OPERATOR_PARENTHESES< - typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass>(_A_1,_A_2,_A_3,_A_4,_A_5,_A_6)); } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - typename deduce_result_type::type - sun_forte_workaround (T_arg1 _A_1,T_arg2 _A_2,T_arg3 _A_3,T_arg4 _A_4,T_arg5 _A_5,T_arg6 _A_6) const - { return this->func_.SIGC_WORKAROUND_OPERATOR_PARENTHESES< - typename value1_type::template deduce_result_type::type>( - this->value1_.SIGC_WORKAROUND_OPERATOR_PARENTHESES< - typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass>(_A_1,_A_2,_A_3,_A_4,_A_5,_A_6)); } - #endif //SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - - template - typename deduce_result_type::type - operator() (T_arg1 _A_1,T_arg2 _A_2,T_arg3 _A_3,T_arg4 _A_4,T_arg5 _A_5,T_arg6 _A_6,T_arg7 _A_7) const - { return this->func_.SIGC_WORKAROUND_OPERATOR_PARENTHESES< - typename value1_type::template deduce_result_type::type>( - this->value1_.SIGC_WORKAROUND_OPERATOR_PARENTHESES< - typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass>(_A_1,_A_2,_A_3,_A_4,_A_5,_A_6,_A_7)); } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - typename deduce_result_type::type - sun_forte_workaround (T_arg1 _A_1,T_arg2 _A_2,T_arg3 _A_3,T_arg4 _A_4,T_arg5 _A_5,T_arg6 _A_6,T_arg7 _A_7) const - { return this->func_.SIGC_WORKAROUND_OPERATOR_PARENTHESES< - typename value1_type::template deduce_result_type::type>( - this->value1_.SIGC_WORKAROUND_OPERATOR_PARENTHESES< - typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass>(_A_1,_A_2,_A_3,_A_4,_A_5,_A_6,_A_7)); } - #endif //SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - - lambda_group1(typename type_trait::take _A_func, typename type_trait::take _A_1) - : value1_(_A_1), func_(_A_func) {} - - value1_type value1_; - mutable functor_type func_; -}; - -template -typename lambda_group1::result_type -lambda_group1::operator ()() const - { return func_(value1_()); } - - -template -void visit_each(const T_action& _A_action, - const lambda_group1& _A_target) -{ - visit_each(_A_action, _A_target.value1_); - visit_each(_A_action, _A_target.func_); -} - - -template -struct lambda_group2 : public lambda_base -{ - typedef typename functor_trait::result_type result_type; - typedef typename lambda::lambda_type value1_type; - typedef typename lambda::lambda_type value2_type; - typedef typename adaptor_trait::adaptor_type functor_type; - - template - struct deduce_result_type - { typedef typename functor_type::template deduce_result_type< - typename value1_type::template deduce_result_type< - typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass>::type, - typename value2_type::template deduce_result_type< - typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass>::type - >::type type; }; - - result_type - operator ()() const; - - template - typename deduce_result_type::type - operator() (T_arg1 _A_1) const - { return this->func_.SIGC_WORKAROUND_OPERATOR_PARENTHESES< - typename value1_type::template deduce_result_type::type, - typename value2_type::template deduce_result_type::type>( - this->value1_.SIGC_WORKAROUND_OPERATOR_PARENTHESES< - typename type_trait::pass>(_A_1), - this->value2_.SIGC_WORKAROUND_OPERATOR_PARENTHESES< - typename type_trait::pass>(_A_1)); } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - typename deduce_result_type::type - sun_forte_workaround (T_arg1 _A_1) const - { return this->func_.SIGC_WORKAROUND_OPERATOR_PARENTHESES< - typename value1_type::template deduce_result_type::type, - typename value2_type::template deduce_result_type::type>( - this->value1_.SIGC_WORKAROUND_OPERATOR_PARENTHESES< - typename type_trait::pass>(_A_1), - this->value2_.SIGC_WORKAROUND_OPERATOR_PARENTHESES< - typename type_trait::pass>(_A_1)); } - #endif //SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - - template - typename deduce_result_type::type - operator() (T_arg1 _A_1,T_arg2 _A_2) const - { return this->func_.SIGC_WORKAROUND_OPERATOR_PARENTHESES< - typename value1_type::template deduce_result_type::type, - typename value2_type::template deduce_result_type::type>( - this->value1_.SIGC_WORKAROUND_OPERATOR_PARENTHESES< - typename type_trait::pass,typename type_trait::pass>(_A_1,_A_2), - this->value2_.SIGC_WORKAROUND_OPERATOR_PARENTHESES< - typename type_trait::pass,typename type_trait::pass>(_A_1,_A_2)); } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - typename deduce_result_type::type - sun_forte_workaround (T_arg1 _A_1,T_arg2 _A_2) const - { return this->func_.SIGC_WORKAROUND_OPERATOR_PARENTHESES< - typename value1_type::template deduce_result_type::type, - typename value2_type::template deduce_result_type::type>( - this->value1_.SIGC_WORKAROUND_OPERATOR_PARENTHESES< - typename type_trait::pass,typename type_trait::pass>(_A_1,_A_2), - this->value2_.SIGC_WORKAROUND_OPERATOR_PARENTHESES< - typename type_trait::pass,typename type_trait::pass>(_A_1,_A_2)); } - #endif //SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - - template - typename deduce_result_type::type - operator() (T_arg1 _A_1,T_arg2 _A_2,T_arg3 _A_3) const - { return this->func_.SIGC_WORKAROUND_OPERATOR_PARENTHESES< - typename value1_type::template deduce_result_type::type, - typename value2_type::template deduce_result_type::type>( - this->value1_.SIGC_WORKAROUND_OPERATOR_PARENTHESES< - typename type_trait::pass,typename type_trait::pass,typename type_trait::pass>(_A_1,_A_2,_A_3), - this->value2_.SIGC_WORKAROUND_OPERATOR_PARENTHESES< - typename type_trait::pass,typename type_trait::pass,typename type_trait::pass>(_A_1,_A_2,_A_3)); } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - typename deduce_result_type::type - sun_forte_workaround (T_arg1 _A_1,T_arg2 _A_2,T_arg3 _A_3) const - { return this->func_.SIGC_WORKAROUND_OPERATOR_PARENTHESES< - typename value1_type::template deduce_result_type::type, - typename value2_type::template deduce_result_type::type>( - this->value1_.SIGC_WORKAROUND_OPERATOR_PARENTHESES< - typename type_trait::pass,typename type_trait::pass,typename type_trait::pass>(_A_1,_A_2,_A_3), - this->value2_.SIGC_WORKAROUND_OPERATOR_PARENTHESES< - typename type_trait::pass,typename type_trait::pass,typename type_trait::pass>(_A_1,_A_2,_A_3)); } - #endif //SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - - template - typename deduce_result_type::type - operator() (T_arg1 _A_1,T_arg2 _A_2,T_arg3 _A_3,T_arg4 _A_4) const - { return this->func_.SIGC_WORKAROUND_OPERATOR_PARENTHESES< - typename value1_type::template deduce_result_type::type, - typename value2_type::template deduce_result_type::type>( - this->value1_.SIGC_WORKAROUND_OPERATOR_PARENTHESES< - typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass>(_A_1,_A_2,_A_3,_A_4), - this->value2_.SIGC_WORKAROUND_OPERATOR_PARENTHESES< - typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass>(_A_1,_A_2,_A_3,_A_4)); } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - typename deduce_result_type::type - sun_forte_workaround (T_arg1 _A_1,T_arg2 _A_2,T_arg3 _A_3,T_arg4 _A_4) const - { return this->func_.SIGC_WORKAROUND_OPERATOR_PARENTHESES< - typename value1_type::template deduce_result_type::type, - typename value2_type::template deduce_result_type::type>( - this->value1_.SIGC_WORKAROUND_OPERATOR_PARENTHESES< - typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass>(_A_1,_A_2,_A_3,_A_4), - this->value2_.SIGC_WORKAROUND_OPERATOR_PARENTHESES< - typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass>(_A_1,_A_2,_A_3,_A_4)); } - #endif //SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - - template - typename deduce_result_type::type - operator() (T_arg1 _A_1,T_arg2 _A_2,T_arg3 _A_3,T_arg4 _A_4,T_arg5 _A_5) const - { return this->func_.SIGC_WORKAROUND_OPERATOR_PARENTHESES< - typename value1_type::template deduce_result_type::type, - typename value2_type::template deduce_result_type::type>( - this->value1_.SIGC_WORKAROUND_OPERATOR_PARENTHESES< - typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass>(_A_1,_A_2,_A_3,_A_4,_A_5), - this->value2_.SIGC_WORKAROUND_OPERATOR_PARENTHESES< - typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass>(_A_1,_A_2,_A_3,_A_4,_A_5)); } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - typename deduce_result_type::type - sun_forte_workaround (T_arg1 _A_1,T_arg2 _A_2,T_arg3 _A_3,T_arg4 _A_4,T_arg5 _A_5) const - { return this->func_.SIGC_WORKAROUND_OPERATOR_PARENTHESES< - typename value1_type::template deduce_result_type::type, - typename value2_type::template deduce_result_type::type>( - this->value1_.SIGC_WORKAROUND_OPERATOR_PARENTHESES< - typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass>(_A_1,_A_2,_A_3,_A_4,_A_5), - this->value2_.SIGC_WORKAROUND_OPERATOR_PARENTHESES< - typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass>(_A_1,_A_2,_A_3,_A_4,_A_5)); } - #endif //SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - - template - typename deduce_result_type::type - operator() (T_arg1 _A_1,T_arg2 _A_2,T_arg3 _A_3,T_arg4 _A_4,T_arg5 _A_5,T_arg6 _A_6) const - { return this->func_.SIGC_WORKAROUND_OPERATOR_PARENTHESES< - typename value1_type::template deduce_result_type::type, - typename value2_type::template deduce_result_type::type>( - this->value1_.SIGC_WORKAROUND_OPERATOR_PARENTHESES< - typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass>(_A_1,_A_2,_A_3,_A_4,_A_5,_A_6), - this->value2_.SIGC_WORKAROUND_OPERATOR_PARENTHESES< - typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass>(_A_1,_A_2,_A_3,_A_4,_A_5,_A_6)); } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - typename deduce_result_type::type - sun_forte_workaround (T_arg1 _A_1,T_arg2 _A_2,T_arg3 _A_3,T_arg4 _A_4,T_arg5 _A_5,T_arg6 _A_6) const - { return this->func_.SIGC_WORKAROUND_OPERATOR_PARENTHESES< - typename value1_type::template deduce_result_type::type, - typename value2_type::template deduce_result_type::type>( - this->value1_.SIGC_WORKAROUND_OPERATOR_PARENTHESES< - typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass>(_A_1,_A_2,_A_3,_A_4,_A_5,_A_6), - this->value2_.SIGC_WORKAROUND_OPERATOR_PARENTHESES< - typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass>(_A_1,_A_2,_A_3,_A_4,_A_5,_A_6)); } - #endif //SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - - template - typename deduce_result_type::type - operator() (T_arg1 _A_1,T_arg2 _A_2,T_arg3 _A_3,T_arg4 _A_4,T_arg5 _A_5,T_arg6 _A_6,T_arg7 _A_7) const - { return this->func_.SIGC_WORKAROUND_OPERATOR_PARENTHESES< - typename value1_type::template deduce_result_type::type, - typename value2_type::template deduce_result_type::type>( - this->value1_.SIGC_WORKAROUND_OPERATOR_PARENTHESES< - typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass>(_A_1,_A_2,_A_3,_A_4,_A_5,_A_6,_A_7), - this->value2_.SIGC_WORKAROUND_OPERATOR_PARENTHESES< - typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass>(_A_1,_A_2,_A_3,_A_4,_A_5,_A_6,_A_7)); } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - typename deduce_result_type::type - sun_forte_workaround (T_arg1 _A_1,T_arg2 _A_2,T_arg3 _A_3,T_arg4 _A_4,T_arg5 _A_5,T_arg6 _A_6,T_arg7 _A_7) const - { return this->func_.SIGC_WORKAROUND_OPERATOR_PARENTHESES< - typename value1_type::template deduce_result_type::type, - typename value2_type::template deduce_result_type::type>( - this->value1_.SIGC_WORKAROUND_OPERATOR_PARENTHESES< - typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass>(_A_1,_A_2,_A_3,_A_4,_A_5,_A_6,_A_7), - this->value2_.SIGC_WORKAROUND_OPERATOR_PARENTHESES< - typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass>(_A_1,_A_2,_A_3,_A_4,_A_5,_A_6,_A_7)); } - #endif //SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - - lambda_group2(typename type_trait::take _A_func, typename type_trait::take _A_1,typename type_trait::take _A_2) - : value1_(_A_1),value2_(_A_2), func_(_A_func) {} - - value1_type value1_; - value2_type value2_; - mutable functor_type func_; -}; - -template -typename lambda_group2::result_type -lambda_group2::operator ()() const - { return func_(value1_(),value2_()); } - - -template -void visit_each(const T_action& _A_action, - const lambda_group2& _A_target) -{ - visit_each(_A_action, _A_target.value1_); - visit_each(_A_action, _A_target.value2_); - visit_each(_A_action, _A_target.func_); -} - - -template -struct lambda_group3 : public lambda_base -{ - typedef typename functor_trait::result_type result_type; - typedef typename lambda::lambda_type value1_type; - typedef typename lambda::lambda_type value2_type; - typedef typename lambda::lambda_type value3_type; - typedef typename adaptor_trait::adaptor_type functor_type; - - template - struct deduce_result_type - { typedef typename functor_type::template deduce_result_type< - typename value1_type::template deduce_result_type< - typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass>::type, - typename value2_type::template deduce_result_type< - typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass>::type, - typename value3_type::template deduce_result_type< - typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass>::type - >::type type; }; - - result_type - operator ()() const; - - template - typename deduce_result_type::type - operator() (T_arg1 _A_1) const - { return this->func_.SIGC_WORKAROUND_OPERATOR_PARENTHESES< - typename value1_type::template deduce_result_type::type, - typename value2_type::template deduce_result_type::type, - typename value3_type::template deduce_result_type::type>( - this->value1_.SIGC_WORKAROUND_OPERATOR_PARENTHESES< - typename type_trait::pass>(_A_1), - this->value2_.SIGC_WORKAROUND_OPERATOR_PARENTHESES< - typename type_trait::pass>(_A_1), - this->value3_.SIGC_WORKAROUND_OPERATOR_PARENTHESES< - typename type_trait::pass>(_A_1)); } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - typename deduce_result_type::type - sun_forte_workaround (T_arg1 _A_1) const - { return this->func_.SIGC_WORKAROUND_OPERATOR_PARENTHESES< - typename value1_type::template deduce_result_type::type, - typename value2_type::template deduce_result_type::type, - typename value3_type::template deduce_result_type::type>( - this->value1_.SIGC_WORKAROUND_OPERATOR_PARENTHESES< - typename type_trait::pass>(_A_1), - this->value2_.SIGC_WORKAROUND_OPERATOR_PARENTHESES< - typename type_trait::pass>(_A_1), - this->value3_.SIGC_WORKAROUND_OPERATOR_PARENTHESES< - typename type_trait::pass>(_A_1)); } - #endif //SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - - template - typename deduce_result_type::type - operator() (T_arg1 _A_1,T_arg2 _A_2) const - { return this->func_.SIGC_WORKAROUND_OPERATOR_PARENTHESES< - typename value1_type::template deduce_result_type::type, - typename value2_type::template deduce_result_type::type, - typename value3_type::template deduce_result_type::type>( - this->value1_.SIGC_WORKAROUND_OPERATOR_PARENTHESES< - typename type_trait::pass,typename type_trait::pass>(_A_1,_A_2), - this->value2_.SIGC_WORKAROUND_OPERATOR_PARENTHESES< - typename type_trait::pass,typename type_trait::pass>(_A_1,_A_2), - this->value3_.SIGC_WORKAROUND_OPERATOR_PARENTHESES< - typename type_trait::pass,typename type_trait::pass>(_A_1,_A_2)); } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - typename deduce_result_type::type - sun_forte_workaround (T_arg1 _A_1,T_arg2 _A_2) const - { return this->func_.SIGC_WORKAROUND_OPERATOR_PARENTHESES< - typename value1_type::template deduce_result_type::type, - typename value2_type::template deduce_result_type::type, - typename value3_type::template deduce_result_type::type>( - this->value1_.SIGC_WORKAROUND_OPERATOR_PARENTHESES< - typename type_trait::pass,typename type_trait::pass>(_A_1,_A_2), - this->value2_.SIGC_WORKAROUND_OPERATOR_PARENTHESES< - typename type_trait::pass,typename type_trait::pass>(_A_1,_A_2), - this->value3_.SIGC_WORKAROUND_OPERATOR_PARENTHESES< - typename type_trait::pass,typename type_trait::pass>(_A_1,_A_2)); } - #endif //SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - - template - typename deduce_result_type::type - operator() (T_arg1 _A_1,T_arg2 _A_2,T_arg3 _A_3) const - { return this->func_.SIGC_WORKAROUND_OPERATOR_PARENTHESES< - typename value1_type::template deduce_result_type::type, - typename value2_type::template deduce_result_type::type, - typename value3_type::template deduce_result_type::type>( - this->value1_.SIGC_WORKAROUND_OPERATOR_PARENTHESES< - typename type_trait::pass,typename type_trait::pass,typename type_trait::pass>(_A_1,_A_2,_A_3), - this->value2_.SIGC_WORKAROUND_OPERATOR_PARENTHESES< - typename type_trait::pass,typename type_trait::pass,typename type_trait::pass>(_A_1,_A_2,_A_3), - this->value3_.SIGC_WORKAROUND_OPERATOR_PARENTHESES< - typename type_trait::pass,typename type_trait::pass,typename type_trait::pass>(_A_1,_A_2,_A_3)); } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - typename deduce_result_type::type - sun_forte_workaround (T_arg1 _A_1,T_arg2 _A_2,T_arg3 _A_3) const - { return this->func_.SIGC_WORKAROUND_OPERATOR_PARENTHESES< - typename value1_type::template deduce_result_type::type, - typename value2_type::template deduce_result_type::type, - typename value3_type::template deduce_result_type::type>( - this->value1_.SIGC_WORKAROUND_OPERATOR_PARENTHESES< - typename type_trait::pass,typename type_trait::pass,typename type_trait::pass>(_A_1,_A_2,_A_3), - this->value2_.SIGC_WORKAROUND_OPERATOR_PARENTHESES< - typename type_trait::pass,typename type_trait::pass,typename type_trait::pass>(_A_1,_A_2,_A_3), - this->value3_.SIGC_WORKAROUND_OPERATOR_PARENTHESES< - typename type_trait::pass,typename type_trait::pass,typename type_trait::pass>(_A_1,_A_2,_A_3)); } - #endif //SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - - template - typename deduce_result_type::type - operator() (T_arg1 _A_1,T_arg2 _A_2,T_arg3 _A_3,T_arg4 _A_4) const - { return this->func_.SIGC_WORKAROUND_OPERATOR_PARENTHESES< - typename value1_type::template deduce_result_type::type, - typename value2_type::template deduce_result_type::type, - typename value3_type::template deduce_result_type::type>( - this->value1_.SIGC_WORKAROUND_OPERATOR_PARENTHESES< - typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass>(_A_1,_A_2,_A_3,_A_4), - this->value2_.SIGC_WORKAROUND_OPERATOR_PARENTHESES< - typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass>(_A_1,_A_2,_A_3,_A_4), - this->value3_.SIGC_WORKAROUND_OPERATOR_PARENTHESES< - typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass>(_A_1,_A_2,_A_3,_A_4)); } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - typename deduce_result_type::type - sun_forte_workaround (T_arg1 _A_1,T_arg2 _A_2,T_arg3 _A_3,T_arg4 _A_4) const - { return this->func_.SIGC_WORKAROUND_OPERATOR_PARENTHESES< - typename value1_type::template deduce_result_type::type, - typename value2_type::template deduce_result_type::type, - typename value3_type::template deduce_result_type::type>( - this->value1_.SIGC_WORKAROUND_OPERATOR_PARENTHESES< - typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass>(_A_1,_A_2,_A_3,_A_4), - this->value2_.SIGC_WORKAROUND_OPERATOR_PARENTHESES< - typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass>(_A_1,_A_2,_A_3,_A_4), - this->value3_.SIGC_WORKAROUND_OPERATOR_PARENTHESES< - typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass>(_A_1,_A_2,_A_3,_A_4)); } - #endif //SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - - template - typename deduce_result_type::type - operator() (T_arg1 _A_1,T_arg2 _A_2,T_arg3 _A_3,T_arg4 _A_4,T_arg5 _A_5) const - { return this->func_.SIGC_WORKAROUND_OPERATOR_PARENTHESES< - typename value1_type::template deduce_result_type::type, - typename value2_type::template deduce_result_type::type, - typename value3_type::template deduce_result_type::type>( - this->value1_.SIGC_WORKAROUND_OPERATOR_PARENTHESES< - typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass>(_A_1,_A_2,_A_3,_A_4,_A_5), - this->value2_.SIGC_WORKAROUND_OPERATOR_PARENTHESES< - typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass>(_A_1,_A_2,_A_3,_A_4,_A_5), - this->value3_.SIGC_WORKAROUND_OPERATOR_PARENTHESES< - typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass>(_A_1,_A_2,_A_3,_A_4,_A_5)); } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - typename deduce_result_type::type - sun_forte_workaround (T_arg1 _A_1,T_arg2 _A_2,T_arg3 _A_3,T_arg4 _A_4,T_arg5 _A_5) const - { return this->func_.SIGC_WORKAROUND_OPERATOR_PARENTHESES< - typename value1_type::template deduce_result_type::type, - typename value2_type::template deduce_result_type::type, - typename value3_type::template deduce_result_type::type>( - this->value1_.SIGC_WORKAROUND_OPERATOR_PARENTHESES< - typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass>(_A_1,_A_2,_A_3,_A_4,_A_5), - this->value2_.SIGC_WORKAROUND_OPERATOR_PARENTHESES< - typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass>(_A_1,_A_2,_A_3,_A_4,_A_5), - this->value3_.SIGC_WORKAROUND_OPERATOR_PARENTHESES< - typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass>(_A_1,_A_2,_A_3,_A_4,_A_5)); } - #endif //SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - - template - typename deduce_result_type::type - operator() (T_arg1 _A_1,T_arg2 _A_2,T_arg3 _A_3,T_arg4 _A_4,T_arg5 _A_5,T_arg6 _A_6) const - { return this->func_.SIGC_WORKAROUND_OPERATOR_PARENTHESES< - typename value1_type::template deduce_result_type::type, - typename value2_type::template deduce_result_type::type, - typename value3_type::template deduce_result_type::type>( - this->value1_.SIGC_WORKAROUND_OPERATOR_PARENTHESES< - typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass>(_A_1,_A_2,_A_3,_A_4,_A_5,_A_6), - this->value2_.SIGC_WORKAROUND_OPERATOR_PARENTHESES< - typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass>(_A_1,_A_2,_A_3,_A_4,_A_5,_A_6), - this->value3_.SIGC_WORKAROUND_OPERATOR_PARENTHESES< - typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass>(_A_1,_A_2,_A_3,_A_4,_A_5,_A_6)); } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - typename deduce_result_type::type - sun_forte_workaround (T_arg1 _A_1,T_arg2 _A_2,T_arg3 _A_3,T_arg4 _A_4,T_arg5 _A_5,T_arg6 _A_6) const - { return this->func_.SIGC_WORKAROUND_OPERATOR_PARENTHESES< - typename value1_type::template deduce_result_type::type, - typename value2_type::template deduce_result_type::type, - typename value3_type::template deduce_result_type::type>( - this->value1_.SIGC_WORKAROUND_OPERATOR_PARENTHESES< - typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass>(_A_1,_A_2,_A_3,_A_4,_A_5,_A_6), - this->value2_.SIGC_WORKAROUND_OPERATOR_PARENTHESES< - typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass>(_A_1,_A_2,_A_3,_A_4,_A_5,_A_6), - this->value3_.SIGC_WORKAROUND_OPERATOR_PARENTHESES< - typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass>(_A_1,_A_2,_A_3,_A_4,_A_5,_A_6)); } - #endif //SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - - template - typename deduce_result_type::type - operator() (T_arg1 _A_1,T_arg2 _A_2,T_arg3 _A_3,T_arg4 _A_4,T_arg5 _A_5,T_arg6 _A_6,T_arg7 _A_7) const - { return this->func_.SIGC_WORKAROUND_OPERATOR_PARENTHESES< - typename value1_type::template deduce_result_type::type, - typename value2_type::template deduce_result_type::type, - typename value3_type::template deduce_result_type::type>( - this->value1_.SIGC_WORKAROUND_OPERATOR_PARENTHESES< - typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass>(_A_1,_A_2,_A_3,_A_4,_A_5,_A_6,_A_7), - this->value2_.SIGC_WORKAROUND_OPERATOR_PARENTHESES< - typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass>(_A_1,_A_2,_A_3,_A_4,_A_5,_A_6,_A_7), - this->value3_.SIGC_WORKAROUND_OPERATOR_PARENTHESES< - typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass>(_A_1,_A_2,_A_3,_A_4,_A_5,_A_6,_A_7)); } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - typename deduce_result_type::type - sun_forte_workaround (T_arg1 _A_1,T_arg2 _A_2,T_arg3 _A_3,T_arg4 _A_4,T_arg5 _A_5,T_arg6 _A_6,T_arg7 _A_7) const - { return this->func_.SIGC_WORKAROUND_OPERATOR_PARENTHESES< - typename value1_type::template deduce_result_type::type, - typename value2_type::template deduce_result_type::type, - typename value3_type::template deduce_result_type::type>( - this->value1_.SIGC_WORKAROUND_OPERATOR_PARENTHESES< - typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass>(_A_1,_A_2,_A_3,_A_4,_A_5,_A_6,_A_7), - this->value2_.SIGC_WORKAROUND_OPERATOR_PARENTHESES< - typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass>(_A_1,_A_2,_A_3,_A_4,_A_5,_A_6,_A_7), - this->value3_.SIGC_WORKAROUND_OPERATOR_PARENTHESES< - typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass>(_A_1,_A_2,_A_3,_A_4,_A_5,_A_6,_A_7)); } - #endif //SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - - lambda_group3(typename type_trait::take _A_func, typename type_trait::take _A_1,typename type_trait::take _A_2,typename type_trait::take _A_3) - : value1_(_A_1),value2_(_A_2),value3_(_A_3), func_(_A_func) {} - - value1_type value1_; - value2_type value2_; - value3_type value3_; - mutable functor_type func_; -}; - -template -typename lambda_group3::result_type -lambda_group3::operator ()() const - { return func_(value1_(),value2_(),value3_()); } - - -template -void visit_each(const T_action& _A_action, - const lambda_group3& _A_target) -{ - visit_each(_A_action, _A_target.value1_); - visit_each(_A_action, _A_target.value2_); - visit_each(_A_action, _A_target.value3_); - visit_each(_A_action, _A_target.func_); -} - - - -template -lambda::type> > -group(const T_functor& _A_func, T_type1 _A_1) -{ - typedef lambda_group1::type> T_lambda; - return lambda(T_lambda(_A_func, _A_1)); -} - -template -lambda::type,typename unwrap_reference::type> > -group(const T_functor& _A_func, T_type1 _A_1,T_type2 _A_2) -{ - typedef lambda_group2::type,typename unwrap_reference::type> T_lambda; - return lambda(T_lambda(_A_func, _A_1,_A_2)); -} - -template -lambda::type,typename unwrap_reference::type,typename unwrap_reference::type> > -group(const T_functor& _A_func, T_type1 _A_1,T_type2 _A_2,T_type3 _A_3) -{ - typedef lambda_group3::type,typename unwrap_reference::type,typename unwrap_reference::type> T_lambda; - return lambda(T_lambda(_A_func, _A_1,_A_2,_A_3)); -} - - - -} /* namespace sigc */ -#endif /* _SIGC_ADAPTORS_LAMBDA_MACROS_GROUPHM4_ */ diff --git a/libs/sigc++2/sigc++/adaptors/lambda/lambda.cc b/libs/sigc++2/sigc++/adaptors/lambda/lambda.cc deleted file mode 100644 index 78fd516df2..0000000000 --- a/libs/sigc++2/sigc++/adaptors/lambda/lambda.cc +++ /dev/null @@ -1,15 +0,0 @@ -// -*- c++ -*- -/* Do not edit! -- generated file */ -#include - -namespace sigc { - -const lambda _1; -const lambda _2; -const lambda _3; -const lambda _4; -const lambda _5; -const lambda _6; -const lambda _7; - -} /* namespace sigc */ diff --git a/libs/sigc++2/sigc++/adaptors/lambda/lambda.h b/libs/sigc++2/sigc++/adaptors/lambda/lambda.h deleted file mode 100644 index 487522ad10..0000000000 --- a/libs/sigc++2/sigc++/adaptors/lambda/lambda.h +++ /dev/null @@ -1,28 +0,0 @@ -// -*- c++ -*- -/* - * Copyright 2002, The libsigc++ Development Team - * - * 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.1 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 - * - */ -#ifndef _SIGC_LAMBDA_HPP_ -#define _SIGC_LAMBDA_HPP_ - -#include -#include -#include -#include - -#endif /* _SIGC_LAMBDA_HPP_ */ diff --git a/libs/sigc++2/sigc++/adaptors/lambda/operator.h b/libs/sigc++2/sigc++/adaptors/lambda/operator.h deleted file mode 100644 index 5d9e00bcde..0000000000 --- a/libs/sigc++2/sigc++/adaptors/lambda/operator.h +++ /dev/null @@ -1,1697 +0,0 @@ -// -*- c++ -*- -/* Do not edit! -- generated file */ -#ifndef _SIGC_LAMBDA_OPERATOR_HPP_ -#define _SIGC_LAMBDA_OPERATOR_HPP_ -#include - -namespace sigc { - -/** Deduces the base type of a reference or a pointer. - * @ingroup internal - */ -template -struct dereference_trait - { typedef void type; }; - -template -struct dereference_trait - { typedef T_type type; }; - -template -struct dereference_trait - { typedef const T_type type; }; - -template -struct dereference_trait - { typedef T_type type; }; - -template -struct dereference_trait - { typedef const T_type type; }; - -template -struct dereference_trait - { typedef T_type type; }; - -template -struct dereference_trait - { typedef const T_type type; }; - -template -struct arithmetic {}; - -template -struct bitwise {}; - -template -struct logical {}; - -template -struct relational {}; - -template -struct arithmetic_assign {}; - -template -struct bitwise_assign {}; - -template -struct other {}; - -template -struct unary_arithmetic {}; - -template -struct unary_bitwise {}; - -template -struct unary_logical {}; - -template -struct unary_other {}; - -template -struct cast_ {}; - -struct plus {}; -struct minus {}; -struct multiplies {}; -struct divides {}; -struct modulus {}; -struct leftshift {}; -struct rightshift {}; -struct and_ {}; -struct or_ {}; -struct xor_ {}; -struct less {}; -struct greater {}; -struct less_equal {}; -struct greater_equal {}; -struct equal_to {}; -struct not_equal_to {}; -struct subscript {}; -struct assign {}; -struct pre_increment {}; -struct pre_decrement {}; -struct negate {}; -struct not_ {}; -struct address {}; -struct dereference {}; -struct reinterpret_ {}; -struct static_ {}; -struct dynamic_ {}; - -template -struct lambda_action_deduce_result_type - { typedef typename type_trait::type type; }; // TODO: e.g. T_test1=int, T_test2=double yields int but it should yield double ! - -template -struct lambda_action_deduce_result_type, T_test1, T_test2> - { typedef bool type; }; - -template -struct lambda_action_deduce_result_type, T_test1, T_test2> - { typedef bool type; }; - -template -struct lambda_action_deduce_result_type, T_test1, T_test2> - { typedef T_test1 type; }; - -template -struct lambda_action_deduce_result_type, T_test1, T_test2> - { typedef T_test1 type; }; - -template -struct lambda_action_deduce_result_type, T_test1, T_test2> - { typedef typename type_trait::type>::pass type; }; - -template -struct lambda_action_unary_deduce_result_type - { typedef typename type_trait::type type; }; - -template -struct lambda_action_convert_deduce_result_type - { typedef typename type_trait::type type; }; - -template -struct lambda_action_unary_deduce_result_type, T_test> - { typedef bool type; }; - -template -struct lambda_action_unary_deduce_result_type, T_test> - { typedef typename type_trait::pointer type; }; - -template -struct lambda_action_unary_deduce_result_type, T_test> - { typedef typename type_trait::type>::pass type; }; - - - -template -struct lambda_action {}; - -template -struct lambda_action_unary {}; - -template -struct lambda_action_convert {}; - -template <> -struct lambda_action > -{ - template - static typename lambda_action_deduce_result_type, T_arg1, T_arg2>::type - do_action(T_arg1 _A_1, T_arg2 _A_2) - { return _A_1 + _A_2; } -}; - -template <> -struct lambda_action > -{ - template - static typename lambda_action_deduce_result_type, T_arg1, T_arg2>::type - do_action(T_arg1 _A_1, T_arg2 _A_2) - { return _A_1 - _A_2; } -}; - -template <> -struct lambda_action > -{ - template - static typename lambda_action_deduce_result_type, T_arg1, T_arg2>::type - do_action(T_arg1 _A_1, T_arg2 _A_2) - { return _A_1 * _A_2; } -}; - -template <> -struct lambda_action > -{ - template - static typename lambda_action_deduce_result_type, T_arg1, T_arg2>::type - do_action(T_arg1 _A_1, T_arg2 _A_2) - { return _A_1 / _A_2; } -}; - -template <> -struct lambda_action > -{ - template - static typename lambda_action_deduce_result_type, T_arg1, T_arg2>::type - do_action(T_arg1 _A_1, T_arg2 _A_2) - { return _A_1 % _A_2; } -}; - -template <> -struct lambda_action > -{ - template - static typename lambda_action_deduce_result_type, T_arg1, T_arg2>::type - do_action(T_arg1 _A_1, T_arg2 _A_2) - { return _A_1 << _A_2; } -}; - -template <> -struct lambda_action > -{ - template - static typename lambda_action_deduce_result_type, T_arg1, T_arg2>::type - do_action(T_arg1 _A_1, T_arg2 _A_2) - { return _A_1 >> _A_2; } -}; - -template <> -struct lambda_action > -{ - template - static typename lambda_action_deduce_result_type, T_arg1, T_arg2>::type - do_action(T_arg1 _A_1, T_arg2 _A_2) - { return _A_1 & _A_2; } -}; - -template <> -struct lambda_action > -{ - template - static typename lambda_action_deduce_result_type, T_arg1, T_arg2>::type - do_action(T_arg1 _A_1, T_arg2 _A_2) - { return _A_1 | _A_2; } -}; - -template <> -struct lambda_action > -{ - template - static typename lambda_action_deduce_result_type, T_arg1, T_arg2>::type - do_action(T_arg1 _A_1, T_arg2 _A_2) - { return _A_1 ^ _A_2; } -}; - -template <> -struct lambda_action > -{ - template - static typename lambda_action_deduce_result_type, T_arg1, T_arg2>::type - do_action(T_arg1 _A_1, T_arg2 _A_2) - { return _A_1 && _A_2; } -}; - -template <> -struct lambda_action > -{ - template - static typename lambda_action_deduce_result_type, T_arg1, T_arg2>::type - do_action(T_arg1 _A_1, T_arg2 _A_2) - { return _A_1 || _A_2; } -}; - -template <> -struct lambda_action > -{ - template - static typename lambda_action_deduce_result_type, T_arg1, T_arg2>::type - do_action(T_arg1 _A_1, T_arg2 _A_2) - { return _A_1 < _A_2; } -}; - -template <> -struct lambda_action > -{ - template - static typename lambda_action_deduce_result_type, T_arg1, T_arg2>::type - do_action(T_arg1 _A_1, T_arg2 _A_2) - { return _A_1 > _A_2; } -}; - -template <> -struct lambda_action > -{ - template - static typename lambda_action_deduce_result_type, T_arg1, T_arg2>::type - do_action(T_arg1 _A_1, T_arg2 _A_2) - { return _A_1 <= _A_2; } -}; - -template <> -struct lambda_action > -{ - template - static typename lambda_action_deduce_result_type, T_arg1, T_arg2>::type - do_action(T_arg1 _A_1, T_arg2 _A_2) - { return _A_1 >= _A_2; } -}; - -template <> -struct lambda_action > -{ - template - static typename lambda_action_deduce_result_type, T_arg1, T_arg2>::type - do_action(T_arg1 _A_1, T_arg2 _A_2) - { return _A_1 == _A_2; } -}; - -template <> -struct lambda_action > -{ - template - static typename lambda_action_deduce_result_type, T_arg1, T_arg2>::type - do_action(T_arg1 _A_1, T_arg2 _A_2) - { return _A_1 != _A_2; } -}; - -template <> -struct lambda_action > -{ - template - static typename lambda_action_deduce_result_type, T_arg1, T_arg2>::type - do_action(T_arg1 _A_1, T_arg2 _A_2) - { return _A_1 += _A_2; } -}; - -template <> -struct lambda_action > -{ - template - static typename lambda_action_deduce_result_type, T_arg1, T_arg2>::type - do_action(T_arg1 _A_1, T_arg2 _A_2) - { return _A_1 -= _A_2; } -}; - -template <> -struct lambda_action > -{ - template - static typename lambda_action_deduce_result_type, T_arg1, T_arg2>::type - do_action(T_arg1 _A_1, T_arg2 _A_2) - { return _A_1 *= _A_2; } -}; - -template <> -struct lambda_action > -{ - template - static typename lambda_action_deduce_result_type, T_arg1, T_arg2>::type - do_action(T_arg1 _A_1, T_arg2 _A_2) - { return _A_1 /= _A_2; } -}; - -template <> -struct lambda_action > -{ - template - static typename lambda_action_deduce_result_type, T_arg1, T_arg2>::type - do_action(T_arg1 _A_1, T_arg2 _A_2) - { return _A_1 %= _A_2; } -}; - -template <> -struct lambda_action > -{ - template - static typename lambda_action_deduce_result_type, T_arg1, T_arg2>::type - do_action(T_arg1 _A_1, T_arg2 _A_2) - { return _A_1 <<= _A_2; } -}; - -template <> -struct lambda_action > -{ - template - static typename lambda_action_deduce_result_type, T_arg1, T_arg2>::type - do_action(T_arg1 _A_1, T_arg2 _A_2) - { return _A_1 >>= _A_2; } -}; - -template <> -struct lambda_action > -{ - template - static typename lambda_action_deduce_result_type, T_arg1, T_arg2>::type - do_action(T_arg1 _A_1, T_arg2 _A_2) - { return _A_1 &= _A_2; } -}; - -template <> -struct lambda_action > -{ - template - static typename lambda_action_deduce_result_type, T_arg1, T_arg2>::type - do_action(T_arg1 _A_1, T_arg2 _A_2) - { return _A_1 |= _A_2; } -}; - -template <> -struct lambda_action > -{ - template - static typename lambda_action_deduce_result_type, T_arg1, T_arg2>::type - do_action(T_arg1 _A_1, T_arg2 _A_2) - { return _A_1 ^= _A_2; } -}; - -template <> -struct lambda_action > -{ - template - static typename lambda_action_deduce_result_type, T_arg1, T_arg2>::type - do_action(T_arg1 _A_1, T_arg2 _A_2) - { return _A_1[_A_2]; } -}; - -template <> -struct lambda_action > -{ - template - static typename lambda_action_deduce_result_type, T_arg1, T_arg2>::type - do_action(T_arg1 _A_1, T_arg2 _A_2) - { return _A_1 = _A_2; } -}; - -template <> -struct lambda_action_unary > -{ - template - static typename lambda_action_unary_deduce_result_type, T_arg>::type - do_action(T_arg _Aa) - { return ++_Aa; } -}; - -template <> -struct lambda_action_unary > -{ - template - static typename lambda_action_unary_deduce_result_type, T_arg>::type - do_action(T_arg _Aa) - { return --_Aa; } -}; - -template <> -struct lambda_action_unary > -{ - template - static typename lambda_action_unary_deduce_result_type, T_arg>::type - do_action(T_arg _Aa) - { return -_Aa; } -}; - -template <> -struct lambda_action_unary > -{ - template - static typename lambda_action_unary_deduce_result_type, T_arg>::type - do_action(T_arg _Aa) - { return ~_Aa; } -}; - -template <> -struct lambda_action_unary > -{ - template - static typename lambda_action_unary_deduce_result_type, T_arg>::type - do_action(T_arg _Aa) - { return !_Aa; } -}; - -template <> -struct lambda_action_unary > -{ - template - static typename lambda_action_unary_deduce_result_type, T_arg>::type - do_action(T_arg _Aa) - { return &_Aa; } -}; - -template <> -struct lambda_action_unary > -{ - template - static typename lambda_action_unary_deduce_result_type, T_arg>::type - do_action(T_arg _Aa) - { return *_Aa; } -}; - -template -struct lambda_action_convert, T_type> -{ - template - static typename lambda_action_convert_deduce_result_type, T_type, T_arg>::type - do_action(T_arg _Aa) - { return reinterpret_cast(_Aa); } -}; - -template -struct lambda_action_convert, T_type> -{ - template - static typename lambda_action_convert_deduce_result_type, T_type, T_arg>::type - do_action(T_arg _Aa) - { return static_cast(_Aa); } -}; - -template -struct lambda_action_convert, T_type> -{ - template - static typename lambda_action_convert_deduce_result_type, T_type, T_arg>::type - do_action(T_arg _Aa) - { return dynamic_cast(_Aa); } -}; - - - -template -struct lambda_operator : public lambda_base -{ - typedef typename lambda::lambda_type arg1_type; - typedef typename lambda::lambda_type arg2_type; - - template - struct deduce_result_type - { typedef typename arg1_type::template deduce_result_type::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass>::type left_type; - typedef typename arg2_type::template deduce_result_type::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass>::type right_type; - typedef typename lambda_action_deduce_result_type::type type; - }; - typedef typename lambda_action_deduce_result_type< - T_action, - typename arg1_type::result_type, - typename arg2_type::result_type - >::type result_type; - - result_type - operator ()() const; - - template - typename deduce_result_type::type - operator ()(T_arg1 _A_1) const - { - return lambda_action::template do_action< - typename deduce_result_type::pass>::left_type, - typename deduce_result_type::pass>::right_type> - (arg1_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass> - (_A_1), - arg2_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass> - (_A_1)); - } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - typename deduce_result_type::type - sun_forte_workaround(T_arg1 _A_1) const - { - return lambda_action::template do_action< - typename deduce_result_type::pass>::left_type, - typename deduce_result_type::pass>::right_type> - (arg1_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass> - (_A_1), - arg2_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass> - (_A_1)); - } - #endif //SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - - template - typename deduce_result_type::type - operator ()(T_arg1 _A_1,T_arg2 _A_2) const - { - return lambda_action::template do_action< - typename deduce_result_type::pass,typename type_trait::pass>::left_type, - typename deduce_result_type::pass,typename type_trait::pass>::right_type> - (arg1_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass,typename type_trait::pass> - (_A_1,_A_2), - arg2_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass,typename type_trait::pass> - (_A_1,_A_2)); - } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - typename deduce_result_type::type - sun_forte_workaround(T_arg1 _A_1,T_arg2 _A_2) const - { - return lambda_action::template do_action< - typename deduce_result_type::pass,typename type_trait::pass>::left_type, - typename deduce_result_type::pass,typename type_trait::pass>::right_type> - (arg1_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass,typename type_trait::pass> - (_A_1,_A_2), - arg2_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass,typename type_trait::pass> - (_A_1,_A_2)); - } - #endif //SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - - template - typename deduce_result_type::type - operator ()(T_arg1 _A_1,T_arg2 _A_2,T_arg3 _A_3) const - { - return lambda_action::template do_action< - typename deduce_result_type::pass,typename type_trait::pass,typename type_trait::pass>::left_type, - typename deduce_result_type::pass,typename type_trait::pass,typename type_trait::pass>::right_type> - (arg1_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass,typename type_trait::pass,typename type_trait::pass> - (_A_1,_A_2,_A_3), - arg2_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass,typename type_trait::pass,typename type_trait::pass> - (_A_1,_A_2,_A_3)); - } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - typename deduce_result_type::type - sun_forte_workaround(T_arg1 _A_1,T_arg2 _A_2,T_arg3 _A_3) const - { - return lambda_action::template do_action< - typename deduce_result_type::pass,typename type_trait::pass,typename type_trait::pass>::left_type, - typename deduce_result_type::pass,typename type_trait::pass,typename type_trait::pass>::right_type> - (arg1_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass,typename type_trait::pass,typename type_trait::pass> - (_A_1,_A_2,_A_3), - arg2_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass,typename type_trait::pass,typename type_trait::pass> - (_A_1,_A_2,_A_3)); - } - #endif //SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - - template - typename deduce_result_type::type - operator ()(T_arg1 _A_1,T_arg2 _A_2,T_arg3 _A_3,T_arg4 _A_4) const - { - return lambda_action::template do_action< - typename deduce_result_type::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass>::left_type, - typename deduce_result_type::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass>::right_type> - (arg1_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass> - (_A_1,_A_2,_A_3,_A_4), - arg2_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass> - (_A_1,_A_2,_A_3,_A_4)); - } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - typename deduce_result_type::type - sun_forte_workaround(T_arg1 _A_1,T_arg2 _A_2,T_arg3 _A_3,T_arg4 _A_4) const - { - return lambda_action::template do_action< - typename deduce_result_type::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass>::left_type, - typename deduce_result_type::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass>::right_type> - (arg1_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass> - (_A_1,_A_2,_A_3,_A_4), - arg2_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass> - (_A_1,_A_2,_A_3,_A_4)); - } - #endif //SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - - template - typename deduce_result_type::type - operator ()(T_arg1 _A_1,T_arg2 _A_2,T_arg3 _A_3,T_arg4 _A_4,T_arg5 _A_5) const - { - return lambda_action::template do_action< - typename deduce_result_type::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass>::left_type, - typename deduce_result_type::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass>::right_type> - (arg1_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass> - (_A_1,_A_2,_A_3,_A_4,_A_5), - arg2_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass> - (_A_1,_A_2,_A_3,_A_4,_A_5)); - } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - typename deduce_result_type::type - sun_forte_workaround(T_arg1 _A_1,T_arg2 _A_2,T_arg3 _A_3,T_arg4 _A_4,T_arg5 _A_5) const - { - return lambda_action::template do_action< - typename deduce_result_type::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass>::left_type, - typename deduce_result_type::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass>::right_type> - (arg1_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass> - (_A_1,_A_2,_A_3,_A_4,_A_5), - arg2_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass> - (_A_1,_A_2,_A_3,_A_4,_A_5)); - } - #endif //SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - - template - typename deduce_result_type::type - operator ()(T_arg1 _A_1,T_arg2 _A_2,T_arg3 _A_3,T_arg4 _A_4,T_arg5 _A_5,T_arg6 _A_6) const - { - return lambda_action::template do_action< - typename deduce_result_type::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass>::left_type, - typename deduce_result_type::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass>::right_type> - (arg1_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass> - (_A_1,_A_2,_A_3,_A_4,_A_5,_A_6), - arg2_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass> - (_A_1,_A_2,_A_3,_A_4,_A_5,_A_6)); - } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - typename deduce_result_type::type - sun_forte_workaround(T_arg1 _A_1,T_arg2 _A_2,T_arg3 _A_3,T_arg4 _A_4,T_arg5 _A_5,T_arg6 _A_6) const - { - return lambda_action::template do_action< - typename deduce_result_type::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass>::left_type, - typename deduce_result_type::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass>::right_type> - (arg1_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass> - (_A_1,_A_2,_A_3,_A_4,_A_5,_A_6), - arg2_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass> - (_A_1,_A_2,_A_3,_A_4,_A_5,_A_6)); - } - #endif //SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - - template - typename deduce_result_type::type - operator ()(T_arg1 _A_1,T_arg2 _A_2,T_arg3 _A_3,T_arg4 _A_4,T_arg5 _A_5,T_arg6 _A_6,T_arg7 _A_7) const - { - return lambda_action::template do_action< - typename deduce_result_type::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass>::left_type, - typename deduce_result_type::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass>::right_type> - (arg1_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass> - (_A_1,_A_2,_A_3,_A_4,_A_5,_A_6,_A_7), - arg2_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass> - (_A_1,_A_2,_A_3,_A_4,_A_5,_A_6,_A_7)); - } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - typename deduce_result_type::type - sun_forte_workaround(T_arg1 _A_1,T_arg2 _A_2,T_arg3 _A_3,T_arg4 _A_4,T_arg5 _A_5,T_arg6 _A_6,T_arg7 _A_7) const - { - return lambda_action::template do_action< - typename deduce_result_type::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass>::left_type, - typename deduce_result_type::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass>::right_type> - (arg1_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass> - (_A_1,_A_2,_A_3,_A_4,_A_5,_A_6,_A_7), - arg2_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass> - (_A_1,_A_2,_A_3,_A_4,_A_5,_A_6,_A_7)); - } - #endif //SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - - lambda_operator(typename type_trait::take a1, typename type_trait::take a2 ) - : arg1_(a1), arg2_(a2) {} - - arg1_type arg1_; - arg2_type arg2_; -}; - -template -typename lambda_operator::result_type -lambda_operator::operator ()() const - { return lambda_action::template do_action< - typename arg1_type::result_type, - typename arg2_type::result_type> - (arg1_(), arg2_()); } - -template -void visit_each(const T_action& _A_action, - const lambda_operator& _A_target) -{ - visit_each(_A_action, _A_target.arg1_); - visit_each(_A_action, _A_target.arg2_); -} - - -template -struct lambda_operator_unary : public lambda_base -{ - typedef typename lambda::lambda_type arg_type; - - template - struct deduce_result_type - { typedef typename arg_type::template deduce_result_type::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass>::type operand_type; - typedef typename lambda_action_unary_deduce_result_type::type type; - }; - typedef typename lambda_action_unary_deduce_result_type< - T_action, - typename arg_type::result_type - >::type result_type; - - result_type - operator ()() const; - - template - typename deduce_result_type::type - operator ()(T_arg1 _A_1) const - { - return lambda_action_unary::template do_action< - typename deduce_result_type::pass>::operand_type> - (arg_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass> - (_A_1)); - } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - typename deduce_result_type::type - sun_forte_workaround(T_arg1 _A_1) const - { - return lambda_action_unary::template do_action< - typename deduce_result_type::pass>::operand_type> - (arg_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass> - (_A_1)); - } - #endif - - template - typename deduce_result_type::type - operator ()(T_arg1 _A_1,T_arg2 _A_2) const - { - return lambda_action_unary::template do_action< - typename deduce_result_type::pass,typename type_trait::pass>::operand_type> - (arg_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass,typename type_trait::pass> - (_A_1,_A_2)); - } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - typename deduce_result_type::type - sun_forte_workaround(T_arg1 _A_1,T_arg2 _A_2) const - { - return lambda_action_unary::template do_action< - typename deduce_result_type::pass,typename type_trait::pass>::operand_type> - (arg_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass,typename type_trait::pass> - (_A_1,_A_2)); - } - #endif - - template - typename deduce_result_type::type - operator ()(T_arg1 _A_1,T_arg2 _A_2,T_arg3 _A_3) const - { - return lambda_action_unary::template do_action< - typename deduce_result_type::pass,typename type_trait::pass,typename type_trait::pass>::operand_type> - (arg_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass,typename type_trait::pass,typename type_trait::pass> - (_A_1,_A_2,_A_3)); - } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - typename deduce_result_type::type - sun_forte_workaround(T_arg1 _A_1,T_arg2 _A_2,T_arg3 _A_3) const - { - return lambda_action_unary::template do_action< - typename deduce_result_type::pass,typename type_trait::pass,typename type_trait::pass>::operand_type> - (arg_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass,typename type_trait::pass,typename type_trait::pass> - (_A_1,_A_2,_A_3)); - } - #endif - - template - typename deduce_result_type::type - operator ()(T_arg1 _A_1,T_arg2 _A_2,T_arg3 _A_3,T_arg4 _A_4) const - { - return lambda_action_unary::template do_action< - typename deduce_result_type::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass>::operand_type> - (arg_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass> - (_A_1,_A_2,_A_3,_A_4)); - } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - typename deduce_result_type::type - sun_forte_workaround(T_arg1 _A_1,T_arg2 _A_2,T_arg3 _A_3,T_arg4 _A_4) const - { - return lambda_action_unary::template do_action< - typename deduce_result_type::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass>::operand_type> - (arg_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass> - (_A_1,_A_2,_A_3,_A_4)); - } - #endif - - template - typename deduce_result_type::type - operator ()(T_arg1 _A_1,T_arg2 _A_2,T_arg3 _A_3,T_arg4 _A_4,T_arg5 _A_5) const - { - return lambda_action_unary::template do_action< - typename deduce_result_type::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass>::operand_type> - (arg_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass> - (_A_1,_A_2,_A_3,_A_4,_A_5)); - } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - typename deduce_result_type::type - sun_forte_workaround(T_arg1 _A_1,T_arg2 _A_2,T_arg3 _A_3,T_arg4 _A_4,T_arg5 _A_5) const - { - return lambda_action_unary::template do_action< - typename deduce_result_type::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass>::operand_type> - (arg_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass> - (_A_1,_A_2,_A_3,_A_4,_A_5)); - } - #endif - - template - typename deduce_result_type::type - operator ()(T_arg1 _A_1,T_arg2 _A_2,T_arg3 _A_3,T_arg4 _A_4,T_arg5 _A_5,T_arg6 _A_6) const - { - return lambda_action_unary::template do_action< - typename deduce_result_type::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass>::operand_type> - (arg_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass> - (_A_1,_A_2,_A_3,_A_4,_A_5,_A_6)); - } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - typename deduce_result_type::type - sun_forte_workaround(T_arg1 _A_1,T_arg2 _A_2,T_arg3 _A_3,T_arg4 _A_4,T_arg5 _A_5,T_arg6 _A_6) const - { - return lambda_action_unary::template do_action< - typename deduce_result_type::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass>::operand_type> - (arg_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass> - (_A_1,_A_2,_A_3,_A_4,_A_5,_A_6)); - } - #endif - - template - typename deduce_result_type::type - operator ()(T_arg1 _A_1,T_arg2 _A_2,T_arg3 _A_3,T_arg4 _A_4,T_arg5 _A_5,T_arg6 _A_6,T_arg7 _A_7) const - { - return lambda_action_unary::template do_action< - typename deduce_result_type::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass>::operand_type> - (arg_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass> - (_A_1,_A_2,_A_3,_A_4,_A_5,_A_6,_A_7)); - } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - typename deduce_result_type::type - sun_forte_workaround(T_arg1 _A_1,T_arg2 _A_2,T_arg3 _A_3,T_arg4 _A_4,T_arg5 _A_5,T_arg6 _A_6,T_arg7 _A_7) const - { - return lambda_action_unary::template do_action< - typename deduce_result_type::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass>::operand_type> - (arg_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass> - (_A_1,_A_2,_A_3,_A_4,_A_5,_A_6,_A_7)); - } - #endif - - lambda_operator_unary(typename type_trait::take a) - : arg_(a) {} - - arg_type arg_; -}; - -template -typename lambda_operator_unary::result_type -lambda_operator_unary::operator ()() const - { return lambda_action_unary::template do_action< - typename arg_type::result_type> - (arg_()); } - -template -void visit_each(const T_action& _A_action, - const lambda_operator_unary& _A_target) -{ - visit_each(_A_action, _A_target.arg_); -} - - -template -struct lambda_operator_convert : public lambda_base -{ - typedef typename lambda::lambda_type arg_type; - - template - struct deduce_result_type - { typedef typename arg_type::template deduce_result_type::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass>::type operand_type; - typedef typename lambda_action_convert_deduce_result_type::type type; - }; - typedef typename lambda_action_convert_deduce_result_type< - T_action, T_type, - typename arg_type::result_type - >::type result_type; - - result_type - operator ()() const; - - template - typename deduce_result_type::type - operator ()(T_arg1 _A_1) const - { - return lambda_action_convert::template do_action< - typename deduce_result_type::pass>::operand_type> - (arg_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass> - (_A_1)); - } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - typename deduce_result_type::type - sun_forte_workaround(T_arg1 _A_1) const - { - return lambda_action_convert::template do_action< - typename deduce_result_type::pass>::operand_type> - (arg_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass> - (_A_1)); - } - #endif - - template - typename deduce_result_type::type - operator ()(T_arg1 _A_1,T_arg2 _A_2) const - { - return lambda_action_convert::template do_action< - typename deduce_result_type::pass,typename type_trait::pass>::operand_type> - (arg_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass,typename type_trait::pass> - (_A_1,_A_2)); - } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - typename deduce_result_type::type - sun_forte_workaround(T_arg1 _A_1,T_arg2 _A_2) const - { - return lambda_action_convert::template do_action< - typename deduce_result_type::pass,typename type_trait::pass>::operand_type> - (arg_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass,typename type_trait::pass> - (_A_1,_A_2)); - } - #endif - - template - typename deduce_result_type::type - operator ()(T_arg1 _A_1,T_arg2 _A_2,T_arg3 _A_3) const - { - return lambda_action_convert::template do_action< - typename deduce_result_type::pass,typename type_trait::pass,typename type_trait::pass>::operand_type> - (arg_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass,typename type_trait::pass,typename type_trait::pass> - (_A_1,_A_2,_A_3)); - } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - typename deduce_result_type::type - sun_forte_workaround(T_arg1 _A_1,T_arg2 _A_2,T_arg3 _A_3) const - { - return lambda_action_convert::template do_action< - typename deduce_result_type::pass,typename type_trait::pass,typename type_trait::pass>::operand_type> - (arg_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass,typename type_trait::pass,typename type_trait::pass> - (_A_1,_A_2,_A_3)); - } - #endif - - template - typename deduce_result_type::type - operator ()(T_arg1 _A_1,T_arg2 _A_2,T_arg3 _A_3,T_arg4 _A_4) const - { - return lambda_action_convert::template do_action< - typename deduce_result_type::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass>::operand_type> - (arg_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass> - (_A_1,_A_2,_A_3,_A_4)); - } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - typename deduce_result_type::type - sun_forte_workaround(T_arg1 _A_1,T_arg2 _A_2,T_arg3 _A_3,T_arg4 _A_4) const - { - return lambda_action_convert::template do_action< - typename deduce_result_type::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass>::operand_type> - (arg_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass> - (_A_1,_A_2,_A_3,_A_4)); - } - #endif - - template - typename deduce_result_type::type - operator ()(T_arg1 _A_1,T_arg2 _A_2,T_arg3 _A_3,T_arg4 _A_4,T_arg5 _A_5) const - { - return lambda_action_convert::template do_action< - typename deduce_result_type::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass>::operand_type> - (arg_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass> - (_A_1,_A_2,_A_3,_A_4,_A_5)); - } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - typename deduce_result_type::type - sun_forte_workaround(T_arg1 _A_1,T_arg2 _A_2,T_arg3 _A_3,T_arg4 _A_4,T_arg5 _A_5) const - { - return lambda_action_convert::template do_action< - typename deduce_result_type::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass>::operand_type> - (arg_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass> - (_A_1,_A_2,_A_3,_A_4,_A_5)); - } - #endif - - template - typename deduce_result_type::type - operator ()(T_arg1 _A_1,T_arg2 _A_2,T_arg3 _A_3,T_arg4 _A_4,T_arg5 _A_5,T_arg6 _A_6) const - { - return lambda_action_convert::template do_action< - typename deduce_result_type::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass>::operand_type> - (arg_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass> - (_A_1,_A_2,_A_3,_A_4,_A_5,_A_6)); - } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - typename deduce_result_type::type - sun_forte_workaround(T_arg1 _A_1,T_arg2 _A_2,T_arg3 _A_3,T_arg4 _A_4,T_arg5 _A_5,T_arg6 _A_6) const - { - return lambda_action_convert::template do_action< - typename deduce_result_type::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass>::operand_type> - (arg_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass> - (_A_1,_A_2,_A_3,_A_4,_A_5,_A_6)); - } - #endif - - template - typename deduce_result_type::type - operator ()(T_arg1 _A_1,T_arg2 _A_2,T_arg3 _A_3,T_arg4 _A_4,T_arg5 _A_5,T_arg6 _A_6,T_arg7 _A_7) const - { - return lambda_action_convert::template do_action< - typename deduce_result_type::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass>::operand_type> - (arg_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass> - (_A_1,_A_2,_A_3,_A_4,_A_5,_A_6,_A_7)); - } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - typename deduce_result_type::type - sun_forte_workaround(T_arg1 _A_1,T_arg2 _A_2,T_arg3 _A_3,T_arg4 _A_4,T_arg5 _A_5,T_arg6 _A_6,T_arg7 _A_7) const - { - return lambda_action_convert::template do_action< - typename deduce_result_type::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass>::operand_type> - (arg_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass> - (_A_1,_A_2,_A_3,_A_4,_A_5,_A_6,_A_7)); - } - #endif - - lambda_operator_convert(typename type_trait::take a) - : arg_(a) {} - - arg_type arg_; -}; - -template -typename lambda_operator_convert::result_type -lambda_operator_convert::operator ()() const - { return lambda_action_convert::template do_action< - typename arg_type::result_type> - (arg_()); } - -template -void visit_each(const T_action& _A_action, - const lambda_operator_convert& _A_target) -{ - visit_each(_A_action, _A_target.arg_); -} - - -// Operators for lambda action arithmetic. At least one of the arguments needs to be of type lamdba, hence the overloads. -template -lambda, T_arg1, T_arg2> > -operator + (const lambda& a1, const lambda& a2) -{ typedef lambda_operator, T_arg1, T_arg2> operator_type; - return lambda(operator_type(a1.value_,a2.value_)); } -template -lambda, T_arg1, typename unwrap_reference::type> > -operator + (const lambda& a1, const T_arg2& a2) -{ typedef lambda_operator, T_arg1, typename unwrap_reference::type> operator_type; - return lambda(operator_type(a1.value_,a2)); } -template -lambda, typename unwrap_reference::type, T_arg2> > -operator + (const T_arg1& a1, const lambda& a2) -{ typedef lambda_operator, typename unwrap_reference::type, T_arg2> operator_type; - return lambda(operator_type(a1,a2.value_)); } - -// Operators for lambda action arithmetic. At least one of the arguments needs to be of type lamdba, hence the overloads. -template -lambda, T_arg1, T_arg2> > -operator - (const lambda& a1, const lambda& a2) -{ typedef lambda_operator, T_arg1, T_arg2> operator_type; - return lambda(operator_type(a1.value_,a2.value_)); } -template -lambda, T_arg1, typename unwrap_reference::type> > -operator - (const lambda& a1, const T_arg2& a2) -{ typedef lambda_operator, T_arg1, typename unwrap_reference::type> operator_type; - return lambda(operator_type(a1.value_,a2)); } -template -lambda, typename unwrap_reference::type, T_arg2> > -operator - (const T_arg1& a1, const lambda& a2) -{ typedef lambda_operator, typename unwrap_reference::type, T_arg2> operator_type; - return lambda(operator_type(a1,a2.value_)); } - -// Operators for lambda action arithmetic. At least one of the arguments needs to be of type lamdba, hence the overloads. -template -lambda, T_arg1, T_arg2> > -operator * (const lambda& a1, const lambda& a2) -{ typedef lambda_operator, T_arg1, T_arg2> operator_type; - return lambda(operator_type(a1.value_,a2.value_)); } -template -lambda, T_arg1, typename unwrap_reference::type> > -operator * (const lambda& a1, const T_arg2& a2) -{ typedef lambda_operator, T_arg1, typename unwrap_reference::type> operator_type; - return lambda(operator_type(a1.value_,a2)); } -template -lambda, typename unwrap_reference::type, T_arg2> > -operator * (const T_arg1& a1, const lambda& a2) -{ typedef lambda_operator, typename unwrap_reference::type, T_arg2> operator_type; - return lambda(operator_type(a1,a2.value_)); } - -// Operators for lambda action arithmetic. At least one of the arguments needs to be of type lamdba, hence the overloads. -template -lambda, T_arg1, T_arg2> > -operator / (const lambda& a1, const lambda& a2) -{ typedef lambda_operator, T_arg1, T_arg2> operator_type; - return lambda(operator_type(a1.value_,a2.value_)); } -template -lambda, T_arg1, typename unwrap_reference::type> > -operator / (const lambda& a1, const T_arg2& a2) -{ typedef lambda_operator, T_arg1, typename unwrap_reference::type> operator_type; - return lambda(operator_type(a1.value_,a2)); } -template -lambda, typename unwrap_reference::type, T_arg2> > -operator / (const T_arg1& a1, const lambda& a2) -{ typedef lambda_operator, typename unwrap_reference::type, T_arg2> operator_type; - return lambda(operator_type(a1,a2.value_)); } - -// Operators for lambda action arithmetic. At least one of the arguments needs to be of type lamdba, hence the overloads. -template -lambda, T_arg1, T_arg2> > -operator % (const lambda& a1, const lambda& a2) -{ typedef lambda_operator, T_arg1, T_arg2> operator_type; - return lambda(operator_type(a1.value_,a2.value_)); } -template -lambda, T_arg1, typename unwrap_reference::type> > -operator % (const lambda& a1, const T_arg2& a2) -{ typedef lambda_operator, T_arg1, typename unwrap_reference::type> operator_type; - return lambda(operator_type(a1.value_,a2)); } -template -lambda, typename unwrap_reference::type, T_arg2> > -operator % (const T_arg1& a1, const lambda& a2) -{ typedef lambda_operator, typename unwrap_reference::type, T_arg2> operator_type; - return lambda(operator_type(a1,a2.value_)); } - -// Operators for lambda action bitwise. At least one of the arguments needs to be of type lamdba, hence the overloads. -template -lambda, T_arg1, T_arg2> > -operator << (const lambda& a1, const lambda& a2) -{ typedef lambda_operator, T_arg1, T_arg2> operator_type; - return lambda(operator_type(a1.value_,a2.value_)); } -template -lambda, T_arg1, typename unwrap_reference::type> > -operator << (const lambda& a1, const T_arg2& a2) -{ typedef lambda_operator, T_arg1, typename unwrap_reference::type> operator_type; - return lambda(operator_type(a1.value_,a2)); } -template -lambda, typename unwrap_reference::type, T_arg2> > -operator << (const T_arg1& a1, const lambda& a2) -{ typedef lambda_operator, typename unwrap_reference::type, T_arg2> operator_type; - return lambda(operator_type(a1,a2.value_)); } - -// Operators for lambda action bitwise. At least one of the arguments needs to be of type lamdba, hence the overloads. -template -lambda, T_arg1, T_arg2> > -operator >> (const lambda& a1, const lambda& a2) -{ typedef lambda_operator, T_arg1, T_arg2> operator_type; - return lambda(operator_type(a1.value_,a2.value_)); } -template -lambda, T_arg1, typename unwrap_reference::type> > -operator >> (const lambda& a1, const T_arg2& a2) -{ typedef lambda_operator, T_arg1, typename unwrap_reference::type> operator_type; - return lambda(operator_type(a1.value_,a2)); } -template -lambda, typename unwrap_reference::type, T_arg2> > -operator >> (const T_arg1& a1, const lambda& a2) -{ typedef lambda_operator, typename unwrap_reference::type, T_arg2> operator_type; - return lambda(operator_type(a1,a2.value_)); } - -// Operators for lambda action bitwise. At least one of the arguments needs to be of type lamdba, hence the overloads. -template -lambda, T_arg1, T_arg2> > -operator & (const lambda& a1, const lambda& a2) -{ typedef lambda_operator, T_arg1, T_arg2> operator_type; - return lambda(operator_type(a1.value_,a2.value_)); } -template -lambda, T_arg1, typename unwrap_reference::type> > -operator & (const lambda& a1, const T_arg2& a2) -{ typedef lambda_operator, T_arg1, typename unwrap_reference::type> operator_type; - return lambda(operator_type(a1.value_,a2)); } -template -lambda, typename unwrap_reference::type, T_arg2> > -operator & (const T_arg1& a1, const lambda& a2) -{ typedef lambda_operator, typename unwrap_reference::type, T_arg2> operator_type; - return lambda(operator_type(a1,a2.value_)); } - -// Operators for lambda action bitwise. At least one of the arguments needs to be of type lamdba, hence the overloads. -template -lambda, T_arg1, T_arg2> > -operator | (const lambda& a1, const lambda& a2) -{ typedef lambda_operator, T_arg1, T_arg2> operator_type; - return lambda(operator_type(a1.value_,a2.value_)); } -template -lambda, T_arg1, typename unwrap_reference::type> > -operator | (const lambda& a1, const T_arg2& a2) -{ typedef lambda_operator, T_arg1, typename unwrap_reference::type> operator_type; - return lambda(operator_type(a1.value_,a2)); } -template -lambda, typename unwrap_reference::type, T_arg2> > -operator | (const T_arg1& a1, const lambda& a2) -{ typedef lambda_operator, typename unwrap_reference::type, T_arg2> operator_type; - return lambda(operator_type(a1,a2.value_)); } - -// Operators for lambda action bitwise. At least one of the arguments needs to be of type lamdba, hence the overloads. -template -lambda, T_arg1, T_arg2> > -operator ^ (const lambda& a1, const lambda& a2) -{ typedef lambda_operator, T_arg1, T_arg2> operator_type; - return lambda(operator_type(a1.value_,a2.value_)); } -template -lambda, T_arg1, typename unwrap_reference::type> > -operator ^ (const lambda& a1, const T_arg2& a2) -{ typedef lambda_operator, T_arg1, typename unwrap_reference::type> operator_type; - return lambda(operator_type(a1.value_,a2)); } -template -lambda, typename unwrap_reference::type, T_arg2> > -operator ^ (const T_arg1& a1, const lambda& a2) -{ typedef lambda_operator, typename unwrap_reference::type, T_arg2> operator_type; - return lambda(operator_type(a1,a2.value_)); } - -// Operators for lambda action logical. At least one of the arguments needs to be of type lamdba, hence the overloads. -template -lambda, T_arg1, T_arg2> > -operator && (const lambda& a1, const lambda& a2) -{ typedef lambda_operator, T_arg1, T_arg2> operator_type; - return lambda(operator_type(a1.value_,a2.value_)); } -template -lambda, T_arg1, typename unwrap_reference::type> > -operator && (const lambda& a1, const T_arg2& a2) -{ typedef lambda_operator, T_arg1, typename unwrap_reference::type> operator_type; - return lambda(operator_type(a1.value_,a2)); } -template -lambda, typename unwrap_reference::type, T_arg2> > -operator && (const T_arg1& a1, const lambda& a2) -{ typedef lambda_operator, typename unwrap_reference::type, T_arg2> operator_type; - return lambda(operator_type(a1,a2.value_)); } - -// Operators for lambda action logical. At least one of the arguments needs to be of type lamdba, hence the overloads. -template -lambda, T_arg1, T_arg2> > -operator || (const lambda& a1, const lambda& a2) -{ typedef lambda_operator, T_arg1, T_arg2> operator_type; - return lambda(operator_type(a1.value_,a2.value_)); } -template -lambda, T_arg1, typename unwrap_reference::type> > -operator || (const lambda& a1, const T_arg2& a2) -{ typedef lambda_operator, T_arg1, typename unwrap_reference::type> operator_type; - return lambda(operator_type(a1.value_,a2)); } -template -lambda, typename unwrap_reference::type, T_arg2> > -operator || (const T_arg1& a1, const lambda& a2) -{ typedef lambda_operator, typename unwrap_reference::type, T_arg2> operator_type; - return lambda(operator_type(a1,a2.value_)); } - -// Operators for lambda action relational. At least one of the arguments needs to be of type lamdba, hence the overloads. -template -lambda, T_arg1, T_arg2> > -operator < (const lambda& a1, const lambda& a2) -{ typedef lambda_operator, T_arg1, T_arg2> operator_type; - return lambda(operator_type(a1.value_,a2.value_)); } -template -lambda, T_arg1, typename unwrap_reference::type> > -operator < (const lambda& a1, const T_arg2& a2) -{ typedef lambda_operator, T_arg1, typename unwrap_reference::type> operator_type; - return lambda(operator_type(a1.value_,a2)); } -template -lambda, typename unwrap_reference::type, T_arg2> > -operator < (const T_arg1& a1, const lambda& a2) -{ typedef lambda_operator, typename unwrap_reference::type, T_arg2> operator_type; - return lambda(operator_type(a1,a2.value_)); } - -// Operators for lambda action relational. At least one of the arguments needs to be of type lamdba, hence the overloads. -template -lambda, T_arg1, T_arg2> > -operator > (const lambda& a1, const lambda& a2) -{ typedef lambda_operator, T_arg1, T_arg2> operator_type; - return lambda(operator_type(a1.value_,a2.value_)); } -template -lambda, T_arg1, typename unwrap_reference::type> > -operator > (const lambda& a1, const T_arg2& a2) -{ typedef lambda_operator, T_arg1, typename unwrap_reference::type> operator_type; - return lambda(operator_type(a1.value_,a2)); } -template -lambda, typename unwrap_reference::type, T_arg2> > -operator > (const T_arg1& a1, const lambda& a2) -{ typedef lambda_operator, typename unwrap_reference::type, T_arg2> operator_type; - return lambda(operator_type(a1,a2.value_)); } - -// Operators for lambda action relational. At least one of the arguments needs to be of type lamdba, hence the overloads. -template -lambda, T_arg1, T_arg2> > -operator <= (const lambda& a1, const lambda& a2) -{ typedef lambda_operator, T_arg1, T_arg2> operator_type; - return lambda(operator_type(a1.value_,a2.value_)); } -template -lambda, T_arg1, typename unwrap_reference::type> > -operator <= (const lambda& a1, const T_arg2& a2) -{ typedef lambda_operator, T_arg1, typename unwrap_reference::type> operator_type; - return lambda(operator_type(a1.value_,a2)); } -template -lambda, typename unwrap_reference::type, T_arg2> > -operator <= (const T_arg1& a1, const lambda& a2) -{ typedef lambda_operator, typename unwrap_reference::type, T_arg2> operator_type; - return lambda(operator_type(a1,a2.value_)); } - -// Operators for lambda action relational. At least one of the arguments needs to be of type lamdba, hence the overloads. -template -lambda, T_arg1, T_arg2> > -operator >= (const lambda& a1, const lambda& a2) -{ typedef lambda_operator, T_arg1, T_arg2> operator_type; - return lambda(operator_type(a1.value_,a2.value_)); } -template -lambda, T_arg1, typename unwrap_reference::type> > -operator >= (const lambda& a1, const T_arg2& a2) -{ typedef lambda_operator, T_arg1, typename unwrap_reference::type> operator_type; - return lambda(operator_type(a1.value_,a2)); } -template -lambda, typename unwrap_reference::type, T_arg2> > -operator >= (const T_arg1& a1, const lambda& a2) -{ typedef lambda_operator, typename unwrap_reference::type, T_arg2> operator_type; - return lambda(operator_type(a1,a2.value_)); } - -// Operators for lambda action relational. At least one of the arguments needs to be of type lamdba, hence the overloads. -template -lambda, T_arg1, T_arg2> > -operator == (const lambda& a1, const lambda& a2) -{ typedef lambda_operator, T_arg1, T_arg2> operator_type; - return lambda(operator_type(a1.value_,a2.value_)); } -template -lambda, T_arg1, typename unwrap_reference::type> > -operator == (const lambda& a1, const T_arg2& a2) -{ typedef lambda_operator, T_arg1, typename unwrap_reference::type> operator_type; - return lambda(operator_type(a1.value_,a2)); } -template -lambda, typename unwrap_reference::type, T_arg2> > -operator == (const T_arg1& a1, const lambda& a2) -{ typedef lambda_operator, typename unwrap_reference::type, T_arg2> operator_type; - return lambda(operator_type(a1,a2.value_)); } - -// Operators for lambda action relational. At least one of the arguments needs to be of type lamdba, hence the overloads. -template -lambda, T_arg1, T_arg2> > -operator != (const lambda& a1, const lambda& a2) -{ typedef lambda_operator, T_arg1, T_arg2> operator_type; - return lambda(operator_type(a1.value_,a2.value_)); } -template -lambda, T_arg1, typename unwrap_reference::type> > -operator != (const lambda& a1, const T_arg2& a2) -{ typedef lambda_operator, T_arg1, typename unwrap_reference::type> operator_type; - return lambda(operator_type(a1.value_,a2)); } -template -lambda, typename unwrap_reference::type, T_arg2> > -operator != (const T_arg1& a1, const lambda& a2) -{ typedef lambda_operator, typename unwrap_reference::type, T_arg2> operator_type; - return lambda(operator_type(a1,a2.value_)); } - -// Operators for lambda action arithmetic_assign. At least one of the arguments needs to be of type lamdba, hence the overloads. -template -lambda, T_arg1, T_arg2> > -operator += (const lambda& a1, const lambda& a2) -{ typedef lambda_operator, T_arg1, T_arg2> operator_type; - return lambda(operator_type(a1.value_,a2.value_)); } -template -lambda, T_arg1, typename unwrap_reference::type> > -operator += (const lambda& a1, const T_arg2& a2) -{ typedef lambda_operator, T_arg1, typename unwrap_reference::type> operator_type; - return lambda(operator_type(a1.value_,a2)); } -template -lambda, typename unwrap_reference::type, T_arg2> > -operator += (const T_arg1& a1, const lambda& a2) -{ typedef lambda_operator, typename unwrap_reference::type, T_arg2> operator_type; - return lambda(operator_type(a1,a2.value_)); } - -// Operators for lambda action arithmetic_assign. At least one of the arguments needs to be of type lamdba, hence the overloads. -template -lambda, T_arg1, T_arg2> > -operator -= (const lambda& a1, const lambda& a2) -{ typedef lambda_operator, T_arg1, T_arg2> operator_type; - return lambda(operator_type(a1.value_,a2.value_)); } -template -lambda, T_arg1, typename unwrap_reference::type> > -operator -= (const lambda& a1, const T_arg2& a2) -{ typedef lambda_operator, T_arg1, typename unwrap_reference::type> operator_type; - return lambda(operator_type(a1.value_,a2)); } -template -lambda, typename unwrap_reference::type, T_arg2> > -operator -= (const T_arg1& a1, const lambda& a2) -{ typedef lambda_operator, typename unwrap_reference::type, T_arg2> operator_type; - return lambda(operator_type(a1,a2.value_)); } - -// Operators for lambda action arithmetic_assign. At least one of the arguments needs to be of type lamdba, hence the overloads. -template -lambda, T_arg1, T_arg2> > -operator *= (const lambda& a1, const lambda& a2) -{ typedef lambda_operator, T_arg1, T_arg2> operator_type; - return lambda(operator_type(a1.value_,a2.value_)); } -template -lambda, T_arg1, typename unwrap_reference::type> > -operator *= (const lambda& a1, const T_arg2& a2) -{ typedef lambda_operator, T_arg1, typename unwrap_reference::type> operator_type; - return lambda(operator_type(a1.value_,a2)); } -template -lambda, typename unwrap_reference::type, T_arg2> > -operator *= (const T_arg1& a1, const lambda& a2) -{ typedef lambda_operator, typename unwrap_reference::type, T_arg2> operator_type; - return lambda(operator_type(a1,a2.value_)); } - -// Operators for lambda action arithmetic_assign. At least one of the arguments needs to be of type lamdba, hence the overloads. -template -lambda, T_arg1, T_arg2> > -operator /= (const lambda& a1, const lambda& a2) -{ typedef lambda_operator, T_arg1, T_arg2> operator_type; - return lambda(operator_type(a1.value_,a2.value_)); } -template -lambda, T_arg1, typename unwrap_reference::type> > -operator /= (const lambda& a1, const T_arg2& a2) -{ typedef lambda_operator, T_arg1, typename unwrap_reference::type> operator_type; - return lambda(operator_type(a1.value_,a2)); } -template -lambda, typename unwrap_reference::type, T_arg2> > -operator /= (const T_arg1& a1, const lambda& a2) -{ typedef lambda_operator, typename unwrap_reference::type, T_arg2> operator_type; - return lambda(operator_type(a1,a2.value_)); } - -// Operators for lambda action arithmetic_assign. At least one of the arguments needs to be of type lamdba, hence the overloads. -template -lambda, T_arg1, T_arg2> > -operator %= (const lambda& a1, const lambda& a2) -{ typedef lambda_operator, T_arg1, T_arg2> operator_type; - return lambda(operator_type(a1.value_,a2.value_)); } -template -lambda, T_arg1, typename unwrap_reference::type> > -operator %= (const lambda& a1, const T_arg2& a2) -{ typedef lambda_operator, T_arg1, typename unwrap_reference::type> operator_type; - return lambda(operator_type(a1.value_,a2)); } -template -lambda, typename unwrap_reference::type, T_arg2> > -operator %= (const T_arg1& a1, const lambda& a2) -{ typedef lambda_operator, typename unwrap_reference::type, T_arg2> operator_type; - return lambda(operator_type(a1,a2.value_)); } - -// Operators for lambda action bitwise_assign. At least one of the arguments needs to be of type lamdba, hence the overloads. -template -lambda, T_arg1, T_arg2> > -operator <<= (const lambda& a1, const lambda& a2) -{ typedef lambda_operator, T_arg1, T_arg2> operator_type; - return lambda(operator_type(a1.value_,a2.value_)); } -template -lambda, T_arg1, typename unwrap_reference::type> > -operator <<= (const lambda& a1, const T_arg2& a2) -{ typedef lambda_operator, T_arg1, typename unwrap_reference::type> operator_type; - return lambda(operator_type(a1.value_,a2)); } -template -lambda, typename unwrap_reference::type, T_arg2> > -operator <<= (const T_arg1& a1, const lambda& a2) -{ typedef lambda_operator, typename unwrap_reference::type, T_arg2> operator_type; - return lambda(operator_type(a1,a2.value_)); } - -// Operators for lambda action bitwise_assign. At least one of the arguments needs to be of type lamdba, hence the overloads. -template -lambda, T_arg1, T_arg2> > -operator >>= (const lambda& a1, const lambda& a2) -{ typedef lambda_operator, T_arg1, T_arg2> operator_type; - return lambda(operator_type(a1.value_,a2.value_)); } -template -lambda, T_arg1, typename unwrap_reference::type> > -operator >>= (const lambda& a1, const T_arg2& a2) -{ typedef lambda_operator, T_arg1, typename unwrap_reference::type> operator_type; - return lambda(operator_type(a1.value_,a2)); } -template -lambda, typename unwrap_reference::type, T_arg2> > -operator >>= (const T_arg1& a1, const lambda& a2) -{ typedef lambda_operator, typename unwrap_reference::type, T_arg2> operator_type; - return lambda(operator_type(a1,a2.value_)); } - -// Operators for lambda action bitwise_assign. At least one of the arguments needs to be of type lamdba, hence the overloads. -template -lambda, T_arg1, T_arg2> > -operator &= (const lambda& a1, const lambda& a2) -{ typedef lambda_operator, T_arg1, T_arg2> operator_type; - return lambda(operator_type(a1.value_,a2.value_)); } -template -lambda, T_arg1, typename unwrap_reference::type> > -operator &= (const lambda& a1, const T_arg2& a2) -{ typedef lambda_operator, T_arg1, typename unwrap_reference::type> operator_type; - return lambda(operator_type(a1.value_,a2)); } -template -lambda, typename unwrap_reference::type, T_arg2> > -operator &= (const T_arg1& a1, const lambda& a2) -{ typedef lambda_operator, typename unwrap_reference::type, T_arg2> operator_type; - return lambda(operator_type(a1,a2.value_)); } - -// Operators for lambda action bitwise_assign. At least one of the arguments needs to be of type lamdba, hence the overloads. -template -lambda, T_arg1, T_arg2> > -operator |= (const lambda& a1, const lambda& a2) -{ typedef lambda_operator, T_arg1, T_arg2> operator_type; - return lambda(operator_type(a1.value_,a2.value_)); } -template -lambda, T_arg1, typename unwrap_reference::type> > -operator |= (const lambda& a1, const T_arg2& a2) -{ typedef lambda_operator, T_arg1, typename unwrap_reference::type> operator_type; - return lambda(operator_type(a1.value_,a2)); } -template -lambda, typename unwrap_reference::type, T_arg2> > -operator |= (const T_arg1& a1, const lambda& a2) -{ typedef lambda_operator, typename unwrap_reference::type, T_arg2> operator_type; - return lambda(operator_type(a1,a2.value_)); } - -// Operators for lambda action bitwise_assign. At least one of the arguments needs to be of type lamdba, hence the overloads. -template -lambda, T_arg1, T_arg2> > -operator ^= (const lambda& a1, const lambda& a2) -{ typedef lambda_operator, T_arg1, T_arg2> operator_type; - return lambda(operator_type(a1.value_,a2.value_)); } -template -lambda, T_arg1, typename unwrap_reference::type> > -operator ^= (const lambda& a1, const T_arg2& a2) -{ typedef lambda_operator, T_arg1, typename unwrap_reference::type> operator_type; - return lambda(operator_type(a1.value_,a2)); } -template -lambda, typename unwrap_reference::type, T_arg2> > -operator ^= (const T_arg1& a1, const lambda& a2) -{ typedef lambda_operator, typename unwrap_reference::type, T_arg2> operator_type; - return lambda(operator_type(a1,a2.value_)); } - -// Operator for lambda action unary_arithmetic. -template -lambda, T_arg> > -operator ++ (const lambda& a) -{ typedef lambda_operator_unary, T_arg> operator_type; - return lambda(operator_type(a.value_)); } - -// Operator for lambda action unary_arithmetic. -template -lambda, T_arg> > -operator -- (const lambda& a) -{ typedef lambda_operator_unary, T_arg> operator_type; - return lambda(operator_type(a.value_)); } - -// Operator for lambda action unary_arithmetic. -template -lambda, T_arg> > -operator - (const lambda& a) -{ typedef lambda_operator_unary, T_arg> operator_type; - return lambda(operator_type(a.value_)); } - -// Operator for lambda action unary_bitwise. -template -lambda, T_arg> > -operator ~ (const lambda& a) -{ typedef lambda_operator_unary, T_arg> operator_type; - return lambda(operator_type(a.value_)); } - -// Operator for lambda action unary_logical. -template -lambda, T_arg> > -operator ! (const lambda& a) -{ typedef lambda_operator_unary, T_arg> operator_type; - return lambda(operator_type(a.value_)); } - -// Operator for lambda action unary_other
. -template -lambda, T_arg> > -operator & (const lambda& a) -{ typedef lambda_operator_unary, T_arg> operator_type; - return lambda(operator_type(a.value_)); } - -// Operator for lambda action unary_other. -template -lambda, T_arg> > -operator * (const lambda& a) -{ typedef lambda_operator_unary, T_arg> operator_type; - return lambda(operator_type(a.value_)); } - -// Creators for lambda action cast_. -template -lambda, T_type, typename unwrap_lambda_type::type> > -reinterpret_cast_(const T_arg& a) -{ typedef lambda_operator_convert, T_type, typename unwrap_lambda_type::type> operator_type; - return lambda(operator_type(unwrap_lambda_value(a))); } - -// Creators for lambda action cast_. -template -lambda, T_type, typename unwrap_lambda_type::type> > -static_cast_(const T_arg& a) -{ typedef lambda_operator_convert, T_type, typename unwrap_lambda_type::type> operator_type; - return lambda(operator_type(unwrap_lambda_value(a))); } - -// Creators for lambda action cast_. -template -lambda, T_type, typename unwrap_lambda_type::type> > -dynamic_cast_(const T_arg& a) -{ typedef lambda_operator_convert, T_type, typename unwrap_lambda_type::type> operator_type; - return lambda(operator_type(unwrap_lambda_value(a))); } - - -} /* namespace sigc */ - -#endif /* _SIGC_LAMBDA_OPERATOR_HPP_ */ diff --git a/libs/sigc++2/sigc++/adaptors/lambda/select.h b/libs/sigc++2/sigc++/adaptors/lambda/select.h deleted file mode 100644 index 7cbf3eccfb..0000000000 --- a/libs/sigc++2/sigc++/adaptors/lambda/select.h +++ /dev/null @@ -1,346 +0,0 @@ -// -*- c++ -*- -/* Do not edit! -- generated file */ -#ifndef _SIGC_LAMBDA_SELECT_HPP_ -#define _SIGC_LAMBDA_SELECT_HPP_ -#include - -namespace sigc { - -namespace internal { -struct lambda_select1 : public lambda_base -{ - template - struct deduce_result_type - { typedef T_arg1 type; }; - typedef void result_type; // no operator ()() overload - - void operator ()() const; // not implemented - template - T_arg1 operator ()(T_arg1 _A_1) const { return _A_1; } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - //Does not work: T_arg1 sun_forte_workaround(T_arg1 _A_1) const { return operator()( _A_1 ); } - T_arg1 sun_forte_workaround(T_arg1 _A_1) const { return _A_1; } - #endif - - template - T_arg1 operator ()(T_arg1 _A_1,T_arg2 _A_2) const { return _A_1; } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - //Does not work: T_arg1 sun_forte_workaround(T_arg1 _A_1,T_arg2 _A_2) const { return operator()( _A_1,_A_2 ); } - T_arg1 sun_forte_workaround(T_arg1 _A_1,T_arg2 _A_2) const { return _A_1; } - #endif - - template - T_arg1 operator ()(T_arg1 _A_1,T_arg2 _A_2,T_arg3 _A_3) const { return _A_1; } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - //Does not work: T_arg1 sun_forte_workaround(T_arg1 _A_1,T_arg2 _A_2,T_arg3 _A_3) const { return operator()( _A_1,_A_2,_A_3 ); } - T_arg1 sun_forte_workaround(T_arg1 _A_1,T_arg2 _A_2,T_arg3 _A_3) const { return _A_1; } - #endif - - template - T_arg1 operator ()(T_arg1 _A_1,T_arg2 _A_2,T_arg3 _A_3,T_arg4 _A_4) const { return _A_1; } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - //Does not work: T_arg1 sun_forte_workaround(T_arg1 _A_1,T_arg2 _A_2,T_arg3 _A_3,T_arg4 _A_4) const { return operator()( _A_1,_A_2,_A_3,_A_4 ); } - T_arg1 sun_forte_workaround(T_arg1 _A_1,T_arg2 _A_2,T_arg3 _A_3,T_arg4 _A_4) const { return _A_1; } - #endif - - template - T_arg1 operator ()(T_arg1 _A_1,T_arg2 _A_2,T_arg3 _A_3,T_arg4 _A_4,T_arg5 _A_5) const { return _A_1; } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - //Does not work: T_arg1 sun_forte_workaround(T_arg1 _A_1,T_arg2 _A_2,T_arg3 _A_3,T_arg4 _A_4,T_arg5 _A_5) const { return operator()( _A_1,_A_2,_A_3,_A_4,_A_5 ); } - T_arg1 sun_forte_workaround(T_arg1 _A_1,T_arg2 _A_2,T_arg3 _A_3,T_arg4 _A_4,T_arg5 _A_5) const { return _A_1; } - #endif - - template - T_arg1 operator ()(T_arg1 _A_1,T_arg2 _A_2,T_arg3 _A_3,T_arg4 _A_4,T_arg5 _A_5,T_arg6 _A_6) const { return _A_1; } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - //Does not work: T_arg1 sun_forte_workaround(T_arg1 _A_1,T_arg2 _A_2,T_arg3 _A_3,T_arg4 _A_4,T_arg5 _A_5,T_arg6 _A_6) const { return operator()( _A_1,_A_2,_A_3,_A_4,_A_5,_A_6 ); } - T_arg1 sun_forte_workaround(T_arg1 _A_1,T_arg2 _A_2,T_arg3 _A_3,T_arg4 _A_4,T_arg5 _A_5,T_arg6 _A_6) const { return _A_1; } - #endif - - template - T_arg1 operator ()(T_arg1 _A_1,T_arg2 _A_2,T_arg3 _A_3,T_arg4 _A_4,T_arg5 _A_5,T_arg6 _A_6,T_arg7 _A_7) const { return _A_1; } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - //Does not work: T_arg1 sun_forte_workaround(T_arg1 _A_1,T_arg2 _A_2,T_arg3 _A_3,T_arg4 _A_4,T_arg5 _A_5,T_arg6 _A_6,T_arg7 _A_7) const { return operator()( _A_1,_A_2,_A_3,_A_4,_A_5,_A_6,_A_7 ); } - T_arg1 sun_forte_workaround(T_arg1 _A_1,T_arg2 _A_2,T_arg3 _A_3,T_arg4 _A_4,T_arg5 _A_5,T_arg6 _A_6,T_arg7 _A_7) const { return _A_1; } - #endif - -}; - -struct lambda_select2 : public lambda_base -{ - template - struct deduce_result_type - { typedef T_arg2 type; }; - typedef void result_type; // no operator ()() overload - - void operator ()() const; // not implemented - template - T_arg2 operator ()(T_arg1 _A_1,T_arg2 _A_2) const { return _A_2; } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - //Does not work: T_arg2 sun_forte_workaround(T_arg1 _A_1,T_arg2 _A_2) const { return operator()( _A_1,_A_2 ); } - T_arg2 sun_forte_workaround(T_arg1 _A_1,T_arg2 _A_2) const { return _A_2; } - #endif - - template - T_arg2 operator ()(T_arg1 _A_1,T_arg2 _A_2,T_arg3 _A_3) const { return _A_2; } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - //Does not work: T_arg2 sun_forte_workaround(T_arg1 _A_1,T_arg2 _A_2,T_arg3 _A_3) const { return operator()( _A_1,_A_2,_A_3 ); } - T_arg2 sun_forte_workaround(T_arg1 _A_1,T_arg2 _A_2,T_arg3 _A_3) const { return _A_2; } - #endif - - template - T_arg2 operator ()(T_arg1 _A_1,T_arg2 _A_2,T_arg3 _A_3,T_arg4 _A_4) const { return _A_2; } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - //Does not work: T_arg2 sun_forte_workaround(T_arg1 _A_1,T_arg2 _A_2,T_arg3 _A_3,T_arg4 _A_4) const { return operator()( _A_1,_A_2,_A_3,_A_4 ); } - T_arg2 sun_forte_workaround(T_arg1 _A_1,T_arg2 _A_2,T_arg3 _A_3,T_arg4 _A_4) const { return _A_2; } - #endif - - template - T_arg2 operator ()(T_arg1 _A_1,T_arg2 _A_2,T_arg3 _A_3,T_arg4 _A_4,T_arg5 _A_5) const { return _A_2; } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - //Does not work: T_arg2 sun_forte_workaround(T_arg1 _A_1,T_arg2 _A_2,T_arg3 _A_3,T_arg4 _A_4,T_arg5 _A_5) const { return operator()( _A_1,_A_2,_A_3,_A_4,_A_5 ); } - T_arg2 sun_forte_workaround(T_arg1 _A_1,T_arg2 _A_2,T_arg3 _A_3,T_arg4 _A_4,T_arg5 _A_5) const { return _A_2; } - #endif - - template - T_arg2 operator ()(T_arg1 _A_1,T_arg2 _A_2,T_arg3 _A_3,T_arg4 _A_4,T_arg5 _A_5,T_arg6 _A_6) const { return _A_2; } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - //Does not work: T_arg2 sun_forte_workaround(T_arg1 _A_1,T_arg2 _A_2,T_arg3 _A_3,T_arg4 _A_4,T_arg5 _A_5,T_arg6 _A_6) const { return operator()( _A_1,_A_2,_A_3,_A_4,_A_5,_A_6 ); } - T_arg2 sun_forte_workaround(T_arg1 _A_1,T_arg2 _A_2,T_arg3 _A_3,T_arg4 _A_4,T_arg5 _A_5,T_arg6 _A_6) const { return _A_2; } - #endif - - template - T_arg2 operator ()(T_arg1 _A_1,T_arg2 _A_2,T_arg3 _A_3,T_arg4 _A_4,T_arg5 _A_5,T_arg6 _A_6,T_arg7 _A_7) const { return _A_2; } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - //Does not work: T_arg2 sun_forte_workaround(T_arg1 _A_1,T_arg2 _A_2,T_arg3 _A_3,T_arg4 _A_4,T_arg5 _A_5,T_arg6 _A_6,T_arg7 _A_7) const { return operator()( _A_1,_A_2,_A_3,_A_4,_A_5,_A_6,_A_7 ); } - T_arg2 sun_forte_workaround(T_arg1 _A_1,T_arg2 _A_2,T_arg3 _A_3,T_arg4 _A_4,T_arg5 _A_5,T_arg6 _A_6,T_arg7 _A_7) const { return _A_2; } - #endif - -}; - -struct lambda_select3 : public lambda_base -{ - template - struct deduce_result_type - { typedef T_arg3 type; }; - typedef void result_type; // no operator ()() overload - - void operator ()() const; // not implemented - template - T_arg3 operator ()(T_arg1 _A_1,T_arg2 _A_2,T_arg3 _A_3) const { return _A_3; } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - //Does not work: T_arg3 sun_forte_workaround(T_arg1 _A_1,T_arg2 _A_2,T_arg3 _A_3) const { return operator()( _A_1,_A_2,_A_3 ); } - T_arg3 sun_forte_workaround(T_arg1 _A_1,T_arg2 _A_2,T_arg3 _A_3) const { return _A_3; } - #endif - - template - T_arg3 operator ()(T_arg1 _A_1,T_arg2 _A_2,T_arg3 _A_3,T_arg4 _A_4) const { return _A_3; } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - //Does not work: T_arg3 sun_forte_workaround(T_arg1 _A_1,T_arg2 _A_2,T_arg3 _A_3,T_arg4 _A_4) const { return operator()( _A_1,_A_2,_A_3,_A_4 ); } - T_arg3 sun_forte_workaround(T_arg1 _A_1,T_arg2 _A_2,T_arg3 _A_3,T_arg4 _A_4) const { return _A_3; } - #endif - - template - T_arg3 operator ()(T_arg1 _A_1,T_arg2 _A_2,T_arg3 _A_3,T_arg4 _A_4,T_arg5 _A_5) const { return _A_3; } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - //Does not work: T_arg3 sun_forte_workaround(T_arg1 _A_1,T_arg2 _A_2,T_arg3 _A_3,T_arg4 _A_4,T_arg5 _A_5) const { return operator()( _A_1,_A_2,_A_3,_A_4,_A_5 ); } - T_arg3 sun_forte_workaround(T_arg1 _A_1,T_arg2 _A_2,T_arg3 _A_3,T_arg4 _A_4,T_arg5 _A_5) const { return _A_3; } - #endif - - template - T_arg3 operator ()(T_arg1 _A_1,T_arg2 _A_2,T_arg3 _A_3,T_arg4 _A_4,T_arg5 _A_5,T_arg6 _A_6) const { return _A_3; } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - //Does not work: T_arg3 sun_forte_workaround(T_arg1 _A_1,T_arg2 _A_2,T_arg3 _A_3,T_arg4 _A_4,T_arg5 _A_5,T_arg6 _A_6) const { return operator()( _A_1,_A_2,_A_3,_A_4,_A_5,_A_6 ); } - T_arg3 sun_forte_workaround(T_arg1 _A_1,T_arg2 _A_2,T_arg3 _A_3,T_arg4 _A_4,T_arg5 _A_5,T_arg6 _A_6) const { return _A_3; } - #endif - - template - T_arg3 operator ()(T_arg1 _A_1,T_arg2 _A_2,T_arg3 _A_3,T_arg4 _A_4,T_arg5 _A_5,T_arg6 _A_6,T_arg7 _A_7) const { return _A_3; } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - //Does not work: T_arg3 sun_forte_workaround(T_arg1 _A_1,T_arg2 _A_2,T_arg3 _A_3,T_arg4 _A_4,T_arg5 _A_5,T_arg6 _A_6,T_arg7 _A_7) const { return operator()( _A_1,_A_2,_A_3,_A_4,_A_5,_A_6,_A_7 ); } - T_arg3 sun_forte_workaround(T_arg1 _A_1,T_arg2 _A_2,T_arg3 _A_3,T_arg4 _A_4,T_arg5 _A_5,T_arg6 _A_6,T_arg7 _A_7) const { return _A_3; } - #endif - -}; - -struct lambda_select4 : public lambda_base -{ - template - struct deduce_result_type - { typedef T_arg4 type; }; - typedef void result_type; // no operator ()() overload - - void operator ()() const; // not implemented - template - T_arg4 operator ()(T_arg1 _A_1,T_arg2 _A_2,T_arg3 _A_3,T_arg4 _A_4) const { return _A_4; } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - //Does not work: T_arg4 sun_forte_workaround(T_arg1 _A_1,T_arg2 _A_2,T_arg3 _A_3,T_arg4 _A_4) const { return operator()( _A_1,_A_2,_A_3,_A_4 ); } - T_arg4 sun_forte_workaround(T_arg1 _A_1,T_arg2 _A_2,T_arg3 _A_3,T_arg4 _A_4) const { return _A_4; } - #endif - - template - T_arg4 operator ()(T_arg1 _A_1,T_arg2 _A_2,T_arg3 _A_3,T_arg4 _A_4,T_arg5 _A_5) const { return _A_4; } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - //Does not work: T_arg4 sun_forte_workaround(T_arg1 _A_1,T_arg2 _A_2,T_arg3 _A_3,T_arg4 _A_4,T_arg5 _A_5) const { return operator()( _A_1,_A_2,_A_3,_A_4,_A_5 ); } - T_arg4 sun_forte_workaround(T_arg1 _A_1,T_arg2 _A_2,T_arg3 _A_3,T_arg4 _A_4,T_arg5 _A_5) const { return _A_4; } - #endif - - template - T_arg4 operator ()(T_arg1 _A_1,T_arg2 _A_2,T_arg3 _A_3,T_arg4 _A_4,T_arg5 _A_5,T_arg6 _A_6) const { return _A_4; } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - //Does not work: T_arg4 sun_forte_workaround(T_arg1 _A_1,T_arg2 _A_2,T_arg3 _A_3,T_arg4 _A_4,T_arg5 _A_5,T_arg6 _A_6) const { return operator()( _A_1,_A_2,_A_3,_A_4,_A_5,_A_6 ); } - T_arg4 sun_forte_workaround(T_arg1 _A_1,T_arg2 _A_2,T_arg3 _A_3,T_arg4 _A_4,T_arg5 _A_5,T_arg6 _A_6) const { return _A_4; } - #endif - - template - T_arg4 operator ()(T_arg1 _A_1,T_arg2 _A_2,T_arg3 _A_3,T_arg4 _A_4,T_arg5 _A_5,T_arg6 _A_6,T_arg7 _A_7) const { return _A_4; } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - //Does not work: T_arg4 sun_forte_workaround(T_arg1 _A_1,T_arg2 _A_2,T_arg3 _A_3,T_arg4 _A_4,T_arg5 _A_5,T_arg6 _A_6,T_arg7 _A_7) const { return operator()( _A_1,_A_2,_A_3,_A_4,_A_5,_A_6,_A_7 ); } - T_arg4 sun_forte_workaround(T_arg1 _A_1,T_arg2 _A_2,T_arg3 _A_3,T_arg4 _A_4,T_arg5 _A_5,T_arg6 _A_6,T_arg7 _A_7) const { return _A_4; } - #endif - -}; - -struct lambda_select5 : public lambda_base -{ - template - struct deduce_result_type - { typedef T_arg5 type; }; - typedef void result_type; // no operator ()() overload - - void operator ()() const; // not implemented - template - T_arg5 operator ()(T_arg1 _A_1,T_arg2 _A_2,T_arg3 _A_3,T_arg4 _A_4,T_arg5 _A_5) const { return _A_5; } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - //Does not work: T_arg5 sun_forte_workaround(T_arg1 _A_1,T_arg2 _A_2,T_arg3 _A_3,T_arg4 _A_4,T_arg5 _A_5) const { return operator()( _A_1,_A_2,_A_3,_A_4,_A_5 ); } - T_arg5 sun_forte_workaround(T_arg1 _A_1,T_arg2 _A_2,T_arg3 _A_3,T_arg4 _A_4,T_arg5 _A_5) const { return _A_5; } - #endif - - template - T_arg5 operator ()(T_arg1 _A_1,T_arg2 _A_2,T_arg3 _A_3,T_arg4 _A_4,T_arg5 _A_5,T_arg6 _A_6) const { return _A_5; } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - //Does not work: T_arg5 sun_forte_workaround(T_arg1 _A_1,T_arg2 _A_2,T_arg3 _A_3,T_arg4 _A_4,T_arg5 _A_5,T_arg6 _A_6) const { return operator()( _A_1,_A_2,_A_3,_A_4,_A_5,_A_6 ); } - T_arg5 sun_forte_workaround(T_arg1 _A_1,T_arg2 _A_2,T_arg3 _A_3,T_arg4 _A_4,T_arg5 _A_5,T_arg6 _A_6) const { return _A_5; } - #endif - - template - T_arg5 operator ()(T_arg1 _A_1,T_arg2 _A_2,T_arg3 _A_3,T_arg4 _A_4,T_arg5 _A_5,T_arg6 _A_6,T_arg7 _A_7) const { return _A_5; } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - //Does not work: T_arg5 sun_forte_workaround(T_arg1 _A_1,T_arg2 _A_2,T_arg3 _A_3,T_arg4 _A_4,T_arg5 _A_5,T_arg6 _A_6,T_arg7 _A_7) const { return operator()( _A_1,_A_2,_A_3,_A_4,_A_5,_A_6,_A_7 ); } - T_arg5 sun_forte_workaround(T_arg1 _A_1,T_arg2 _A_2,T_arg3 _A_3,T_arg4 _A_4,T_arg5 _A_5,T_arg6 _A_6,T_arg7 _A_7) const { return _A_5; } - #endif - -}; - -struct lambda_select6 : public lambda_base -{ - template - struct deduce_result_type - { typedef T_arg6 type; }; - typedef void result_type; // no operator ()() overload - - void operator ()() const; // not implemented - template - T_arg6 operator ()(T_arg1 _A_1,T_arg2 _A_2,T_arg3 _A_3,T_arg4 _A_4,T_arg5 _A_5,T_arg6 _A_6) const { return _A_6; } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - //Does not work: T_arg6 sun_forte_workaround(T_arg1 _A_1,T_arg2 _A_2,T_arg3 _A_3,T_arg4 _A_4,T_arg5 _A_5,T_arg6 _A_6) const { return operator()( _A_1,_A_2,_A_3,_A_4,_A_5,_A_6 ); } - T_arg6 sun_forte_workaround(T_arg1 _A_1,T_arg2 _A_2,T_arg3 _A_3,T_arg4 _A_4,T_arg5 _A_5,T_arg6 _A_6) const { return _A_6; } - #endif - - template - T_arg6 operator ()(T_arg1 _A_1,T_arg2 _A_2,T_arg3 _A_3,T_arg4 _A_4,T_arg5 _A_5,T_arg6 _A_6,T_arg7 _A_7) const { return _A_6; } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - //Does not work: T_arg6 sun_forte_workaround(T_arg1 _A_1,T_arg2 _A_2,T_arg3 _A_3,T_arg4 _A_4,T_arg5 _A_5,T_arg6 _A_6,T_arg7 _A_7) const { return operator()( _A_1,_A_2,_A_3,_A_4,_A_5,_A_6,_A_7 ); } - T_arg6 sun_forte_workaround(T_arg1 _A_1,T_arg2 _A_2,T_arg3 _A_3,T_arg4 _A_4,T_arg5 _A_5,T_arg6 _A_6,T_arg7 _A_7) const { return _A_6; } - #endif - -}; - -struct lambda_select7 : public lambda_base -{ - template - struct deduce_result_type - { typedef T_arg7 type; }; - typedef void result_type; // no operator ()() overload - - void operator ()() const; // not implemented - template - T_arg7 operator ()(T_arg1 _A_1,T_arg2 _A_2,T_arg3 _A_3,T_arg4 _A_4,T_arg5 _A_5,T_arg6 _A_6,T_arg7 _A_7) const { return _A_7; } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - //Does not work: T_arg7 sun_forte_workaround(T_arg1 _A_1,T_arg2 _A_2,T_arg3 _A_3,T_arg4 _A_4,T_arg5 _A_5,T_arg6 _A_6,T_arg7 _A_7) const { return operator()( _A_1,_A_2,_A_3,_A_4,_A_5,_A_6,_A_7 ); } - T_arg7 sun_forte_workaround(T_arg1 _A_1,T_arg2 _A_2,T_arg3 _A_3,T_arg4 _A_4,T_arg5 _A_5,T_arg6 _A_6,T_arg7 _A_7) const { return _A_7; } - #endif - -}; - - -} /* namespace internal */ - -extern SIGC_API const lambda _1; -extern SIGC_API const lambda _2; -extern SIGC_API const lambda _3; -extern SIGC_API const lambda _4; -extern SIGC_API const lambda _5; -extern SIGC_API const lambda _6; -extern SIGC_API const lambda _7; - - -} /* namespace sigc */ - -#endif /* _SIGC_LAMBDA_SELECT_HPP_ */ diff --git a/libs/sigc++2/sigc++/adaptors/retype.h b/libs/sigc++2/sigc++/adaptors/retype.h deleted file mode 100644 index 01f71fcaa7..0000000000 --- a/libs/sigc++2/sigc++/adaptors/retype.h +++ /dev/null @@ -1,1247 +0,0 @@ -// -*- c++ -*- -/* Do not edit! -- generated file */ -#ifndef _SIGC_ADAPTORS_MACROS_RETYPEHM4_ -#define _SIGC_ADAPTORS_MACROS_RETYPEHM4_ -#include -#include -#include -#include - -namespace sigc { - -/** @defgroup retype retype(), retype_return() - * sigc::retype() alters a sigc::pointer_functor, a sigc::mem_functor or a sigc::slot - * in that it makes C-style casts to the functor's parameter types - * of all parameters passed through operator()(). - * - * Use this adaptor for inline conversion between numeric or other simple types. - * @par Example: - * @code - * void foo(int); - * sigc::retype(sigc::ptr_fun(&foo))(5.7F); // calls foo(5) - * @endcode - * - * The functor sigc::retype() returns can be passed into - * sigc::signal::connect() directly. - * - * @par Example: - * @code - * sigc::signal some_signal; - * void foo(int); - * some_signal.connect(sigc::retype(sigc::ptr_fun(&foo))); - * @endcode - * - * This adaptor builds an exception in that it only works on sig::pointer_functor, - * sigc::mem_functor and sigc::slot because it needs sophisticated information about - * the parameter types that cannot be deduced from arbitrary functor types. - * - * sigc::retype_return() alters the return type of an arbitrary functor. - * Like in sigc::retype() a C-style cast is preformed. Usage sigc::retype_return() is - * not restricted to libsigc++ functor types but you need to - * specify the new return type as a template parameter. - * - * @par Example: - * @code - * float foo(); - * std::cout << sigc::retype_return(&foo)(); // converts foo's return value to an integer - * @endcode - * - * @ingroup adaptors - */ - -/** Adaptor that performs C-style casts on the parameters passed on to the functor. - * Use the convenience function sigc::retype() to create an instance of retype_functor. - * - * The following template arguments are used: - * - @e T_functor Type of the functor to wrap. - * - @e T_type1 Type of @e T_functor's 1th argument. - * - @e T_type2 Type of @e T_functor's 2th argument. - * - @e T_type3 Type of @e T_functor's 3th argument. - * - @e T_type4 Type of @e T_functor's 4th argument. - * - @e T_type5 Type of @e T_functor's 5th argument. - * - @e T_type6 Type of @e T_functor's 6th argument. - * - @e T_type7 Type of @e T_functor's 7th argument. - * - * @ingroup retype - */ -template -struct retype_functor - : public adapts -{ - typedef typename adapts::adaptor_type adaptor_type; - - template - struct deduce_result_type - { typedef typename adaptor_type::template deduce_result_type::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass>::type type; }; - typedef typename adapts::result_type result_type; - - result_type operator()(); - - template - typename deduce_result_type::type - operator()(T_arg1 _A_a1) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::take> - ((T_type1)_A_a1); - } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - typename deduce_result_type::type - sun_forte_workaround(T_arg1 _A_a1) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::take> - ((T_type1)_A_a1); - } - #endif - - template - typename deduce_result_type::type - operator()(T_arg1 _A_a1,T_arg2 _A_a2) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::take,typename type_trait::take> - ((T_type1)_A_a1,(T_type2)_A_a2); - } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - typename deduce_result_type::type - sun_forte_workaround(T_arg1 _A_a1,T_arg2 _A_a2) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::take,typename type_trait::take> - ((T_type1)_A_a1,(T_type2)_A_a2); - } - #endif - - template - typename deduce_result_type::type - operator()(T_arg1 _A_a1,T_arg2 _A_a2,T_arg3 _A_a3) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::take,typename type_trait::take,typename type_trait::take> - ((T_type1)_A_a1,(T_type2)_A_a2,(T_type3)_A_a3); - } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - typename deduce_result_type::type - sun_forte_workaround(T_arg1 _A_a1,T_arg2 _A_a2,T_arg3 _A_a3) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::take,typename type_trait::take,typename type_trait::take> - ((T_type1)_A_a1,(T_type2)_A_a2,(T_type3)_A_a3); - } - #endif - - template - typename deduce_result_type::type - operator()(T_arg1 _A_a1,T_arg2 _A_a2,T_arg3 _A_a3,T_arg4 _A_a4) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::take,typename type_trait::take,typename type_trait::take,typename type_trait::take> - ((T_type1)_A_a1,(T_type2)_A_a2,(T_type3)_A_a3,(T_type4)_A_a4); - } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - typename deduce_result_type::type - sun_forte_workaround(T_arg1 _A_a1,T_arg2 _A_a2,T_arg3 _A_a3,T_arg4 _A_a4) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::take,typename type_trait::take,typename type_trait::take,typename type_trait::take> - ((T_type1)_A_a1,(T_type2)_A_a2,(T_type3)_A_a3,(T_type4)_A_a4); - } - #endif - - template - typename deduce_result_type::type - operator()(T_arg1 _A_a1,T_arg2 _A_a2,T_arg3 _A_a3,T_arg4 _A_a4,T_arg5 _A_a5) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::take,typename type_trait::take,typename type_trait::take,typename type_trait::take,typename type_trait::take> - ((T_type1)_A_a1,(T_type2)_A_a2,(T_type3)_A_a3,(T_type4)_A_a4,(T_type5)_A_a5); - } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - typename deduce_result_type::type - sun_forte_workaround(T_arg1 _A_a1,T_arg2 _A_a2,T_arg3 _A_a3,T_arg4 _A_a4,T_arg5 _A_a5) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::take,typename type_trait::take,typename type_trait::take,typename type_trait::take,typename type_trait::take> - ((T_type1)_A_a1,(T_type2)_A_a2,(T_type3)_A_a3,(T_type4)_A_a4,(T_type5)_A_a5); - } - #endif - - template - typename deduce_result_type::type - operator()(T_arg1 _A_a1,T_arg2 _A_a2,T_arg3 _A_a3,T_arg4 _A_a4,T_arg5 _A_a5,T_arg6 _A_a6) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::take,typename type_trait::take,typename type_trait::take,typename type_trait::take,typename type_trait::take,typename type_trait::take> - ((T_type1)_A_a1,(T_type2)_A_a2,(T_type3)_A_a3,(T_type4)_A_a4,(T_type5)_A_a5,(T_type6)_A_a6); - } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - typename deduce_result_type::type - sun_forte_workaround(T_arg1 _A_a1,T_arg2 _A_a2,T_arg3 _A_a3,T_arg4 _A_a4,T_arg5 _A_a5,T_arg6 _A_a6) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::take,typename type_trait::take,typename type_trait::take,typename type_trait::take,typename type_trait::take,typename type_trait::take> - ((T_type1)_A_a1,(T_type2)_A_a2,(T_type3)_A_a3,(T_type4)_A_a4,(T_type5)_A_a5,(T_type6)_A_a6); - } - #endif - - template - typename deduce_result_type::type - operator()(T_arg1 _A_a1,T_arg2 _A_a2,T_arg3 _A_a3,T_arg4 _A_a4,T_arg5 _A_a5,T_arg6 _A_a6,T_arg7 _A_a7) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::take,typename type_trait::take,typename type_trait::take,typename type_trait::take,typename type_trait::take,typename type_trait::take,typename type_trait::take> - ((T_type1)_A_a1,(T_type2)_A_a2,(T_type3)_A_a3,(T_type4)_A_a4,(T_type5)_A_a5,(T_type6)_A_a6,(T_type7)_A_a7); - } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - typename deduce_result_type::type - sun_forte_workaround(T_arg1 _A_a1,T_arg2 _A_a2,T_arg3 _A_a3,T_arg4 _A_a4,T_arg5 _A_a5,T_arg6 _A_a6,T_arg7 _A_a7) - { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::take,typename type_trait::take,typename type_trait::take,typename type_trait::take,typename type_trait::take,typename type_trait::take,typename type_trait::take> - ((T_type1)_A_a1,(T_type2)_A_a2,(T_type3)_A_a3,(T_type4)_A_a4,(T_type5)_A_a5,(T_type6)_A_a6,(T_type7)_A_a7); - } - #endif - - - /** Constructs a retype_functor object that performs C-style casts on the parameters passed on to the functor. - * @param _A_functor Functor to invoke from operator()(). - */ - explicit retype_functor(typename type_trait::take _A_functor) - : adapts(_A_functor) - {} -}; - -template -typename retype_functor::result_type -retype_functor::operator()() - { return this->functor_(); } - - -/** Performs a functor on each of the targets of a functor. - * The function overload for sigc::retype_functor performs a functor on the - * functor stored in the sigc::retype_functor object. - * - * @ingroup retype - */ -template -void visit_each(const T_action& _A_action, - const retype_functor& _A_target) -{ - visit_each(_A_action, _A_target.functor_); -} - - -/** Creates an adaptor of type sigc::retype_functor which performs C-style casts on the parameters passed on to the functor. - * This function template specialization works on sigc::slot. - * - * @param _A_functor Functor that should be wrapped. - * @return Adaptor that executes @e _A_functor performing C-style casts on the paramters passed on. - * - * @ingroup retype - */ -template -inline retype_functor, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6,T_arg7 > -retype(const slot& _A_functor) -{ return retype_functor, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6,T_arg7 > - (_A_functor); } - - -/** Creates an adaptor of type sigc::retype_functor which performs C-style casts on the parameters passed on to the functor. - * This function template specialization works on sigc::pointer_functor. - * - * @param _A_functor Functor that should be wrapped. - * @return Adaptor that executes @e _A_functor performing C-style casts on the paramters passed on. - * - * @ingroup retype - */ -template -inline retype_functor > -retype(const pointer_functor0& _A_functor) -{ return retype_functor > - (_A_functor); } - -/** Creates an adaptor of type sigc::retype_functor which performs C-style casts on the parameters passed on to the functor. - * This function template specialization works on sigc::pointer_functor. - * - * @param _A_functor Functor that should be wrapped. - * @return Adaptor that executes @e _A_functor performing C-style casts on the paramters passed on. - * - * @ingroup retype - */ -template -inline retype_functor, T_arg1 > -retype(const pointer_functor1& _A_functor) -{ return retype_functor, T_arg1 > - (_A_functor); } - -/** Creates an adaptor of type sigc::retype_functor which performs C-style casts on the parameters passed on to the functor. - * This function template specialization works on sigc::pointer_functor. - * - * @param _A_functor Functor that should be wrapped. - * @return Adaptor that executes @e _A_functor performing C-style casts on the paramters passed on. - * - * @ingroup retype - */ -template -inline retype_functor, T_arg1,T_arg2 > -retype(const pointer_functor2& _A_functor) -{ return retype_functor, T_arg1,T_arg2 > - (_A_functor); } - -/** Creates an adaptor of type sigc::retype_functor which performs C-style casts on the parameters passed on to the functor. - * This function template specialization works on sigc::pointer_functor. - * - * @param _A_functor Functor that should be wrapped. - * @return Adaptor that executes @e _A_functor performing C-style casts on the paramters passed on. - * - * @ingroup retype - */ -template -inline retype_functor, T_arg1,T_arg2,T_arg3 > -retype(const pointer_functor3& _A_functor) -{ return retype_functor, T_arg1,T_arg2,T_arg3 > - (_A_functor); } - -/** Creates an adaptor of type sigc::retype_functor which performs C-style casts on the parameters passed on to the functor. - * This function template specialization works on sigc::pointer_functor. - * - * @param _A_functor Functor that should be wrapped. - * @return Adaptor that executes @e _A_functor performing C-style casts on the paramters passed on. - * - * @ingroup retype - */ -template -inline retype_functor, T_arg1,T_arg2,T_arg3,T_arg4 > -retype(const pointer_functor4& _A_functor) -{ return retype_functor, T_arg1,T_arg2,T_arg3,T_arg4 > - (_A_functor); } - -/** Creates an adaptor of type sigc::retype_functor which performs C-style casts on the parameters passed on to the functor. - * This function template specialization works on sigc::pointer_functor. - * - * @param _A_functor Functor that should be wrapped. - * @return Adaptor that executes @e _A_functor performing C-style casts on the paramters passed on. - * - * @ingroup retype - */ -template -inline retype_functor, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5 > -retype(const pointer_functor5& _A_functor) -{ return retype_functor, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5 > - (_A_functor); } - -/** Creates an adaptor of type sigc::retype_functor which performs C-style casts on the parameters passed on to the functor. - * This function template specialization works on sigc::pointer_functor. - * - * @param _A_functor Functor that should be wrapped. - * @return Adaptor that executes @e _A_functor performing C-style casts on the paramters passed on. - * - * @ingroup retype - */ -template -inline retype_functor, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6 > -retype(const pointer_functor6& _A_functor) -{ return retype_functor, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6 > - (_A_functor); } - -/** Creates an adaptor of type sigc::retype_functor which performs C-style casts on the parameters passed on to the functor. - * This function template specialization works on sigc::pointer_functor. - * - * @param _A_functor Functor that should be wrapped. - * @return Adaptor that executes @e _A_functor performing C-style casts on the paramters passed on. - * - * @ingroup retype - */ -template -inline retype_functor, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6,T_arg7 > -retype(const pointer_functor7& _A_functor) -{ return retype_functor, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6,T_arg7 > - (_A_functor); } - - -/** Creates an adaptor of type sigc::retype_functor which performs C-style casts on the parameters passed on to the functor. - * This function template specialization works on sigc::mem_functor. - * - * @param _A_functor Functor that should be wrapped. - * @return Adaptor that executes @e _A_functor performing C-style casts on the paramters passed on. - * - * @ingroup retype - */ -template -inline retype_functor > -retype(const mem_functor0& _A_functor) -{ return retype_functor > - (_A_functor); } - -/** Creates an adaptor of type sigc::retype_functor which performs C-style casts on the parameters passed on to the functor. - * This function template specialization works on sigc::mem_functor. - * - * @param _A_functor Functor that should be wrapped. - * @return Adaptor that executes @e _A_functor performing C-style casts on the paramters passed on. - * - * @ingroup retype - */ -template -inline retype_functor, T_arg1 > -retype(const mem_functor1& _A_functor) -{ return retype_functor, T_arg1 > - (_A_functor); } - -/** Creates an adaptor of type sigc::retype_functor which performs C-style casts on the parameters passed on to the functor. - * This function template specialization works on sigc::mem_functor. - * - * @param _A_functor Functor that should be wrapped. - * @return Adaptor that executes @e _A_functor performing C-style casts on the paramters passed on. - * - * @ingroup retype - */ -template -inline retype_functor, T_arg1,T_arg2 > -retype(const mem_functor2& _A_functor) -{ return retype_functor, T_arg1,T_arg2 > - (_A_functor); } - -/** Creates an adaptor of type sigc::retype_functor which performs C-style casts on the parameters passed on to the functor. - * This function template specialization works on sigc::mem_functor. - * - * @param _A_functor Functor that should be wrapped. - * @return Adaptor that executes @e _A_functor performing C-style casts on the paramters passed on. - * - * @ingroup retype - */ -template -inline retype_functor, T_arg1,T_arg2,T_arg3 > -retype(const mem_functor3& _A_functor) -{ return retype_functor, T_arg1,T_arg2,T_arg3 > - (_A_functor); } - -/** Creates an adaptor of type sigc::retype_functor which performs C-style casts on the parameters passed on to the functor. - * This function template specialization works on sigc::mem_functor. - * - * @param _A_functor Functor that should be wrapped. - * @return Adaptor that executes @e _A_functor performing C-style casts on the paramters passed on. - * - * @ingroup retype - */ -template -inline retype_functor, T_arg1,T_arg2,T_arg3,T_arg4 > -retype(const mem_functor4& _A_functor) -{ return retype_functor, T_arg1,T_arg2,T_arg3,T_arg4 > - (_A_functor); } - -/** Creates an adaptor of type sigc::retype_functor which performs C-style casts on the parameters passed on to the functor. - * This function template specialization works on sigc::mem_functor. - * - * @param _A_functor Functor that should be wrapped. - * @return Adaptor that executes @e _A_functor performing C-style casts on the paramters passed on. - * - * @ingroup retype - */ -template -inline retype_functor, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5 > -retype(const mem_functor5& _A_functor) -{ return retype_functor, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5 > - (_A_functor); } - -/** Creates an adaptor of type sigc::retype_functor which performs C-style casts on the parameters passed on to the functor. - * This function template specialization works on sigc::mem_functor. - * - * @param _A_functor Functor that should be wrapped. - * @return Adaptor that executes @e _A_functor performing C-style casts on the paramters passed on. - * - * @ingroup retype - */ -template -inline retype_functor, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6 > -retype(const mem_functor6& _A_functor) -{ return retype_functor, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6 > - (_A_functor); } - -/** Creates an adaptor of type sigc::retype_functor which performs C-style casts on the parameters passed on to the functor. - * This function template specialization works on sigc::mem_functor. - * - * @param _A_functor Functor that should be wrapped. - * @return Adaptor that executes @e _A_functor performing C-style casts on the paramters passed on. - * - * @ingroup retype - */ -template -inline retype_functor, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6,T_arg7 > -retype(const mem_functor7& _A_functor) -{ return retype_functor, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6,T_arg7 > - (_A_functor); } - -/** Creates an adaptor of type sigc::retype_functor which performs C-style casts on the parameters passed on to the functor. - * This function template specialization works on sigc::const_mem_functor. - * - * @param _A_functor Functor that should be wrapped. - * @return Adaptor that executes @e _A_functor performing C-style casts on the paramters passed on. - * - * @ingroup retype - */ -template -inline retype_functor > -retype(const const_mem_functor0& _A_functor) -{ return retype_functor > - (_A_functor); } - -/** Creates an adaptor of type sigc::retype_functor which performs C-style casts on the parameters passed on to the functor. - * This function template specialization works on sigc::const_mem_functor. - * - * @param _A_functor Functor that should be wrapped. - * @return Adaptor that executes @e _A_functor performing C-style casts on the paramters passed on. - * - * @ingroup retype - */ -template -inline retype_functor, T_arg1 > -retype(const const_mem_functor1& _A_functor) -{ return retype_functor, T_arg1 > - (_A_functor); } - -/** Creates an adaptor of type sigc::retype_functor which performs C-style casts on the parameters passed on to the functor. - * This function template specialization works on sigc::const_mem_functor. - * - * @param _A_functor Functor that should be wrapped. - * @return Adaptor that executes @e _A_functor performing C-style casts on the paramters passed on. - * - * @ingroup retype - */ -template -inline retype_functor, T_arg1,T_arg2 > -retype(const const_mem_functor2& _A_functor) -{ return retype_functor, T_arg1,T_arg2 > - (_A_functor); } - -/** Creates an adaptor of type sigc::retype_functor which performs C-style casts on the parameters passed on to the functor. - * This function template specialization works on sigc::const_mem_functor. - * - * @param _A_functor Functor that should be wrapped. - * @return Adaptor that executes @e _A_functor performing C-style casts on the paramters passed on. - * - * @ingroup retype - */ -template -inline retype_functor, T_arg1,T_arg2,T_arg3 > -retype(const const_mem_functor3& _A_functor) -{ return retype_functor, T_arg1,T_arg2,T_arg3 > - (_A_functor); } - -/** Creates an adaptor of type sigc::retype_functor which performs C-style casts on the parameters passed on to the functor. - * This function template specialization works on sigc::const_mem_functor. - * - * @param _A_functor Functor that should be wrapped. - * @return Adaptor that executes @e _A_functor performing C-style casts on the paramters passed on. - * - * @ingroup retype - */ -template -inline retype_functor, T_arg1,T_arg2,T_arg3,T_arg4 > -retype(const const_mem_functor4& _A_functor) -{ return retype_functor, T_arg1,T_arg2,T_arg3,T_arg4 > - (_A_functor); } - -/** Creates an adaptor of type sigc::retype_functor which performs C-style casts on the parameters passed on to the functor. - * This function template specialization works on sigc::const_mem_functor. - * - * @param _A_functor Functor that should be wrapped. - * @return Adaptor that executes @e _A_functor performing C-style casts on the paramters passed on. - * - * @ingroup retype - */ -template -inline retype_functor, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5 > -retype(const const_mem_functor5& _A_functor) -{ return retype_functor, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5 > - (_A_functor); } - -/** Creates an adaptor of type sigc::retype_functor which performs C-style casts on the parameters passed on to the functor. - * This function template specialization works on sigc::const_mem_functor. - * - * @param _A_functor Functor that should be wrapped. - * @return Adaptor that executes @e _A_functor performing C-style casts on the paramters passed on. - * - * @ingroup retype - */ -template -inline retype_functor, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6 > -retype(const const_mem_functor6& _A_functor) -{ return retype_functor, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6 > - (_A_functor); } - -/** Creates an adaptor of type sigc::retype_functor which performs C-style casts on the parameters passed on to the functor. - * This function template specialization works on sigc::const_mem_functor. - * - * @param _A_functor Functor that should be wrapped. - * @return Adaptor that executes @e _A_functor performing C-style casts on the paramters passed on. - * - * @ingroup retype - */ -template -inline retype_functor, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6,T_arg7 > -retype(const const_mem_functor7& _A_functor) -{ return retype_functor, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6,T_arg7 > - (_A_functor); } - -/** Creates an adaptor of type sigc::retype_functor which performs C-style casts on the parameters passed on to the functor. - * This function template specialization works on sigc::volatile_mem_functor. - * - * @param _A_functor Functor that should be wrapped. - * @return Adaptor that executes @e _A_functor performing C-style casts on the paramters passed on. - * - * @ingroup retype - */ -template -inline retype_functor > -retype(const volatile_mem_functor0& _A_functor) -{ return retype_functor > - (_A_functor); } - -/** Creates an adaptor of type sigc::retype_functor which performs C-style casts on the parameters passed on to the functor. - * This function template specialization works on sigc::volatile_mem_functor. - * - * @param _A_functor Functor that should be wrapped. - * @return Adaptor that executes @e _A_functor performing C-style casts on the paramters passed on. - * - * @ingroup retype - */ -template -inline retype_functor, T_arg1 > -retype(const volatile_mem_functor1& _A_functor) -{ return retype_functor, T_arg1 > - (_A_functor); } - -/** Creates an adaptor of type sigc::retype_functor which performs C-style casts on the parameters passed on to the functor. - * This function template specialization works on sigc::volatile_mem_functor. - * - * @param _A_functor Functor that should be wrapped. - * @return Adaptor that executes @e _A_functor performing C-style casts on the paramters passed on. - * - * @ingroup retype - */ -template -inline retype_functor, T_arg1,T_arg2 > -retype(const volatile_mem_functor2& _A_functor) -{ return retype_functor, T_arg1,T_arg2 > - (_A_functor); } - -/** Creates an adaptor of type sigc::retype_functor which performs C-style casts on the parameters passed on to the functor. - * This function template specialization works on sigc::volatile_mem_functor. - * - * @param _A_functor Functor that should be wrapped. - * @return Adaptor that executes @e _A_functor performing C-style casts on the paramters passed on. - * - * @ingroup retype - */ -template -inline retype_functor, T_arg1,T_arg2,T_arg3 > -retype(const volatile_mem_functor3& _A_functor) -{ return retype_functor, T_arg1,T_arg2,T_arg3 > - (_A_functor); } - -/** Creates an adaptor of type sigc::retype_functor which performs C-style casts on the parameters passed on to the functor. - * This function template specialization works on sigc::volatile_mem_functor. - * - * @param _A_functor Functor that should be wrapped. - * @return Adaptor that executes @e _A_functor performing C-style casts on the paramters passed on. - * - * @ingroup retype - */ -template -inline retype_functor, T_arg1,T_arg2,T_arg3,T_arg4 > -retype(const volatile_mem_functor4& _A_functor) -{ return retype_functor, T_arg1,T_arg2,T_arg3,T_arg4 > - (_A_functor); } - -/** Creates an adaptor of type sigc::retype_functor which performs C-style casts on the parameters passed on to the functor. - * This function template specialization works on sigc::volatile_mem_functor. - * - * @param _A_functor Functor that should be wrapped. - * @return Adaptor that executes @e _A_functor performing C-style casts on the paramters passed on. - * - * @ingroup retype - */ -template -inline retype_functor, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5 > -retype(const volatile_mem_functor5& _A_functor) -{ return retype_functor, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5 > - (_A_functor); } - -/** Creates an adaptor of type sigc::retype_functor which performs C-style casts on the parameters passed on to the functor. - * This function template specialization works on sigc::volatile_mem_functor. - * - * @param _A_functor Functor that should be wrapped. - * @return Adaptor that executes @e _A_functor performing C-style casts on the paramters passed on. - * - * @ingroup retype - */ -template -inline retype_functor, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6 > -retype(const volatile_mem_functor6& _A_functor) -{ return retype_functor, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6 > - (_A_functor); } - -/** Creates an adaptor of type sigc::retype_functor which performs C-style casts on the parameters passed on to the functor. - * This function template specialization works on sigc::volatile_mem_functor. - * - * @param _A_functor Functor that should be wrapped. - * @return Adaptor that executes @e _A_functor performing C-style casts on the paramters passed on. - * - * @ingroup retype - */ -template -inline retype_functor, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6,T_arg7 > -retype(const volatile_mem_functor7& _A_functor) -{ return retype_functor, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6,T_arg7 > - (_A_functor); } - -/** Creates an adaptor of type sigc::retype_functor which performs C-style casts on the parameters passed on to the functor. - * This function template specialization works on sigc::const_volatile_mem_functor. - * - * @param _A_functor Functor that should be wrapped. - * @return Adaptor that executes @e _A_functor performing C-style casts on the paramters passed on. - * - * @ingroup retype - */ -template -inline retype_functor > -retype(const const_volatile_mem_functor0& _A_functor) -{ return retype_functor > - (_A_functor); } - -/** Creates an adaptor of type sigc::retype_functor which performs C-style casts on the parameters passed on to the functor. - * This function template specialization works on sigc::const_volatile_mem_functor. - * - * @param _A_functor Functor that should be wrapped. - * @return Adaptor that executes @e _A_functor performing C-style casts on the paramters passed on. - * - * @ingroup retype - */ -template -inline retype_functor, T_arg1 > -retype(const const_volatile_mem_functor1& _A_functor) -{ return retype_functor, T_arg1 > - (_A_functor); } - -/** Creates an adaptor of type sigc::retype_functor which performs C-style casts on the parameters passed on to the functor. - * This function template specialization works on sigc::const_volatile_mem_functor. - * - * @param _A_functor Functor that should be wrapped. - * @return Adaptor that executes @e _A_functor performing C-style casts on the paramters passed on. - * - * @ingroup retype - */ -template -inline retype_functor, T_arg1,T_arg2 > -retype(const const_volatile_mem_functor2& _A_functor) -{ return retype_functor, T_arg1,T_arg2 > - (_A_functor); } - -/** Creates an adaptor of type sigc::retype_functor which performs C-style casts on the parameters passed on to the functor. - * This function template specialization works on sigc::const_volatile_mem_functor. - * - * @param _A_functor Functor that should be wrapped. - * @return Adaptor that executes @e _A_functor performing C-style casts on the paramters passed on. - * - * @ingroup retype - */ -template -inline retype_functor, T_arg1,T_arg2,T_arg3 > -retype(const const_volatile_mem_functor3& _A_functor) -{ return retype_functor, T_arg1,T_arg2,T_arg3 > - (_A_functor); } - -/** Creates an adaptor of type sigc::retype_functor which performs C-style casts on the parameters passed on to the functor. - * This function template specialization works on sigc::const_volatile_mem_functor. - * - * @param _A_functor Functor that should be wrapped. - * @return Adaptor that executes @e _A_functor performing C-style casts on the paramters passed on. - * - * @ingroup retype - */ -template -inline retype_functor, T_arg1,T_arg2,T_arg3,T_arg4 > -retype(const const_volatile_mem_functor4& _A_functor) -{ return retype_functor, T_arg1,T_arg2,T_arg3,T_arg4 > - (_A_functor); } - -/** Creates an adaptor of type sigc::retype_functor which performs C-style casts on the parameters passed on to the functor. - * This function template specialization works on sigc::const_volatile_mem_functor. - * - * @param _A_functor Functor that should be wrapped. - * @return Adaptor that executes @e _A_functor performing C-style casts on the paramters passed on. - * - * @ingroup retype - */ -template -inline retype_functor, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5 > -retype(const const_volatile_mem_functor5& _A_functor) -{ return retype_functor, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5 > - (_A_functor); } - -/** Creates an adaptor of type sigc::retype_functor which performs C-style casts on the parameters passed on to the functor. - * This function template specialization works on sigc::const_volatile_mem_functor. - * - * @param _A_functor Functor that should be wrapped. - * @return Adaptor that executes @e _A_functor performing C-style casts on the paramters passed on. - * - * @ingroup retype - */ -template -inline retype_functor, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6 > -retype(const const_volatile_mem_functor6& _A_functor) -{ return retype_functor, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6 > - (_A_functor); } - -/** Creates an adaptor of type sigc::retype_functor which performs C-style casts on the parameters passed on to the functor. - * This function template specialization works on sigc::const_volatile_mem_functor. - * - * @param _A_functor Functor that should be wrapped. - * @return Adaptor that executes @e _A_functor performing C-style casts on the paramters passed on. - * - * @ingroup retype - */ -template -inline retype_functor, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6,T_arg7 > -retype(const const_volatile_mem_functor7& _A_functor) -{ return retype_functor, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6,T_arg7 > - (_A_functor); } - -/** Creates an adaptor of type sigc::retype_functor which performs C-style casts on the parameters passed on to the functor. - * This function template specialization works on sigc::bound_mem_functor. - * - * @param _A_functor Functor that should be wrapped. - * @return Adaptor that executes @e _A_functor performing C-style casts on the paramters passed on. - * - * @ingroup retype - */ -template -inline retype_functor > -retype(const bound_mem_functor0& _A_functor) -{ return retype_functor > - (_A_functor); } - -/** Creates an adaptor of type sigc::retype_functor which performs C-style casts on the parameters passed on to the functor. - * This function template specialization works on sigc::bound_mem_functor. - * - * @param _A_functor Functor that should be wrapped. - * @return Adaptor that executes @e _A_functor performing C-style casts on the paramters passed on. - * - * @ingroup retype - */ -template -inline retype_functor, T_arg1 > -retype(const bound_mem_functor1& _A_functor) -{ return retype_functor, T_arg1 > - (_A_functor); } - -/** Creates an adaptor of type sigc::retype_functor which performs C-style casts on the parameters passed on to the functor. - * This function template specialization works on sigc::bound_mem_functor. - * - * @param _A_functor Functor that should be wrapped. - * @return Adaptor that executes @e _A_functor performing C-style casts on the paramters passed on. - * - * @ingroup retype - */ -template -inline retype_functor, T_arg1,T_arg2 > -retype(const bound_mem_functor2& _A_functor) -{ return retype_functor, T_arg1,T_arg2 > - (_A_functor); } - -/** Creates an adaptor of type sigc::retype_functor which performs C-style casts on the parameters passed on to the functor. - * This function template specialization works on sigc::bound_mem_functor. - * - * @param _A_functor Functor that should be wrapped. - * @return Adaptor that executes @e _A_functor performing C-style casts on the paramters passed on. - * - * @ingroup retype - */ -template -inline retype_functor, T_arg1,T_arg2,T_arg3 > -retype(const bound_mem_functor3& _A_functor) -{ return retype_functor, T_arg1,T_arg2,T_arg3 > - (_A_functor); } - -/** Creates an adaptor of type sigc::retype_functor which performs C-style casts on the parameters passed on to the functor. - * This function template specialization works on sigc::bound_mem_functor. - * - * @param _A_functor Functor that should be wrapped. - * @return Adaptor that executes @e _A_functor performing C-style casts on the paramters passed on. - * - * @ingroup retype - */ -template -inline retype_functor, T_arg1,T_arg2,T_arg3,T_arg4 > -retype(const bound_mem_functor4& _A_functor) -{ return retype_functor, T_arg1,T_arg2,T_arg3,T_arg4 > - (_A_functor); } - -/** Creates an adaptor of type sigc::retype_functor which performs C-style casts on the parameters passed on to the functor. - * This function template specialization works on sigc::bound_mem_functor. - * - * @param _A_functor Functor that should be wrapped. - * @return Adaptor that executes @e _A_functor performing C-style casts on the paramters passed on. - * - * @ingroup retype - */ -template -inline retype_functor, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5 > -retype(const bound_mem_functor5& _A_functor) -{ return retype_functor, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5 > - (_A_functor); } - -/** Creates an adaptor of type sigc::retype_functor which performs C-style casts on the parameters passed on to the functor. - * This function template specialization works on sigc::bound_mem_functor. - * - * @param _A_functor Functor that should be wrapped. - * @return Adaptor that executes @e _A_functor performing C-style casts on the paramters passed on. - * - * @ingroup retype - */ -template -inline retype_functor, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6 > -retype(const bound_mem_functor6& _A_functor) -{ return retype_functor, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6 > - (_A_functor); } - -/** Creates an adaptor of type sigc::retype_functor which performs C-style casts on the parameters passed on to the functor. - * This function template specialization works on sigc::bound_mem_functor. - * - * @param _A_functor Functor that should be wrapped. - * @return Adaptor that executes @e _A_functor performing C-style casts on the paramters passed on. - * - * @ingroup retype - */ -template -inline retype_functor, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6,T_arg7 > -retype(const bound_mem_functor7& _A_functor) -{ return retype_functor, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6,T_arg7 > - (_A_functor); } - -/** Creates an adaptor of type sigc::retype_functor which performs C-style casts on the parameters passed on to the functor. - * This function template specialization works on sigc::bound_const_mem_functor. - * - * @param _A_functor Functor that should be wrapped. - * @return Adaptor that executes @e _A_functor performing C-style casts on the paramters passed on. - * - * @ingroup retype - */ -template -inline retype_functor > -retype(const bound_const_mem_functor0& _A_functor) -{ return retype_functor > - (_A_functor); } - -/** Creates an adaptor of type sigc::retype_functor which performs C-style casts on the parameters passed on to the functor. - * This function template specialization works on sigc::bound_const_mem_functor. - * - * @param _A_functor Functor that should be wrapped. - * @return Adaptor that executes @e _A_functor performing C-style casts on the paramters passed on. - * - * @ingroup retype - */ -template -inline retype_functor, T_arg1 > -retype(const bound_const_mem_functor1& _A_functor) -{ return retype_functor, T_arg1 > - (_A_functor); } - -/** Creates an adaptor of type sigc::retype_functor which performs C-style casts on the parameters passed on to the functor. - * This function template specialization works on sigc::bound_const_mem_functor. - * - * @param _A_functor Functor that should be wrapped. - * @return Adaptor that executes @e _A_functor performing C-style casts on the paramters passed on. - * - * @ingroup retype - */ -template -inline retype_functor, T_arg1,T_arg2 > -retype(const bound_const_mem_functor2& _A_functor) -{ return retype_functor, T_arg1,T_arg2 > - (_A_functor); } - -/** Creates an adaptor of type sigc::retype_functor which performs C-style casts on the parameters passed on to the functor. - * This function template specialization works on sigc::bound_const_mem_functor. - * - * @param _A_functor Functor that should be wrapped. - * @return Adaptor that executes @e _A_functor performing C-style casts on the paramters passed on. - * - * @ingroup retype - */ -template -inline retype_functor, T_arg1,T_arg2,T_arg3 > -retype(const bound_const_mem_functor3& _A_functor) -{ return retype_functor, T_arg1,T_arg2,T_arg3 > - (_A_functor); } - -/** Creates an adaptor of type sigc::retype_functor which performs C-style casts on the parameters passed on to the functor. - * This function template specialization works on sigc::bound_const_mem_functor. - * - * @param _A_functor Functor that should be wrapped. - * @return Adaptor that executes @e _A_functor performing C-style casts on the paramters passed on. - * - * @ingroup retype - */ -template -inline retype_functor, T_arg1,T_arg2,T_arg3,T_arg4 > -retype(const bound_const_mem_functor4& _A_functor) -{ return retype_functor, T_arg1,T_arg2,T_arg3,T_arg4 > - (_A_functor); } - -/** Creates an adaptor of type sigc::retype_functor which performs C-style casts on the parameters passed on to the functor. - * This function template specialization works on sigc::bound_const_mem_functor. - * - * @param _A_functor Functor that should be wrapped. - * @return Adaptor that executes @e _A_functor performing C-style casts on the paramters passed on. - * - * @ingroup retype - */ -template -inline retype_functor, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5 > -retype(const bound_const_mem_functor5& _A_functor) -{ return retype_functor, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5 > - (_A_functor); } - -/** Creates an adaptor of type sigc::retype_functor which performs C-style casts on the parameters passed on to the functor. - * This function template specialization works on sigc::bound_const_mem_functor. - * - * @param _A_functor Functor that should be wrapped. - * @return Adaptor that executes @e _A_functor performing C-style casts on the paramters passed on. - * - * @ingroup retype - */ -template -inline retype_functor, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6 > -retype(const bound_const_mem_functor6& _A_functor) -{ return retype_functor, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6 > - (_A_functor); } - -/** Creates an adaptor of type sigc::retype_functor which performs C-style casts on the parameters passed on to the functor. - * This function template specialization works on sigc::bound_const_mem_functor. - * - * @param _A_functor Functor that should be wrapped. - * @return Adaptor that executes @e _A_functor performing C-style casts on the paramters passed on. - * - * @ingroup retype - */ -template -inline retype_functor, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6,T_arg7 > -retype(const bound_const_mem_functor7& _A_functor) -{ return retype_functor, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6,T_arg7 > - (_A_functor); } - -/** Creates an adaptor of type sigc::retype_functor which performs C-style casts on the parameters passed on to the functor. - * This function template specialization works on sigc::bound_volatile_mem_functor. - * - * @param _A_functor Functor that should be wrapped. - * @return Adaptor that executes @e _A_functor performing C-style casts on the paramters passed on. - * - * @ingroup retype - */ -template -inline retype_functor > -retype(const bound_volatile_mem_functor0& _A_functor) -{ return retype_functor > - (_A_functor); } - -/** Creates an adaptor of type sigc::retype_functor which performs C-style casts on the parameters passed on to the functor. - * This function template specialization works on sigc::bound_volatile_mem_functor. - * - * @param _A_functor Functor that should be wrapped. - * @return Adaptor that executes @e _A_functor performing C-style casts on the paramters passed on. - * - * @ingroup retype - */ -template -inline retype_functor, T_arg1 > -retype(const bound_volatile_mem_functor1& _A_functor) -{ return retype_functor, T_arg1 > - (_A_functor); } - -/** Creates an adaptor of type sigc::retype_functor which performs C-style casts on the parameters passed on to the functor. - * This function template specialization works on sigc::bound_volatile_mem_functor. - * - * @param _A_functor Functor that should be wrapped. - * @return Adaptor that executes @e _A_functor performing C-style casts on the paramters passed on. - * - * @ingroup retype - */ -template -inline retype_functor, T_arg1,T_arg2 > -retype(const bound_volatile_mem_functor2& _A_functor) -{ return retype_functor, T_arg1,T_arg2 > - (_A_functor); } - -/** Creates an adaptor of type sigc::retype_functor which performs C-style casts on the parameters passed on to the functor. - * This function template specialization works on sigc::bound_volatile_mem_functor. - * - * @param _A_functor Functor that should be wrapped. - * @return Adaptor that executes @e _A_functor performing C-style casts on the paramters passed on. - * - * @ingroup retype - */ -template -inline retype_functor, T_arg1,T_arg2,T_arg3 > -retype(const bound_volatile_mem_functor3& _A_functor) -{ return retype_functor, T_arg1,T_arg2,T_arg3 > - (_A_functor); } - -/** Creates an adaptor of type sigc::retype_functor which performs C-style casts on the parameters passed on to the functor. - * This function template specialization works on sigc::bound_volatile_mem_functor. - * - * @param _A_functor Functor that should be wrapped. - * @return Adaptor that executes @e _A_functor performing C-style casts on the paramters passed on. - * - * @ingroup retype - */ -template -inline retype_functor, T_arg1,T_arg2,T_arg3,T_arg4 > -retype(const bound_volatile_mem_functor4& _A_functor) -{ return retype_functor, T_arg1,T_arg2,T_arg3,T_arg4 > - (_A_functor); } - -/** Creates an adaptor of type sigc::retype_functor which performs C-style casts on the parameters passed on to the functor. - * This function template specialization works on sigc::bound_volatile_mem_functor. - * - * @param _A_functor Functor that should be wrapped. - * @return Adaptor that executes @e _A_functor performing C-style casts on the paramters passed on. - * - * @ingroup retype - */ -template -inline retype_functor, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5 > -retype(const bound_volatile_mem_functor5& _A_functor) -{ return retype_functor, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5 > - (_A_functor); } - -/** Creates an adaptor of type sigc::retype_functor which performs C-style casts on the parameters passed on to the functor. - * This function template specialization works on sigc::bound_volatile_mem_functor. - * - * @param _A_functor Functor that should be wrapped. - * @return Adaptor that executes @e _A_functor performing C-style casts on the paramters passed on. - * - * @ingroup retype - */ -template -inline retype_functor, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6 > -retype(const bound_volatile_mem_functor6& _A_functor) -{ return retype_functor, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6 > - (_A_functor); } - -/** Creates an adaptor of type sigc::retype_functor which performs C-style casts on the parameters passed on to the functor. - * This function template specialization works on sigc::bound_volatile_mem_functor. - * - * @param _A_functor Functor that should be wrapped. - * @return Adaptor that executes @e _A_functor performing C-style casts on the paramters passed on. - * - * @ingroup retype - */ -template -inline retype_functor, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6,T_arg7 > -retype(const bound_volatile_mem_functor7& _A_functor) -{ return retype_functor, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6,T_arg7 > - (_A_functor); } - -/** Creates an adaptor of type sigc::retype_functor which performs C-style casts on the parameters passed on to the functor. - * This function template specialization works on sigc::bound_const_volatile_mem_functor. - * - * @param _A_functor Functor that should be wrapped. - * @return Adaptor that executes @e _A_functor performing C-style casts on the paramters passed on. - * - * @ingroup retype - */ -template -inline retype_functor > -retype(const bound_const_volatile_mem_functor0& _A_functor) -{ return retype_functor > - (_A_functor); } - -/** Creates an adaptor of type sigc::retype_functor which performs C-style casts on the parameters passed on to the functor. - * This function template specialization works on sigc::bound_const_volatile_mem_functor. - * - * @param _A_functor Functor that should be wrapped. - * @return Adaptor that executes @e _A_functor performing C-style casts on the paramters passed on. - * - * @ingroup retype - */ -template -inline retype_functor, T_arg1 > -retype(const bound_const_volatile_mem_functor1& _A_functor) -{ return retype_functor, T_arg1 > - (_A_functor); } - -/** Creates an adaptor of type sigc::retype_functor which performs C-style casts on the parameters passed on to the functor. - * This function template specialization works on sigc::bound_const_volatile_mem_functor. - * - * @param _A_functor Functor that should be wrapped. - * @return Adaptor that executes @e _A_functor performing C-style casts on the paramters passed on. - * - * @ingroup retype - */ -template -inline retype_functor, T_arg1,T_arg2 > -retype(const bound_const_volatile_mem_functor2& _A_functor) -{ return retype_functor, T_arg1,T_arg2 > - (_A_functor); } - -/** Creates an adaptor of type sigc::retype_functor which performs C-style casts on the parameters passed on to the functor. - * This function template specialization works on sigc::bound_const_volatile_mem_functor. - * - * @param _A_functor Functor that should be wrapped. - * @return Adaptor that executes @e _A_functor performing C-style casts on the paramters passed on. - * - * @ingroup retype - */ -template -inline retype_functor, T_arg1,T_arg2,T_arg3 > -retype(const bound_const_volatile_mem_functor3& _A_functor) -{ return retype_functor, T_arg1,T_arg2,T_arg3 > - (_A_functor); } - -/** Creates an adaptor of type sigc::retype_functor which performs C-style casts on the parameters passed on to the functor. - * This function template specialization works on sigc::bound_const_volatile_mem_functor. - * - * @param _A_functor Functor that should be wrapped. - * @return Adaptor that executes @e _A_functor performing C-style casts on the paramters passed on. - * - * @ingroup retype - */ -template -inline retype_functor, T_arg1,T_arg2,T_arg3,T_arg4 > -retype(const bound_const_volatile_mem_functor4& _A_functor) -{ return retype_functor, T_arg1,T_arg2,T_arg3,T_arg4 > - (_A_functor); } - -/** Creates an adaptor of type sigc::retype_functor which performs C-style casts on the parameters passed on to the functor. - * This function template specialization works on sigc::bound_const_volatile_mem_functor. - * - * @param _A_functor Functor that should be wrapped. - * @return Adaptor that executes @e _A_functor performing C-style casts on the paramters passed on. - * - * @ingroup retype - */ -template -inline retype_functor, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5 > -retype(const bound_const_volatile_mem_functor5& _A_functor) -{ return retype_functor, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5 > - (_A_functor); } - -/** Creates an adaptor of type sigc::retype_functor which performs C-style casts on the parameters passed on to the functor. - * This function template specialization works on sigc::bound_const_volatile_mem_functor. - * - * @param _A_functor Functor that should be wrapped. - * @return Adaptor that executes @e _A_functor performing C-style casts on the paramters passed on. - * - * @ingroup retype - */ -template -inline retype_functor, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6 > -retype(const bound_const_volatile_mem_functor6& _A_functor) -{ return retype_functor, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6 > - (_A_functor); } - -/** Creates an adaptor of type sigc::retype_functor which performs C-style casts on the parameters passed on to the functor. - * This function template specialization works on sigc::bound_const_volatile_mem_functor. - * - * @param _A_functor Functor that should be wrapped. - * @return Adaptor that executes @e _A_functor performing C-style casts on the paramters passed on. - * - * @ingroup retype - */ -template -inline retype_functor, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6,T_arg7 > -retype(const bound_const_volatile_mem_functor7& _A_functor) -{ return retype_functor, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6,T_arg7 > - (_A_functor); } - - -} /* namespace sigc */ -#endif /* _SIGC_ADAPTORS_MACROS_RETYPEHM4_ */ diff --git a/libs/sigc++2/sigc++/adaptors/retype_return.h b/libs/sigc++2/sigc++/adaptors/retype_return.h deleted file mode 100644 index ea413a0b30..0000000000 --- a/libs/sigc++2/sigc++/adaptors/retype_return.h +++ /dev/null @@ -1,308 +0,0 @@ -// -*- c++ -*- -/* Do not edit! -- generated file */ -#ifndef _SIGC_ADAPTORS_MACROS_RETYPE_RETURNHM4_ -#define _SIGC_ADAPTORS_MACROS_RETYPE_RETURNHM4_ -#include - -namespace sigc { - -/** Adaptor that perform a C-style cast on the return value of a functor. - * Use the convenience function sigc::retype_return() to create an instance of retype_return_functor. - * - * The following template arguments are used: - * - @e T_return Target type of the C-style cast. - * - @e T_functor Type of the functor to wrap. - * - * @ingroup retype - */ -template -struct retype_return_functor : public adapts -{ - template - struct deduce_result_type - { typedef T_return type; }; - typedef T_return result_type; - - T_return operator()(); - - template - inline T_return operator()(T_arg1 _A_a1) - { return T_return(this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass> - (_A_a1)); - } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - inline T_return sun_forte_workaround(T_arg1 _A_a1) - { return T_return(this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass> - (_A_a1)); - } - #endif - - template - inline T_return operator()(T_arg1 _A_a1,T_arg2 _A_a2) - { return T_return(this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass,typename type_trait::pass> - (_A_a1,_A_a2)); - } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - inline T_return sun_forte_workaround(T_arg1 _A_a1,T_arg2 _A_a2) - { return T_return(this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass,typename type_trait::pass> - (_A_a1,_A_a2)); - } - #endif - - template - inline T_return operator()(T_arg1 _A_a1,T_arg2 _A_a2,T_arg3 _A_a3) - { return T_return(this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass,typename type_trait::pass,typename type_trait::pass> - (_A_a1,_A_a2,_A_a3)); - } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - inline T_return sun_forte_workaround(T_arg1 _A_a1,T_arg2 _A_a2,T_arg3 _A_a3) - { return T_return(this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass,typename type_trait::pass,typename type_trait::pass> - (_A_a1,_A_a2,_A_a3)); - } - #endif - - template - inline T_return operator()(T_arg1 _A_a1,T_arg2 _A_a2,T_arg3 _A_a3,T_arg4 _A_a4) - { return T_return(this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass> - (_A_a1,_A_a2,_A_a3,_A_a4)); - } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - inline T_return sun_forte_workaround(T_arg1 _A_a1,T_arg2 _A_a2,T_arg3 _A_a3,T_arg4 _A_a4) - { return T_return(this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass> - (_A_a1,_A_a2,_A_a3,_A_a4)); - } - #endif - - template - inline T_return operator()(T_arg1 _A_a1,T_arg2 _A_a2,T_arg3 _A_a3,T_arg4 _A_a4,T_arg5 _A_a5) - { return T_return(this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass> - (_A_a1,_A_a2,_A_a3,_A_a4,_A_a5)); - } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - inline T_return sun_forte_workaround(T_arg1 _A_a1,T_arg2 _A_a2,T_arg3 _A_a3,T_arg4 _A_a4,T_arg5 _A_a5) - { return T_return(this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass> - (_A_a1,_A_a2,_A_a3,_A_a4,_A_a5)); - } - #endif - - template - inline T_return operator()(T_arg1 _A_a1,T_arg2 _A_a2,T_arg3 _A_a3,T_arg4 _A_a4,T_arg5 _A_a5,T_arg6 _A_a6) - { return T_return(this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass> - (_A_a1,_A_a2,_A_a3,_A_a4,_A_a5,_A_a6)); - } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - inline T_return sun_forte_workaround(T_arg1 _A_a1,T_arg2 _A_a2,T_arg3 _A_a3,T_arg4 _A_a4,T_arg5 _A_a5,T_arg6 _A_a6) - { return T_return(this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass> - (_A_a1,_A_a2,_A_a3,_A_a4,_A_a5,_A_a6)); - } - #endif - - template - inline T_return operator()(T_arg1 _A_a1,T_arg2 _A_a2,T_arg3 _A_a3,T_arg4 _A_a4,T_arg5 _A_a5,T_arg6 _A_a6,T_arg7 _A_a7) - { return T_return(this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass> - (_A_a1,_A_a2,_A_a3,_A_a4,_A_a5,_A_a6,_A_a7)); - } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - inline T_return sun_forte_workaround(T_arg1 _A_a1,T_arg2 _A_a2,T_arg3 _A_a3,T_arg4 _A_a4,T_arg5 _A_a5,T_arg6 _A_a6,T_arg7 _A_a7) - { return T_return(this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass> - (_A_a1,_A_a2,_A_a3,_A_a4,_A_a5,_A_a6,_A_a7)); - } - #endif - - retype_return_functor() {} - - /** Constructs a retype_return_functor object that perform a C-style cast on the return value of the passed functor. - * @param _A_functor Functor to invoke from operator()(). - */ - explicit retype_return_functor(typename type_trait::take _A_functor) - : adapts(_A_functor) - {} -}; - -template -T_return retype_return_functor::operator()() - { return T_return(this->functor_()); } - - -/** Adaptor that perform a C-style cast on the return value of a functor. - * This template specialization is for a void return. It drops the return value of the functor it invokes. - * Use the convenience function sigc::hide_return() to create an instance of sigc::retype_return_functor. - * - * @ingroup retype - */ -/* The void specialization needed because of explicit cast to T_return. - */ -template -struct retype_return_functor : public adapts -{ - template - struct deduce_result_type - { typedef void type; }; - typedef void result_type; - - void operator()(); - - template - inline void operator()(T_arg1 _A_a1) - { this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass> - (_A_a1); - } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - inline void sun_forte_workaround(T_arg1 _A_a1) - { this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass> - (_A_a1); - } - #endif - - template - inline void operator()(T_arg1 _A_a1,T_arg2 _A_a2) - { this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass,typename type_trait::pass> - (_A_a1,_A_a2); - } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - inline void sun_forte_workaround(T_arg1 _A_a1,T_arg2 _A_a2) - { this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass,typename type_trait::pass> - (_A_a1,_A_a2); - } - #endif - - template - inline void operator()(T_arg1 _A_a1,T_arg2 _A_a2,T_arg3 _A_a3) - { this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass,typename type_trait::pass,typename type_trait::pass> - (_A_a1,_A_a2,_A_a3); - } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - inline void sun_forte_workaround(T_arg1 _A_a1,T_arg2 _A_a2,T_arg3 _A_a3) - { this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass,typename type_trait::pass,typename type_trait::pass> - (_A_a1,_A_a2,_A_a3); - } - #endif - - template - inline void operator()(T_arg1 _A_a1,T_arg2 _A_a2,T_arg3 _A_a3,T_arg4 _A_a4) - { this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass> - (_A_a1,_A_a2,_A_a3,_A_a4); - } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - inline void sun_forte_workaround(T_arg1 _A_a1,T_arg2 _A_a2,T_arg3 _A_a3,T_arg4 _A_a4) - { this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass> - (_A_a1,_A_a2,_A_a3,_A_a4); - } - #endif - - template - inline void operator()(T_arg1 _A_a1,T_arg2 _A_a2,T_arg3 _A_a3,T_arg4 _A_a4,T_arg5 _A_a5) - { this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass> - (_A_a1,_A_a2,_A_a3,_A_a4,_A_a5); - } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - inline void sun_forte_workaround(T_arg1 _A_a1,T_arg2 _A_a2,T_arg3 _A_a3,T_arg4 _A_a4,T_arg5 _A_a5) - { this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass> - (_A_a1,_A_a2,_A_a3,_A_a4,_A_a5); - } - #endif - - template - inline void operator()(T_arg1 _A_a1,T_arg2 _A_a2,T_arg3 _A_a3,T_arg4 _A_a4,T_arg5 _A_a5,T_arg6 _A_a6) - { this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass> - (_A_a1,_A_a2,_A_a3,_A_a4,_A_a5,_A_a6); - } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - inline void sun_forte_workaround(T_arg1 _A_a1,T_arg2 _A_a2,T_arg3 _A_a3,T_arg4 _A_a4,T_arg5 _A_a5,T_arg6 _A_a6) - { this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass> - (_A_a1,_A_a2,_A_a3,_A_a4,_A_a5,_A_a6); - } - #endif - - template - inline void operator()(T_arg1 _A_a1,T_arg2 _A_a2,T_arg3 _A_a3,T_arg4 _A_a4,T_arg5 _A_a5,T_arg6 _A_a6,T_arg7 _A_a7) - { this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass> - (_A_a1,_A_a2,_A_a3,_A_a4,_A_a5,_A_a6,_A_a7); - } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - inline void sun_forte_workaround(T_arg1 _A_a1,T_arg2 _A_a2,T_arg3 _A_a3,T_arg4 _A_a4,T_arg5 _A_a5,T_arg6 _A_a6,T_arg7 _A_a7) - { this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass,typename type_trait::pass> - (_A_a1,_A_a2,_A_a3,_A_a4,_A_a5,_A_a6,_A_a7); - } - #endif - - retype_return_functor() {} - retype_return_functor(typename type_trait::take _A_functor) - : adapts(_A_functor) - {} -}; - -template -void retype_return_functor::operator()() - { this->functor_(); } - - -/** Performs a functor on each of the targets of a functor. - * The function overload for sigc::retype_return_functor performs a functor on the - * functor stored in the sigc::retype_return_functor object. - * - * @ingroup retype - */ -template -void visit_each(const T_action& _A_action, - const retype_return_functor& _A_target) -{ - visit_each(_A_action, _A_target.functor_); -} - - -/** Creates an adaptor of type sigc::retype_return_functor which performs a C-style cast on the return value of the passed functor. - * The template argument @e T_return specifies the target type of the cast. - * - * @param _A_functor Functor that should be wrapped. - * @return Adaptor that executes @e _A_functor performing a C-style casts on the return value. - * - * @ingroup retype - */ -template -inline retype_return_functor -retype_return(const T_functor& _A_functor) - { return retype_return_functor(_A_functor); } - -/** Creates an adaptor of type sigc::retype_return_functor which drops the return value of the passed functor. - * - * @param _A_functor Functor that should be wrapped. - * @return Adaptor that executes @e _A_functor dropping its return value. - * - * @ingroup hide - */ -template -inline retype_return_functor -hide_return(const T_functor& _A_functor) - { return retype_return_functor(_A_functor); } - -} /* namespace sigc */ -#endif /* _SIGC_ADAPTORS_MACROS_RETYPE_RETURNHM4_ */ diff --git a/libs/sigc++2/sigc++/bind.h b/libs/sigc++2/sigc++/bind.h deleted file mode 100644 index bebf08b58b..0000000000 --- a/libs/sigc++2/sigc++/bind.h +++ /dev/null @@ -1,65 +0,0 @@ -/* - * Copyright 2002, The libsigc++ Development Team - * - * 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.1 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 - * - */ -#ifndef _SIGC_BIND_HPP_ -#define _SIGC_BIND_HPP_ - -#include - -#ifndef LIBSIGC_DISABLE_DEPRECATED - -namespace SigC { - -template -inline ::sigc::bind_functor<-1, T_functor, - typename ::sigc::unwrap_reference::type> -bind(const T_functor& _A_functor, T_bound1 _A_b1) -{ return ::sigc::bind_functor<-1, T_functor, - typename ::sigc::unwrap_reference::type> - (_A_functor, _A_b1); -} - -template -inline ::sigc::bind_functor<-1, T_functor, - typename ::sigc::unwrap_reference::type, - typename ::sigc::unwrap_reference::type> -bind(const T_functor& _A_functor, T_bound1 _A_b1, T_bound2 _A_b2) -{ return ::sigc::bind_functor<-1, T_functor, - typename ::sigc::unwrap_reference::type, - typename ::sigc::unwrap_reference::type> - (_A_functor, _A_b1, _A_b2); -} - -template -inline ::sigc::bind_functor<-1, T_functor, - typename ::sigc::unwrap_reference::type, - typename ::sigc::unwrap_reference::type, - typename ::sigc::unwrap_reference::type> -bind(const T_functor& _A_functor, T_bound1 _A_b1, T_bound2 _A_b2,T_bound3 _A_b3) -{ return ::sigc::bind_functor<-1, T_functor, - typename ::sigc::unwrap_reference::type, - typename ::sigc::unwrap_reference::type, - typename ::sigc::unwrap_reference::type> - (_A_functor, _A_b1, _A_b2, _A_b3); -} - -} - -#endif /* LIBSIGC_DISABLE_DEPRECATED */ - -#endif /* _SIGC_BIND_HPP_ */ diff --git a/libs/sigc++2/sigc++/bind_return.h b/libs/sigc++2/sigc++/bind_return.h deleted file mode 100644 index a0796cf2c3..0000000000 --- a/libs/sigc++2/sigc++/bind_return.h +++ /dev/null @@ -1,34 +0,0 @@ -/* - * Copyright 2002, The libsigc++ Development Team - * - * 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.1 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 - * - */ -#ifndef _SIGC_BIND_RETURN_HPP_ -#define _SIGC_BIND_RETURN_HPP_ - -#include - -#ifndef LIBSIGC_DISABLE_DEPRECATED - -namespace SigC { - -using ::sigc::bind_return; - -} - -#endif /* LIBSIGC_DISABLE_DEPRECATED */ - -#endif /* _SIGC_BIND_RETURN_HPP_ */ diff --git a/libs/sigc++2/sigc++/class_slot.h b/libs/sigc++2/sigc++/class_slot.h deleted file mode 100644 index df644bfd04..0000000000 --- a/libs/sigc++2/sigc++/class_slot.h +++ /dev/null @@ -1,568 +0,0 @@ -// -*- c++ -*- -/* Do not edit! -- generated file */ - - -#ifndef _SIGC_MACROS_CLASS_SLOTHM4_ -#define _SIGC_MACROS_CLASS_SLOTHM4_ - -#include -#include - -#ifndef LIBSIGC_DISABLE_DEPRECATED - -namespace SigC { - -// slot_class() -/** Creates a functor of type SigC::Slot0 that encapsulates a method and an object instance. - * - * This function is part of the compatibility module and therefore deprecated. - * Use sigc::mem_fun() instead. - * - * @param _A_obj Reference to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes _A_func on invokation. - * - * @deprecated Use sigc::mem_fun() instead. - * @ingroup compat - */ -template -inline Slot0 -slot_class( T_obj& _A_obj, T_return (T_obj::*_A_func)() ) -{ return ::sigc::bound_mem_functor0(_A_obj, _A_func); } - -/** Creates a functor of type SigC::Slot1 that encapsulates a method and an object instance. - * - * This function is part of the compatibility module and therefore deprecated. - * Use sigc::mem_fun() instead. - * - * @param _A_obj Reference to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes _A_func on invokation. - * - * @deprecated Use sigc::mem_fun() instead. - * @ingroup compat - */ -template -inline Slot1 -slot_class( T_obj& _A_obj, T_return (T_obj::*_A_func)(T_arg1) ) -{ return ::sigc::bound_mem_functor1(_A_obj, _A_func); } - -/** Creates a functor of type SigC::Slot2 that encapsulates a method and an object instance. - * - * This function is part of the compatibility module and therefore deprecated. - * Use sigc::mem_fun() instead. - * - * @param _A_obj Reference to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes _A_func on invokation. - * - * @deprecated Use sigc::mem_fun() instead. - * @ingroup compat - */ -template -inline Slot2 -slot_class( T_obj& _A_obj, T_return (T_obj::*_A_func)(T_arg1,T_arg2) ) -{ return ::sigc::bound_mem_functor2(_A_obj, _A_func); } - -/** Creates a functor of type SigC::Slot3 that encapsulates a method and an object instance. - * - * This function is part of the compatibility module and therefore deprecated. - * Use sigc::mem_fun() instead. - * - * @param _A_obj Reference to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes _A_func on invokation. - * - * @deprecated Use sigc::mem_fun() instead. - * @ingroup compat - */ -template -inline Slot3 -slot_class( T_obj& _A_obj, T_return (T_obj::*_A_func)(T_arg1,T_arg2,T_arg3) ) -{ return ::sigc::bound_mem_functor3(_A_obj, _A_func); } - -/** Creates a functor of type SigC::Slot4 that encapsulates a method and an object instance. - * - * This function is part of the compatibility module and therefore deprecated. - * Use sigc::mem_fun() instead. - * - * @param _A_obj Reference to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes _A_func on invokation. - * - * @deprecated Use sigc::mem_fun() instead. - * @ingroup compat - */ -template -inline Slot4 -slot_class( T_obj& _A_obj, T_return (T_obj::*_A_func)(T_arg1,T_arg2,T_arg3,T_arg4) ) -{ return ::sigc::bound_mem_functor4(_A_obj, _A_func); } - -/** Creates a functor of type SigC::Slot5 that encapsulates a method and an object instance. - * - * This function is part of the compatibility module and therefore deprecated. - * Use sigc::mem_fun() instead. - * - * @param _A_obj Reference to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes _A_func on invokation. - * - * @deprecated Use sigc::mem_fun() instead. - * @ingroup compat - */ -template -inline Slot5 -slot_class( T_obj& _A_obj, T_return (T_obj::*_A_func)(T_arg1,T_arg2,T_arg3,T_arg4,T_arg5) ) -{ return ::sigc::bound_mem_functor5(_A_obj, _A_func); } - -/** Creates a functor of type SigC::Slot6 that encapsulates a method and an object instance. - * - * This function is part of the compatibility module and therefore deprecated. - * Use sigc::mem_fun() instead. - * - * @param _A_obj Reference to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes _A_func on invokation. - * - * @deprecated Use sigc::mem_fun() instead. - * @ingroup compat - */ -template -inline Slot6 -slot_class( T_obj& _A_obj, T_return (T_obj::*_A_func)(T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6) ) -{ return ::sigc::bound_mem_functor6(_A_obj, _A_func); } - -/** Creates a functor of type SigC::Slot7 that encapsulates a method and an object instance. - * - * This function is part of the compatibility module and therefore deprecated. - * Use sigc::mem_fun() instead. - * - * @param _A_obj Reference to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes _A_func on invokation. - * - * @deprecated Use sigc::mem_fun() instead. - * @ingroup compat - */ -template -inline Slot7 -slot_class( T_obj& _A_obj, T_return (T_obj::*_A_func)(T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6,T_arg7) ) -{ return ::sigc::bound_mem_functor7(_A_obj, _A_func); } - - -/** Creates a functor of type SigC::Slot0 that encapsulates a const method and an object instance. - * - * This function is part of the compatibility module and therefore deprecated. - * Use sigc::mem_fun() instead. - * - * @param _A_obj Reference to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes _A_func on invokation. - * - * @deprecated Use sigc::mem_fun() instead. - * @ingroup compat - */ -template -inline Slot0 -slot_class(const T_obj& _A_obj, T_return (T_obj::*_A_func)() const) -{ return ::sigc::bound_const_mem_functor0(_A_obj, _A_func); } - -/** Creates a functor of type SigC::Slot1 that encapsulates a const method and an object instance. - * - * This function is part of the compatibility module and therefore deprecated. - * Use sigc::mem_fun() instead. - * - * @param _A_obj Reference to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes _A_func on invokation. - * - * @deprecated Use sigc::mem_fun() instead. - * @ingroup compat - */ -template -inline Slot1 -slot_class(const T_obj& _A_obj, T_return (T_obj::*_A_func)(T_arg1) const) -{ return ::sigc::bound_const_mem_functor1(_A_obj, _A_func); } - -/** Creates a functor of type SigC::Slot2 that encapsulates a const method and an object instance. - * - * This function is part of the compatibility module and therefore deprecated. - * Use sigc::mem_fun() instead. - * - * @param _A_obj Reference to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes _A_func on invokation. - * - * @deprecated Use sigc::mem_fun() instead. - * @ingroup compat - */ -template -inline Slot2 -slot_class(const T_obj& _A_obj, T_return (T_obj::*_A_func)(T_arg1,T_arg2) const) -{ return ::sigc::bound_const_mem_functor2(_A_obj, _A_func); } - -/** Creates a functor of type SigC::Slot3 that encapsulates a const method and an object instance. - * - * This function is part of the compatibility module and therefore deprecated. - * Use sigc::mem_fun() instead. - * - * @param _A_obj Reference to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes _A_func on invokation. - * - * @deprecated Use sigc::mem_fun() instead. - * @ingroup compat - */ -template -inline Slot3 -slot_class(const T_obj& _A_obj, T_return (T_obj::*_A_func)(T_arg1,T_arg2,T_arg3) const) -{ return ::sigc::bound_const_mem_functor3(_A_obj, _A_func); } - -/** Creates a functor of type SigC::Slot4 that encapsulates a const method and an object instance. - * - * This function is part of the compatibility module and therefore deprecated. - * Use sigc::mem_fun() instead. - * - * @param _A_obj Reference to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes _A_func on invokation. - * - * @deprecated Use sigc::mem_fun() instead. - * @ingroup compat - */ -template -inline Slot4 -slot_class(const T_obj& _A_obj, T_return (T_obj::*_A_func)(T_arg1,T_arg2,T_arg3,T_arg4) const) -{ return ::sigc::bound_const_mem_functor4(_A_obj, _A_func); } - -/** Creates a functor of type SigC::Slot5 that encapsulates a const method and an object instance. - * - * This function is part of the compatibility module and therefore deprecated. - * Use sigc::mem_fun() instead. - * - * @param _A_obj Reference to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes _A_func on invokation. - * - * @deprecated Use sigc::mem_fun() instead. - * @ingroup compat - */ -template -inline Slot5 -slot_class(const T_obj& _A_obj, T_return (T_obj::*_A_func)(T_arg1,T_arg2,T_arg3,T_arg4,T_arg5) const) -{ return ::sigc::bound_const_mem_functor5(_A_obj, _A_func); } - -/** Creates a functor of type SigC::Slot6 that encapsulates a const method and an object instance. - * - * This function is part of the compatibility module and therefore deprecated. - * Use sigc::mem_fun() instead. - * - * @param _A_obj Reference to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes _A_func on invokation. - * - * @deprecated Use sigc::mem_fun() instead. - * @ingroup compat - */ -template -inline Slot6 -slot_class(const T_obj& _A_obj, T_return (T_obj::*_A_func)(T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6) const) -{ return ::sigc::bound_const_mem_functor6(_A_obj, _A_func); } - -/** Creates a functor of type SigC::Slot7 that encapsulates a const method and an object instance. - * - * This function is part of the compatibility module and therefore deprecated. - * Use sigc::mem_fun() instead. - * - * @param _A_obj Reference to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes _A_func on invokation. - * - * @deprecated Use sigc::mem_fun() instead. - * @ingroup compat - */ -template -inline Slot7 -slot_class(const T_obj& _A_obj, T_return (T_obj::*_A_func)(T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6,T_arg7) const) -{ return ::sigc::bound_const_mem_functor7(_A_obj, _A_func); } - - -/** Creates a functor of type SigC::Slot0 that encapsulates a volatile method and an object instance. - * - * This function is part of the compatibility module and therefore deprecated. - * Use sigc::mem_fun() instead. - * - * @param _A_obj Reference to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes _A_func on invokation. - * - * @deprecated Use sigc::mem_fun() instead. - * @ingroup compat - */ -template -inline Slot0 -slot_class( T_obj& _A_obj, T_return (T_obj::*_A_func)() volatile) -{ return ::sigc::bound_volatile_mem_functor0(_A_obj, _A_func); } - -/** Creates a functor of type SigC::Slot1 that encapsulates a volatile method and an object instance. - * - * This function is part of the compatibility module and therefore deprecated. - * Use sigc::mem_fun() instead. - * - * @param _A_obj Reference to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes _A_func on invokation. - * - * @deprecated Use sigc::mem_fun() instead. - * @ingroup compat - */ -template -inline Slot1 -slot_class( T_obj& _A_obj, T_return (T_obj::*_A_func)(T_arg1) volatile) -{ return ::sigc::bound_volatile_mem_functor1(_A_obj, _A_func); } - -/** Creates a functor of type SigC::Slot2 that encapsulates a volatile method and an object instance. - * - * This function is part of the compatibility module and therefore deprecated. - * Use sigc::mem_fun() instead. - * - * @param _A_obj Reference to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes _A_func on invokation. - * - * @deprecated Use sigc::mem_fun() instead. - * @ingroup compat - */ -template -inline Slot2 -slot_class( T_obj& _A_obj, T_return (T_obj::*_A_func)(T_arg1,T_arg2) volatile) -{ return ::sigc::bound_volatile_mem_functor2(_A_obj, _A_func); } - -/** Creates a functor of type SigC::Slot3 that encapsulates a volatile method and an object instance. - * - * This function is part of the compatibility module and therefore deprecated. - * Use sigc::mem_fun() instead. - * - * @param _A_obj Reference to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes _A_func on invokation. - * - * @deprecated Use sigc::mem_fun() instead. - * @ingroup compat - */ -template -inline Slot3 -slot_class( T_obj& _A_obj, T_return (T_obj::*_A_func)(T_arg1,T_arg2,T_arg3) volatile) -{ return ::sigc::bound_volatile_mem_functor3(_A_obj, _A_func); } - -/** Creates a functor of type SigC::Slot4 that encapsulates a volatile method and an object instance. - * - * This function is part of the compatibility module and therefore deprecated. - * Use sigc::mem_fun() instead. - * - * @param _A_obj Reference to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes _A_func on invokation. - * - * @deprecated Use sigc::mem_fun() instead. - * @ingroup compat - */ -template -inline Slot4 -slot_class( T_obj& _A_obj, T_return (T_obj::*_A_func)(T_arg1,T_arg2,T_arg3,T_arg4) volatile) -{ return ::sigc::bound_volatile_mem_functor4(_A_obj, _A_func); } - -/** Creates a functor of type SigC::Slot5 that encapsulates a volatile method and an object instance. - * - * This function is part of the compatibility module and therefore deprecated. - * Use sigc::mem_fun() instead. - * - * @param _A_obj Reference to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes _A_func on invokation. - * - * @deprecated Use sigc::mem_fun() instead. - * @ingroup compat - */ -template -inline Slot5 -slot_class( T_obj& _A_obj, T_return (T_obj::*_A_func)(T_arg1,T_arg2,T_arg3,T_arg4,T_arg5) volatile) -{ return ::sigc::bound_volatile_mem_functor5(_A_obj, _A_func); } - -/** Creates a functor of type SigC::Slot6 that encapsulates a volatile method and an object instance. - * - * This function is part of the compatibility module and therefore deprecated. - * Use sigc::mem_fun() instead. - * - * @param _A_obj Reference to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes _A_func on invokation. - * - * @deprecated Use sigc::mem_fun() instead. - * @ingroup compat - */ -template -inline Slot6 -slot_class( T_obj& _A_obj, T_return (T_obj::*_A_func)(T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6) volatile) -{ return ::sigc::bound_volatile_mem_functor6(_A_obj, _A_func); } - -/** Creates a functor of type SigC::Slot7 that encapsulates a volatile method and an object instance. - * - * This function is part of the compatibility module and therefore deprecated. - * Use sigc::mem_fun() instead. - * - * @param _A_obj Reference to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes _A_func on invokation. - * - * @deprecated Use sigc::mem_fun() instead. - * @ingroup compat - */ -template -inline Slot7 -slot_class( T_obj& _A_obj, T_return (T_obj::*_A_func)(T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6,T_arg7) volatile) -{ return ::sigc::bound_volatile_mem_functor7(_A_obj, _A_func); } - - -/** Creates a functor of type SigC::Slot0 that encapsulates a const volatile method and an object instance. - * - * This function is part of the compatibility module and therefore deprecated. - * Use sigc::mem_fun() instead. - * - * @param _A_obj Reference to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes _A_func on invokation. - * - * @deprecated Use sigc::mem_fun() instead. - * @ingroup compat - */ -template -inline Slot0 -slot_class(const T_obj& _A_obj, T_return (T_obj::*_A_func)() const volatile) -{ return ::sigc::bound_const_volatile_mem_functor0(_A_obj, _A_func); } - -/** Creates a functor of type SigC::Slot1 that encapsulates a const volatile method and an object instance. - * - * This function is part of the compatibility module and therefore deprecated. - * Use sigc::mem_fun() instead. - * - * @param _A_obj Reference to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes _A_func on invokation. - * - * @deprecated Use sigc::mem_fun() instead. - * @ingroup compat - */ -template -inline Slot1 -slot_class(const T_obj& _A_obj, T_return (T_obj::*_A_func)(T_arg1) const volatile) -{ return ::sigc::bound_const_volatile_mem_functor1(_A_obj, _A_func); } - -/** Creates a functor of type SigC::Slot2 that encapsulates a const volatile method and an object instance. - * - * This function is part of the compatibility module and therefore deprecated. - * Use sigc::mem_fun() instead. - * - * @param _A_obj Reference to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes _A_func on invokation. - * - * @deprecated Use sigc::mem_fun() instead. - * @ingroup compat - */ -template -inline Slot2 -slot_class(const T_obj& _A_obj, T_return (T_obj::*_A_func)(T_arg1,T_arg2) const volatile) -{ return ::sigc::bound_const_volatile_mem_functor2(_A_obj, _A_func); } - -/** Creates a functor of type SigC::Slot3 that encapsulates a const volatile method and an object instance. - * - * This function is part of the compatibility module and therefore deprecated. - * Use sigc::mem_fun() instead. - * - * @param _A_obj Reference to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes _A_func on invokation. - * - * @deprecated Use sigc::mem_fun() instead. - * @ingroup compat - */ -template -inline Slot3 -slot_class(const T_obj& _A_obj, T_return (T_obj::*_A_func)(T_arg1,T_arg2,T_arg3) const volatile) -{ return ::sigc::bound_const_volatile_mem_functor3(_A_obj, _A_func); } - -/** Creates a functor of type SigC::Slot4 that encapsulates a const volatile method and an object instance. - * - * This function is part of the compatibility module and therefore deprecated. - * Use sigc::mem_fun() instead. - * - * @param _A_obj Reference to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes _A_func on invokation. - * - * @deprecated Use sigc::mem_fun() instead. - * @ingroup compat - */ -template -inline Slot4 -slot_class(const T_obj& _A_obj, T_return (T_obj::*_A_func)(T_arg1,T_arg2,T_arg3,T_arg4) const volatile) -{ return ::sigc::bound_const_volatile_mem_functor4(_A_obj, _A_func); } - -/** Creates a functor of type SigC::Slot5 that encapsulates a const volatile method and an object instance. - * - * This function is part of the compatibility module and therefore deprecated. - * Use sigc::mem_fun() instead. - * - * @param _A_obj Reference to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes _A_func on invokation. - * - * @deprecated Use sigc::mem_fun() instead. - * @ingroup compat - */ -template -inline Slot5 -slot_class(const T_obj& _A_obj, T_return (T_obj::*_A_func)(T_arg1,T_arg2,T_arg3,T_arg4,T_arg5) const volatile) -{ return ::sigc::bound_const_volatile_mem_functor5(_A_obj, _A_func); } - -/** Creates a functor of type SigC::Slot6 that encapsulates a const volatile method and an object instance. - * - * This function is part of the compatibility module and therefore deprecated. - * Use sigc::mem_fun() instead. - * - * @param _A_obj Reference to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes _A_func on invokation. - * - * @deprecated Use sigc::mem_fun() instead. - * @ingroup compat - */ -template -inline Slot6 -slot_class(const T_obj& _A_obj, T_return (T_obj::*_A_func)(T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6) const volatile) -{ return ::sigc::bound_const_volatile_mem_functor6(_A_obj, _A_func); } - -/** Creates a functor of type SigC::Slot7 that encapsulates a const volatile method and an object instance. - * - * This function is part of the compatibility module and therefore deprecated. - * Use sigc::mem_fun() instead. - * - * @param _A_obj Reference to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes _A_func on invokation. - * - * @deprecated Use sigc::mem_fun() instead. - * @ingroup compat - */ -template -inline Slot7 -slot_class(const T_obj& _A_obj, T_return (T_obj::*_A_func)(T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6,T_arg7) const volatile) -{ return ::sigc::bound_const_volatile_mem_functor7(_A_obj, _A_func); } - - - -} - -#endif -#endif /* _SIGC_MACROS_CLASS_SLOTHM4_ */ diff --git a/libs/sigc++2/sigc++/compatibility.h b/libs/sigc++2/sigc++/compatibility.h deleted file mode 100644 index 3c5006c0f0..0000000000 --- a/libs/sigc++2/sigc++/compatibility.h +++ /dev/null @@ -1,42 +0,0 @@ -/* - * Copyright 2002, The libsigc++ Development Team - * - * 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.1 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 - * - */ -#ifndef _SIGC_COMPATIBILITY_HPP_ -#define _SIGC_COMPATIBILITY_HPP_ - -#include -#include -#include - -#ifndef LIBSIGC_DISABLE_DEPRECATED - -namespace SigC { - -/** @defgroup compat Compatibility module - * This set of types and functions provides an API that is compatible to - * libsigc++-1.2. Some internal structures of libsigc++-1.2 are not available. - * - * All types and functions that are defined in namespace SigC are deprecated. - * Use the new libsigc++2 API that is defined in namespace sigc. - */ - -} - -#endif /* LIBSIGC_DISABLE_DEPRECATED */ - -#endif /* _SIGC_COMPATIBILITY_HPP_ */ diff --git a/libs/sigc++2/sigc++/connection.cc b/libs/sigc++2/sigc++/connection.cc deleted file mode 100644 index 8f4363482f..0000000000 --- a/libs/sigc++2/sigc++/connection.cc +++ /dev/null @@ -1,111 +0,0 @@ -// -*- c++ -*- -/* - * Copyright 2002, The libsigc++ Development Team - * - * 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.1 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 - * - */ - -#include -using namespace std; - -namespace sigc { - -connection::connection() -: slot_(0) -{} - -connection::connection(const connection& c) -: slot_(c.slot_) -{ - //Let the connection forget about the signal handler when the handler object dies: - if (slot_) - slot_->add_destroy_notify_callback(this, ¬ify); -} - -connection::connection(slot_base& sl) -: slot_(&sl) -{ - //Let the connection forget about the signal handler when the handler object dies: - slot_->add_destroy_notify_callback(this, ¬ify); -} - -connection& connection::operator=(const connection& c) -{ - set_slot(c.slot_); - return *this; -} - -connection::~connection() -{ - if (slot_) - slot_->remove_destroy_notify_callback(this); -} - -bool connection::empty() const -{ - return (!slot_ || slot_->empty()); -} - -bool connection::connected() const -{ - return !empty(); -} - -bool connection::blocked() const -{ - return (slot_ ? slot_->blocked() : false); -} - -bool connection::block(bool should_block) -{ - return (slot_ ? slot_->block(should_block) : false); -} - -bool connection::unblock() -{ - return (slot_ ? slot_->unblock() : false); -} - -void connection::disconnect() -{ - if (slot_) - slot_->disconnect(); // This notifies slot_'s parent. -} - -connection::operator bool() -{ - return !empty(); -} - -void connection::set_slot(slot_base* sl) -{ - if (slot_) - slot_->remove_destroy_notify_callback(this); - - slot_ = sl; - - if (slot_) - slot_->add_destroy_notify_callback(this, ¬ify); -} - -void* connection::notify(void* data) -{ - connection* self = (connection*)data; - self->slot_ = 0; - return 0; -} - -} /* namespace sigc */ diff --git a/libs/sigc++2/sigc++/connection.h b/libs/sigc++2/sigc++/connection.h deleted file mode 100644 index 170db55618..0000000000 --- a/libs/sigc++2/sigc++/connection.h +++ /dev/null @@ -1,154 +0,0 @@ -/* - * Copyright 2002, The libsigc++ Development Team - * - * 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.1 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 - * - */ -#ifndef _SIGC_CONNECTION_HPP_ -#define _SIGC_CONNECTION_HPP_ -#include -#include - -namespace sigc { - -/** Convinience class for safe disconnection. - * Iterators must not be used beyond the lifetime of the list - * they work on. A connection object can be created from a - * slot list iterator and may safely be used to disconnect - * the referred slot at any time (disconnect()). If the slot - * has already been destroyed, disconnect() does nothing. empty() or - * operator bool() can be used to test whether the connection is - * still active. The connection can be blocked (block(), unblock()). - * - * This is possible because the connection object gets notified - * when the referred slot dies (notify()). - * - * @ingroup signal - */ -struct SIGC_API connection -{ - /** Constructs an empty connection object. */ - connection(); - - /** Constructs a connection object copying an existing one. - * @param c The connection object to make a copy from. - */ - connection(const connection& c); - - /** Constructs a connection object from a slot list iterator. - * @param it The slot list iterator to take the slot from. - */ - template - connection(const slot_iterator& it) : slot_(&(*it)) - { if (slot_) slot_->add_destroy_notify_callback(this, ¬ify); } - - /** Constructs a connection object from a slot object. - * This is only useful if you create your own slot list. - * @param sl The slot to operate on. - */ - explicit connection(slot_base& sl); - - /** Overrides this connection object copying another one. - * @param c The connection object to make a copy from. - */ - connection& operator=(const connection& c); - - /** Overrides this connection object with another slot list iterator. - * @param it The new slot list iterator to take the slot from. - */ - template - connection& operator=(const slot_iterator& it) - { set_slot(&(*it)); return *this; } - - ~connection(); - - /** Returns whether the connection is still active. - * @return @p false if the connection is still active. - */ - bool empty() const; - - /** Returns whether the connection is still active. - * @return @p true if the connection is still active. - */ - bool connected() const; - - /** Returns whether the connection is blocked. - * @return @p true if the connection is blocked. - */ - bool blocked() const; - - /** Sets or unsets the blocking state of this connection. - * See slot_base::block() for details. - * @param should_block Indicates whether the blocking state should be set or unset. - * @return @p true if the connection has been in blocking state before. - */ - bool block(bool should_block = true); - - /** Unsets the blocking state of this connection. - * @return @p true if the connection has been in blocking state before. - */ - bool unblock(); - - /// Disconnects the referred slot. - void disconnect(); - - /** Returns whether the connection is still active. - * @return @p true if the connection is still active. - */ - operator bool(); - - /** Callback that is executed when the referred slot is destroyed. - * @param d The connection object notified (@p this). - */ - static void* notify(void* data); - -private: - void set_slot(slot_base* sl); - - /* Referred slot. Set to zero from notify(). - * A value of zero indicates an "empty" connection. - */ - slot_base* slot_; -}; - -} /* namespace sigc */ - - -#ifndef LIBSIGC_DISABLE_DEPRECATED - -namespace SigC { - -/** Convinience class for safe disconnection. - * Iterators must not be used beyond the lifetime of the list - * they work on. A connection object can be created from a - * slot list iterator and may safely be used to disconnect - * the referred slot at any time (disconnect()). If the slot - * has already been destroyed, disconnect() does nothing. empty() or - * operator bool() can be used to test whether the connection is - * still active. The connection can be blocked (block(), unblock()). - * - * This is possible because the connection object gets notified - * when the referred slot dies (notify()). - * - * @deprecated Use sigc::connection instead. - * @ingroup compat - */ -typedef ::sigc::connection Connection; - -} - -#endif /* LIBSIGC_DISABLE_DEPRECATED */ - -#endif /* _SIGC_TRACKABLE_HPP_ */ diff --git a/libs/sigc++2/sigc++/functors/.cvsignore b/libs/sigc++2/sigc++/functors/.cvsignore deleted file mode 100644 index 1edeb79fd1..0000000000 --- a/libs/sigc++2/sigc++/functors/.cvsignore +++ /dev/null @@ -1 +0,0 @@ -*.os diff --git a/libs/sigc++2/sigc++/functors/functor_trait.h b/libs/sigc++2/sigc++/functors/functor_trait.h deleted file mode 100644 index 0b7475273f..0000000000 --- a/libs/sigc++2/sigc++/functors/functor_trait.h +++ /dev/null @@ -1,307 +0,0 @@ -// -*- c++ -*- -/* Do not edit! -- generated file */ -/* - Trait functor_trait: - - This trait allows the user to specific what is the return type - of any type. It has been overloaded to detect the return type and - the functor version of function pointers and class methods as well. - - To populate the return type of user defined and third party functors - use the macro SIGC_FUNCTOR_TRAIT(T_functor,T_return) in - namespace sigc. Multi-type functors are only partly supported. - Try specifying the return type of the functor's operator()() overload. - - Alternatively, you can derive your functors from functor_base and - place "typedef T_return result_type;" in the class definition. - - Use SIGC_FUNCTORS_HAVE_RESULT_TYPE if you want sigc++ to assume that - result_type is defined in all user defined or 3rd-party functors - (except those you specify a return type explicitly with SIGC_FUNCTOR_TRAIT()). - -*/ -#ifndef _SIGC_FUNCTORS_MACROS_FUNCTOR_TRAITHM4_ -#define _SIGC_FUNCTORS_MACROS_FUNCTOR_TRAITHM4_ -#include - - -namespace sigc { - -/** nil_ struct type. - * The nil_ struct type is used as default template argument in the - * unnumbered sigc::signal and sigc::slot templates. - * - * @ingroup signal - * @ingroup slot - */ -struct nil_; - - -/** @defgroup functors Functors - * Functors are copyable types that define operator()(). - * - * Types that define operator()() overloads with different return types are referred to - * as multi-type functors. Multi-type functors are only partly supported in libsigc++. - * - * Closures are functors that store all information needed to invoke a callback from operator()(). - * - * Adaptors are functors that alter the signature of a functor's operator()(). - * - * libsigc++ defines numerous functors, closures and adaptors. - * Since libsigc++ is a callback libaray, most functors are also closures. - * The documentation doesn't distinguish between functors and closures. - * - * The basic functor types libsigc++ provides are created with ptr_fun() and mem_fun() - * and can be converted into slots implicitly. - * The set of adaptors that ships with libsigc++ is documented in the equally named module. - */ - -/** A hint to the compiler. - * All functors which define @p result_type should publically inherit from this hint. - * - * @ingroup functors - */ -struct functor_base {}; - - -template ::value> -struct functor_trait -{ - typedef void result_type; - typedef T_functor functor_type; -}; - -template -struct functor_trait -{ - typedef typename T_functor::result_type result_type; - typedef T_functor functor_type; -}; - -/** If you want to mix functors from a different library with libsigc++ and - * these functors define @p result_type simply use this macro inside namespace sigc like so: - * @code - * namespace sigc { SIGC_FUNCTORS_HAVE_RESULT_TYPE } - * @endcode - * - * @ingroup functors - */ -#define SIGC_FUNCTORS_HAVE_RESULT_TYPE \ -template \ -struct functor_trait \ -{ \ - typedef typename T_functor::result_type result_type; \ - typedef T_functor functor_type; \ -}; - -/** If you want to mix functors from a different library with libsigc++ and - * these functors don't define @p result_type use this macro inside namespace sigc - * to expose the return type of the functors like so: - * @code - * namespace sigc { - * SIGC_FUNCTOR_TRAIT(first_functor_type, return_type_of_first_functor_type) - * SIGC_FUNCTOR_TRAIT(second_functor_type, return_type_of_second_functor_type) - * ... - * } - * @endcode - * - * @ingroup functors - */ -#define SIGC_FUNCTOR_TRAIT(T_functor,T_return) \ -template <> \ -struct functor_trait \ -{ \ - typedef T_return result_type; \ - typedef T_functor functor_type; \ -}; - -// detect the return type and the functor version of non-functor types. -template class pointer_functor0; -template -struct functor_trait -{ - typedef T_return result_type; - typedef pointer_functor0 functor_type; -}; - -template class pointer_functor1; -template -struct functor_trait -{ - typedef T_return result_type; - typedef pointer_functor1 functor_type; -}; - -template class pointer_functor2; -template -struct functor_trait -{ - typedef T_return result_type; - typedef pointer_functor2 functor_type; -}; - -template class pointer_functor3; -template -struct functor_trait -{ - typedef T_return result_type; - typedef pointer_functor3 functor_type; -}; - -template class pointer_functor4; -template -struct functor_trait -{ - typedef T_return result_type; - typedef pointer_functor4 functor_type; -}; - -template class pointer_functor5; -template -struct functor_trait -{ - typedef T_return result_type; - typedef pointer_functor5 functor_type; -}; - -template class pointer_functor6; -template -struct functor_trait -{ - typedef T_return result_type; - typedef pointer_functor6 functor_type; -}; - -template class pointer_functor7; -template -struct functor_trait -{ - typedef T_return result_type; - typedef pointer_functor7 functor_type; -}; - - -template class mem_functor0; -template class const_mem_functor0; -template -struct functor_trait -{ - typedef T_return result_type; - typedef mem_functor0 functor_type; -}; -template -struct functor_trait -{ - typedef T_return result_type; - typedef const_mem_functor0 functor_type; -}; - -template class mem_functor1; -template class const_mem_functor1; -template -struct functor_trait -{ - typedef T_return result_type; - typedef mem_functor1 functor_type; -}; -template -struct functor_trait -{ - typedef T_return result_type; - typedef const_mem_functor1 functor_type; -}; - -template class mem_functor2; -template class const_mem_functor2; -template -struct functor_trait -{ - typedef T_return result_type; - typedef mem_functor2 functor_type; -}; -template -struct functor_trait -{ - typedef T_return result_type; - typedef const_mem_functor2 functor_type; -}; - -template class mem_functor3; -template class const_mem_functor3; -template -struct functor_trait -{ - typedef T_return result_type; - typedef mem_functor3 functor_type; -}; -template -struct functor_trait -{ - typedef T_return result_type; - typedef const_mem_functor3 functor_type; -}; - -template class mem_functor4; -template class const_mem_functor4; -template -struct functor_trait -{ - typedef T_return result_type; - typedef mem_functor4 functor_type; -}; -template -struct functor_trait -{ - typedef T_return result_type; - typedef const_mem_functor4 functor_type; -}; - -template class mem_functor5; -template class const_mem_functor5; -template -struct functor_trait -{ - typedef T_return result_type; - typedef mem_functor5 functor_type; -}; -template -struct functor_trait -{ - typedef T_return result_type; - typedef const_mem_functor5 functor_type; -}; - -template class mem_functor6; -template class const_mem_functor6; -template -struct functor_trait -{ - typedef T_return result_type; - typedef mem_functor6 functor_type; -}; -template -struct functor_trait -{ - typedef T_return result_type; - typedef const_mem_functor6 functor_type; -}; - -template class mem_functor7; -template class const_mem_functor7; -template -struct functor_trait -{ - typedef T_return result_type; - typedef mem_functor7 functor_type; -}; -template -struct functor_trait -{ - typedef T_return result_type; - typedef const_mem_functor7 functor_type; -}; - - - -} /* namespace sigc */ -#endif /* _SIGC_FUNCTORS_MACROS_FUNCTOR_TRAITHM4_ */ diff --git a/libs/sigc++2/sigc++/functors/functors.h b/libs/sigc++2/sigc++/functors/functors.h deleted file mode 100644 index 3a9619c21d..0000000000 --- a/libs/sigc++2/sigc++/functors/functors.h +++ /dev/null @@ -1,27 +0,0 @@ -// -*- c++ -*- -/* - * Copyright 2002, The libsigc++ Development Team - * - * 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.1 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 - * - */ -#ifndef _SIGC_FUNCTOR_HPP_ -#define _SIGC_FUNCTOR_HPP_ - -#include -#include -#include - -#endif /* _SIGC_FUNCTOR_HPP_ */ diff --git a/libs/sigc++2/sigc++/functors/mem_fun.h b/libs/sigc++2/sigc++/functors/mem_fun.h deleted file mode 100644 index 2bd7cde67f..0000000000 --- a/libs/sigc++2/sigc++/functors/mem_fun.h +++ /dev/null @@ -1,5976 +0,0 @@ -// -*- c++ -*- -/* Do not edit! -- generated file */ - - -// implementation notes: -// - we do not use bind here, because it would introduce -// an extra copy and complicate the header include order if bind is -// to have automatic conversion for member pointers. -#ifndef _SIGC_FUNCTORS_MACROS_MEM_FUNHM4_ -#define _SIGC_FUNCTORS_MACROS_MEM_FUNHM4_ -#include -#include - -namespace sigc { - -/** @defgroup mem_fun mem_fun() - * mem_fun() is used to convert a pointer to a method to a functor. - * - * Optionally a reference or pointer to an object can be bound to the functor. - * Note that only if the object type inherits from sigc::trackable - * the slot is cleared automatically when the object goes out of scope! - * - * If the member function pointer is to an overloaded type, you must specify - * the types using template arguments starting with the first argument. - * It is not necessary to supply the return type. - * - * @par Example: - * @code - * struct foo : public sigc::trackable - * { - * void bar(int) {} - * }; - * foo my_foo; - * sigc::slot sl = sigc::mem_fun(my_foo, &foo::bar); - * @endcode - * - * For const methods mem_fun() takes a const reference or pointer to an object. - * - * @par Example: - * @code - * struct foo : public sigc::trackable - * { - * void bar(int) const {} - * }; - * const foo my_foo; - * sigc::slot sl = sigc::mem_fun(my_foo, &foo::bar); - * @endcode - * - * Use mem_fun#() if there is an abiguity as to the number of arguments. - * - * @par Example: - * @code - * struct foo : public sigc::trackable - * { - * void bar(int) {} - * void bar(float) {} - * void bar(int, int) {} - * }; - * foo my_foo; - * sigc::slot sl = sigc::mem_fun1(my_foo, &foo::bar); - * @endcode - * - * @ingroup functors - */ - -/** mem_functor0 wraps methods with 0 argument(s). - * Use the convenience function mem_fun() to create an instance of mem_functor0. - * - * The following template arguments are used: - * - @e T_return The return type of operator()(). - * - @e T_obj The object type. - * - * @ingroup mem_fun - */ -template -class mem_functor0 : public functor_base -{ -public: - typedef T_return (T_obj::*function_type)() ; - typedef T_return result_type; - - /// Constructs an invalid functor. - mem_functor0() : func_ptr_(0) {} - - /** Constructs a mem_functor0 object that wraps the passed method. - * @param _A_func Pointer to method will be invoked from operator()(). - */ - explicit mem_functor0(function_type _A_func) : func_ptr_(_A_func) {} - - /** Execute the wrapped method operating on the passed instance. - * @param _A_obj Pointer to instance the method should operate on. - * @return The return value of the method invocation. - */ - T_return operator()(T_obj* _A_obj) const - { return (_A_obj->*(this->func_ptr_))(); } - - /** Execute the wrapped method operating on the passed instance. - * @param _A_obj Reference to instance the method should operate on. - * @return The return value of the method invocation. - */ - T_return operator()(T_obj& _A_obj) const - { return (_A_obj.*func_ptr_)(); } - -protected: - function_type func_ptr_; -}; - -/** mem_functor1 wraps methods with 1 argument(s). - * Use the convenience function mem_fun() to create an instance of mem_functor1. - * - * The following template arguments are used: - * - @e T_arg1 Argument type used in the definition of operator()(). - * - @e T_return The return type of operator()(). - * - @e T_obj The object type. - * - * @ingroup mem_fun - */ -template -class mem_functor1 : public functor_base -{ -public: - typedef T_return (T_obj::*function_type)(T_arg1) ; - typedef T_return result_type; - - /// Constructs an invalid functor. - mem_functor1() : func_ptr_(0) {} - - /** Constructs a mem_functor1 object that wraps the passed method. - * @param _A_func Pointer to method will be invoked from operator()(). - */ - explicit mem_functor1(function_type _A_func) : func_ptr_(_A_func) {} - - /** Execute the wrapped method operating on the passed instance. - * @param _A_obj Pointer to instance the method should operate on. - * @param _A_a1 Argument to be passed on to the method. - * @return The return value of the method invocation. - */ - T_return operator()(T_obj* _A_obj, typename type_trait::take _A_a1) const - { return (_A_obj->*(this->func_ptr_))(_A_a1); } - - /** Execute the wrapped method operating on the passed instance. - * @param _A_obj Reference to instance the method should operate on. - * @param _A_a1 Argument to be passed on to the method. - * @return The return value of the method invocation. - */ - T_return operator()(T_obj& _A_obj, typename type_trait::take _A_a1) const - { return (_A_obj.*func_ptr_)(_A_a1); } - -protected: - function_type func_ptr_; -}; - -/** mem_functor2 wraps methods with 2 argument(s). - * Use the convenience function mem_fun() to create an instance of mem_functor2. - * - * The following template arguments are used: - * - @e T_arg1 Argument type used in the definition of operator()(). - * - @e T_arg2 Argument type used in the definition of operator()(). - * - @e T_return The return type of operator()(). - * - @e T_obj The object type. - * - * @ingroup mem_fun - */ -template -class mem_functor2 : public functor_base -{ -public: - typedef T_return (T_obj::*function_type)(T_arg1,T_arg2) ; - typedef T_return result_type; - - /// Constructs an invalid functor. - mem_functor2() : func_ptr_(0) {} - - /** Constructs a mem_functor2 object that wraps the passed method. - * @param _A_func Pointer to method will be invoked from operator()(). - */ - explicit mem_functor2(function_type _A_func) : func_ptr_(_A_func) {} - - /** Execute the wrapped method operating on the passed instance. - * @param _A_obj Pointer to instance the method should operate on. - * @param _A_a1 Argument to be passed on to the method. - * @param _A_a2 Argument to be passed on to the method. - * @return The return value of the method invocation. - */ - T_return operator()(T_obj* _A_obj, typename type_trait::take _A_a1,typename type_trait::take _A_a2) const - { return (_A_obj->*(this->func_ptr_))(_A_a1,_A_a2); } - - /** Execute the wrapped method operating on the passed instance. - * @param _A_obj Reference to instance the method should operate on. - * @param _A_a1 Argument to be passed on to the method. - * @param _A_a2 Argument to be passed on to the method. - * @return The return value of the method invocation. - */ - T_return operator()(T_obj& _A_obj, typename type_trait::take _A_a1,typename type_trait::take _A_a2) const - { return (_A_obj.*func_ptr_)(_A_a1,_A_a2); } - -protected: - function_type func_ptr_; -}; - -/** mem_functor3 wraps methods with 3 argument(s). - * Use the convenience function mem_fun() to create an instance of mem_functor3. - * - * The following template arguments are used: - * - @e T_arg1 Argument type used in the definition of operator()(). - * - @e T_arg2 Argument type used in the definition of operator()(). - * - @e T_arg3 Argument type used in the definition of operator()(). - * - @e T_return The return type of operator()(). - * - @e T_obj The object type. - * - * @ingroup mem_fun - */ -template -class mem_functor3 : public functor_base -{ -public: - typedef T_return (T_obj::*function_type)(T_arg1,T_arg2,T_arg3) ; - typedef T_return result_type; - - /// Constructs an invalid functor. - mem_functor3() : func_ptr_(0) {} - - /** Constructs a mem_functor3 object that wraps the passed method. - * @param _A_func Pointer to method will be invoked from operator()(). - */ - explicit mem_functor3(function_type _A_func) : func_ptr_(_A_func) {} - - /** Execute the wrapped method operating on the passed instance. - * @param _A_obj Pointer to instance the method should operate on. - * @param _A_a1 Argument to be passed on to the method. - * @param _A_a2 Argument to be passed on to the method. - * @param _A_a3 Argument to be passed on to the method. - * @return The return value of the method invocation. - */ - T_return operator()(T_obj* _A_obj, typename type_trait::take _A_a1,typename type_trait::take _A_a2,typename type_trait::take _A_a3) const - { return (_A_obj->*(this->func_ptr_))(_A_a1,_A_a2,_A_a3); } - - /** Execute the wrapped method operating on the passed instance. - * @param _A_obj Reference to instance the method should operate on. - * @param _A_a1 Argument to be passed on to the method. - * @param _A_a2 Argument to be passed on to the method. - * @param _A_a3 Argument to be passed on to the method. - * @return The return value of the method invocation. - */ - T_return operator()(T_obj& _A_obj, typename type_trait::take _A_a1,typename type_trait::take _A_a2,typename type_trait::take _A_a3) const - { return (_A_obj.*func_ptr_)(_A_a1,_A_a2,_A_a3); } - -protected: - function_type func_ptr_; -}; - -/** mem_functor4 wraps methods with 4 argument(s). - * Use the convenience function mem_fun() to create an instance of mem_functor4. - * - * The following template arguments are used: - * - @e T_arg1 Argument type used in the definition of operator()(). - * - @e T_arg2 Argument type used in the definition of operator()(). - * - @e T_arg3 Argument type used in the definition of operator()(). - * - @e T_arg4 Argument type used in the definition of operator()(). - * - @e T_return The return type of operator()(). - * - @e T_obj The object type. - * - * @ingroup mem_fun - */ -template -class mem_functor4 : public functor_base -{ -public: - typedef T_return (T_obj::*function_type)(T_arg1,T_arg2,T_arg3,T_arg4) ; - typedef T_return result_type; - - /// Constructs an invalid functor. - mem_functor4() : func_ptr_(0) {} - - /** Constructs a mem_functor4 object that wraps the passed method. - * @param _A_func Pointer to method will be invoked from operator()(). - */ - explicit mem_functor4(function_type _A_func) : func_ptr_(_A_func) {} - - /** Execute the wrapped method operating on the passed instance. - * @param _A_obj Pointer to instance the method should operate on. - * @param _A_a1 Argument to be passed on to the method. - * @param _A_a2 Argument to be passed on to the method. - * @param _A_a3 Argument to be passed on to the method. - * @param _A_a4 Argument to be passed on to the method. - * @return The return value of the method invocation. - */ - T_return operator()(T_obj* _A_obj, typename type_trait::take _A_a1,typename type_trait::take _A_a2,typename type_trait::take _A_a3,typename type_trait::take _A_a4) const - { return (_A_obj->*(this->func_ptr_))(_A_a1,_A_a2,_A_a3,_A_a4); } - - /** Execute the wrapped method operating on the passed instance. - * @param _A_obj Reference to instance the method should operate on. - * @param _A_a1 Argument to be passed on to the method. - * @param _A_a2 Argument to be passed on to the method. - * @param _A_a3 Argument to be passed on to the method. - * @param _A_a4 Argument to be passed on to the method. - * @return The return value of the method invocation. - */ - T_return operator()(T_obj& _A_obj, typename type_trait::take _A_a1,typename type_trait::take _A_a2,typename type_trait::take _A_a3,typename type_trait::take _A_a4) const - { return (_A_obj.*func_ptr_)(_A_a1,_A_a2,_A_a3,_A_a4); } - -protected: - function_type func_ptr_; -}; - -/** mem_functor5 wraps methods with 5 argument(s). - * Use the convenience function mem_fun() to create an instance of mem_functor5. - * - * The following template arguments are used: - * - @e T_arg1 Argument type used in the definition of operator()(). - * - @e T_arg2 Argument type used in the definition of operator()(). - * - @e T_arg3 Argument type used in the definition of operator()(). - * - @e T_arg4 Argument type used in the definition of operator()(). - * - @e T_arg5 Argument type used in the definition of operator()(). - * - @e T_return The return type of operator()(). - * - @e T_obj The object type. - * - * @ingroup mem_fun - */ -template -class mem_functor5 : public functor_base -{ -public: - typedef T_return (T_obj::*function_type)(T_arg1,T_arg2,T_arg3,T_arg4,T_arg5) ; - typedef T_return result_type; - - /// Constructs an invalid functor. - mem_functor5() : func_ptr_(0) {} - - /** Constructs a mem_functor5 object that wraps the passed method. - * @param _A_func Pointer to method will be invoked from operator()(). - */ - explicit mem_functor5(function_type _A_func) : func_ptr_(_A_func) {} - - /** Execute the wrapped method operating on the passed instance. - * @param _A_obj Pointer to instance the method should operate on. - * @param _A_a1 Argument to be passed on to the method. - * @param _A_a2 Argument to be passed on to the method. - * @param _A_a3 Argument to be passed on to the method. - * @param _A_a4 Argument to be passed on to the method. - * @param _A_a5 Argument to be passed on to the method. - * @return The return value of the method invocation. - */ - T_return operator()(T_obj* _A_obj, typename type_trait::take _A_a1,typename type_trait::take _A_a2,typename type_trait::take _A_a3,typename type_trait::take _A_a4,typename type_trait::take _A_a5) const - { return (_A_obj->*(this->func_ptr_))(_A_a1,_A_a2,_A_a3,_A_a4,_A_a5); } - - /** Execute the wrapped method operating on the passed instance. - * @param _A_obj Reference to instance the method should operate on. - * @param _A_a1 Argument to be passed on to the method. - * @param _A_a2 Argument to be passed on to the method. - * @param _A_a3 Argument to be passed on to the method. - * @param _A_a4 Argument to be passed on to the method. - * @param _A_a5 Argument to be passed on to the method. - * @return The return value of the method invocation. - */ - T_return operator()(T_obj& _A_obj, typename type_trait::take _A_a1,typename type_trait::take _A_a2,typename type_trait::take _A_a3,typename type_trait::take _A_a4,typename type_trait::take _A_a5) const - { return (_A_obj.*func_ptr_)(_A_a1,_A_a2,_A_a3,_A_a4,_A_a5); } - -protected: - function_type func_ptr_; -}; - -/** mem_functor6 wraps methods with 6 argument(s). - * Use the convenience function mem_fun() to create an instance of mem_functor6. - * - * The following template arguments are used: - * - @e T_arg1 Argument type used in the definition of operator()(). - * - @e T_arg2 Argument type used in the definition of operator()(). - * - @e T_arg3 Argument type used in the definition of operator()(). - * - @e T_arg4 Argument type used in the definition of operator()(). - * - @e T_arg5 Argument type used in the definition of operator()(). - * - @e T_arg6 Argument type used in the definition of operator()(). - * - @e T_return The return type of operator()(). - * - @e T_obj The object type. - * - * @ingroup mem_fun - */ -template -class mem_functor6 : public functor_base -{ -public: - typedef T_return (T_obj::*function_type)(T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6) ; - typedef T_return result_type; - - /// Constructs an invalid functor. - mem_functor6() : func_ptr_(0) {} - - /** Constructs a mem_functor6 object that wraps the passed method. - * @param _A_func Pointer to method will be invoked from operator()(). - */ - explicit mem_functor6(function_type _A_func) : func_ptr_(_A_func) {} - - /** Execute the wrapped method operating on the passed instance. - * @param _A_obj Pointer to instance the method should operate on. - * @param _A_a1 Argument to be passed on to the method. - * @param _A_a2 Argument to be passed on to the method. - * @param _A_a3 Argument to be passed on to the method. - * @param _A_a4 Argument to be passed on to the method. - * @param _A_a5 Argument to be passed on to the method. - * @param _A_a6 Argument to be passed on to the method. - * @return The return value of the method invocation. - */ - T_return operator()(T_obj* _A_obj, typename type_trait::take _A_a1,typename type_trait::take _A_a2,typename type_trait::take _A_a3,typename type_trait::take _A_a4,typename type_trait::take _A_a5,typename type_trait::take _A_a6) const - { return (_A_obj->*(this->func_ptr_))(_A_a1,_A_a2,_A_a3,_A_a4,_A_a5,_A_a6); } - - /** Execute the wrapped method operating on the passed instance. - * @param _A_obj Reference to instance the method should operate on. - * @param _A_a1 Argument to be passed on to the method. - * @param _A_a2 Argument to be passed on to the method. - * @param _A_a3 Argument to be passed on to the method. - * @param _A_a4 Argument to be passed on to the method. - * @param _A_a5 Argument to be passed on to the method. - * @param _A_a6 Argument to be passed on to the method. - * @return The return value of the method invocation. - */ - T_return operator()(T_obj& _A_obj, typename type_trait::take _A_a1,typename type_trait::take _A_a2,typename type_trait::take _A_a3,typename type_trait::take _A_a4,typename type_trait::take _A_a5,typename type_trait::take _A_a6) const - { return (_A_obj.*func_ptr_)(_A_a1,_A_a2,_A_a3,_A_a4,_A_a5,_A_a6); } - -protected: - function_type func_ptr_; -}; - -/** mem_functor7 wraps methods with 7 argument(s). - * Use the convenience function mem_fun() to create an instance of mem_functor7. - * - * The following template arguments are used: - * - @e T_arg1 Argument type used in the definition of operator()(). - * - @e T_arg2 Argument type used in the definition of operator()(). - * - @e T_arg3 Argument type used in the definition of operator()(). - * - @e T_arg4 Argument type used in the definition of operator()(). - * - @e T_arg5 Argument type used in the definition of operator()(). - * - @e T_arg6 Argument type used in the definition of operator()(). - * - @e T_arg7 Argument type used in the definition of operator()(). - * - @e T_return The return type of operator()(). - * - @e T_obj The object type. - * - * @ingroup mem_fun - */ -template -class mem_functor7 : public functor_base -{ -public: - typedef T_return (T_obj::*function_type)(T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6,T_arg7) ; - typedef T_return result_type; - - /// Constructs an invalid functor. - mem_functor7() : func_ptr_(0) {} - - /** Constructs a mem_functor7 object that wraps the passed method. - * @param _A_func Pointer to method will be invoked from operator()(). - */ - explicit mem_functor7(function_type _A_func) : func_ptr_(_A_func) {} - - /** Execute the wrapped method operating on the passed instance. - * @param _A_obj Pointer to instance the method should operate on. - * @param _A_a1 Argument to be passed on to the method. - * @param _A_a2 Argument to be passed on to the method. - * @param _A_a3 Argument to be passed on to the method. - * @param _A_a4 Argument to be passed on to the method. - * @param _A_a5 Argument to be passed on to the method. - * @param _A_a6 Argument to be passed on to the method. - * @param _A_a7 Argument to be passed on to the method. - * @return The return value of the method invocation. - */ - T_return operator()(T_obj* _A_obj, typename type_trait::take _A_a1,typename type_trait::take _A_a2,typename type_trait::take _A_a3,typename type_trait::take _A_a4,typename type_trait::take _A_a5,typename type_trait::take _A_a6,typename type_trait::take _A_a7) const - { return (_A_obj->*(this->func_ptr_))(_A_a1,_A_a2,_A_a3,_A_a4,_A_a5,_A_a6,_A_a7); } - - /** Execute the wrapped method operating on the passed instance. - * @param _A_obj Reference to instance the method should operate on. - * @param _A_a1 Argument to be passed on to the method. - * @param _A_a2 Argument to be passed on to the method. - * @param _A_a3 Argument to be passed on to the method. - * @param _A_a4 Argument to be passed on to the method. - * @param _A_a5 Argument to be passed on to the method. - * @param _A_a6 Argument to be passed on to the method. - * @param _A_a7 Argument to be passed on to the method. - * @return The return value of the method invocation. - */ - T_return operator()(T_obj& _A_obj, typename type_trait::take _A_a1,typename type_trait::take _A_a2,typename type_trait::take _A_a3,typename type_trait::take _A_a4,typename type_trait::take _A_a5,typename type_trait::take _A_a6,typename type_trait::take _A_a7) const - { return (_A_obj.*func_ptr_)(_A_a1,_A_a2,_A_a3,_A_a4,_A_a5,_A_a6,_A_a7); } - -protected: - function_type func_ptr_; -}; - -/** const_mem_functor0 wraps const methods with 0 argument(s). - * Use the convenience function mem_fun() to create an instance of const_mem_functor0. - * - * The following template arguments are used: - * - @e T_return The return type of operator()(). - * - @e T_obj The object type. - * - * @ingroup mem_fun - */ -template -class const_mem_functor0 : public functor_base -{ -public: - typedef T_return (T_obj::*function_type)() const; - typedef T_return result_type; - - /// Constructs an invalid functor. - const_mem_functor0() : func_ptr_(0) {} - - /** Constructs a const_mem_functor0 object that wraps the passed method. - * @param _A_func Pointer to method will be invoked from operator()(). - */ - explicit const_mem_functor0(function_type _A_func) : func_ptr_(_A_func) {} - - /** Execute the wrapped method operating on the passed instance. - * @param _A_obj Pointer to instance the method should operate on. - * @return The return value of the method invocation. - */ - T_return operator()(const T_obj* _A_obj) const - { return (_A_obj->*(this->func_ptr_))(); } - - /** Execute the wrapped method operating on the passed instance. - * @param _A_obj Reference to instance the method should operate on. - * @return The return value of the method invocation. - */ - T_return operator()(const T_obj& _A_obj) const - { return (_A_obj.*func_ptr_)(); } - -protected: - function_type func_ptr_; -}; - -/** const_mem_functor1 wraps const methods with 1 argument(s). - * Use the convenience function mem_fun() to create an instance of const_mem_functor1. - * - * The following template arguments are used: - * - @e T_arg1 Argument type used in the definition of operator()(). - * - @e T_return The return type of operator()(). - * - @e T_obj The object type. - * - * @ingroup mem_fun - */ -template -class const_mem_functor1 : public functor_base -{ -public: - typedef T_return (T_obj::*function_type)(T_arg1) const; - typedef T_return result_type; - - /// Constructs an invalid functor. - const_mem_functor1() : func_ptr_(0) {} - - /** Constructs a const_mem_functor1 object that wraps the passed method. - * @param _A_func Pointer to method will be invoked from operator()(). - */ - explicit const_mem_functor1(function_type _A_func) : func_ptr_(_A_func) {} - - /** Execute the wrapped method operating on the passed instance. - * @param _A_obj Pointer to instance the method should operate on. - * @param _A_a1 Argument to be passed on to the method. - * @return The return value of the method invocation. - */ - T_return operator()(const T_obj* _A_obj, typename type_trait::take _A_a1) const - { return (_A_obj->*(this->func_ptr_))(_A_a1); } - - /** Execute the wrapped method operating on the passed instance. - * @param _A_obj Reference to instance the method should operate on. - * @param _A_a1 Argument to be passed on to the method. - * @return The return value of the method invocation. - */ - T_return operator()(const T_obj& _A_obj, typename type_trait::take _A_a1) const - { return (_A_obj.*func_ptr_)(_A_a1); } - -protected: - function_type func_ptr_; -}; - -/** const_mem_functor2 wraps const methods with 2 argument(s). - * Use the convenience function mem_fun() to create an instance of const_mem_functor2. - * - * The following template arguments are used: - * - @e T_arg1 Argument type used in the definition of operator()(). - * - @e T_arg2 Argument type used in the definition of operator()(). - * - @e T_return The return type of operator()(). - * - @e T_obj The object type. - * - * @ingroup mem_fun - */ -template -class const_mem_functor2 : public functor_base -{ -public: - typedef T_return (T_obj::*function_type)(T_arg1,T_arg2) const; - typedef T_return result_type; - - /// Constructs an invalid functor. - const_mem_functor2() : func_ptr_(0) {} - - /** Constructs a const_mem_functor2 object that wraps the passed method. - * @param _A_func Pointer to method will be invoked from operator()(). - */ - explicit const_mem_functor2(function_type _A_func) : func_ptr_(_A_func) {} - - /** Execute the wrapped method operating on the passed instance. - * @param _A_obj Pointer to instance the method should operate on. - * @param _A_a1 Argument to be passed on to the method. - * @param _A_a2 Argument to be passed on to the method. - * @return The return value of the method invocation. - */ - T_return operator()(const T_obj* _A_obj, typename type_trait::take _A_a1,typename type_trait::take _A_a2) const - { return (_A_obj->*(this->func_ptr_))(_A_a1,_A_a2); } - - /** Execute the wrapped method operating on the passed instance. - * @param _A_obj Reference to instance the method should operate on. - * @param _A_a1 Argument to be passed on to the method. - * @param _A_a2 Argument to be passed on to the method. - * @return The return value of the method invocation. - */ - T_return operator()(const T_obj& _A_obj, typename type_trait::take _A_a1,typename type_trait::take _A_a2) const - { return (_A_obj.*func_ptr_)(_A_a1,_A_a2); } - -protected: - function_type func_ptr_; -}; - -/** const_mem_functor3 wraps const methods with 3 argument(s). - * Use the convenience function mem_fun() to create an instance of const_mem_functor3. - * - * The following template arguments are used: - * - @e T_arg1 Argument type used in the definition of operator()(). - * - @e T_arg2 Argument type used in the definition of operator()(). - * - @e T_arg3 Argument type used in the definition of operator()(). - * - @e T_return The return type of operator()(). - * - @e T_obj The object type. - * - * @ingroup mem_fun - */ -template -class const_mem_functor3 : public functor_base -{ -public: - typedef T_return (T_obj::*function_type)(T_arg1,T_arg2,T_arg3) const; - typedef T_return result_type; - - /// Constructs an invalid functor. - const_mem_functor3() : func_ptr_(0) {} - - /** Constructs a const_mem_functor3 object that wraps the passed method. - * @param _A_func Pointer to method will be invoked from operator()(). - */ - explicit const_mem_functor3(function_type _A_func) : func_ptr_(_A_func) {} - - /** Execute the wrapped method operating on the passed instance. - * @param _A_obj Pointer to instance the method should operate on. - * @param _A_a1 Argument to be passed on to the method. - * @param _A_a2 Argument to be passed on to the method. - * @param _A_a3 Argument to be passed on to the method. - * @return The return value of the method invocation. - */ - T_return operator()(const T_obj* _A_obj, typename type_trait::take _A_a1,typename type_trait::take _A_a2,typename type_trait::take _A_a3) const - { return (_A_obj->*(this->func_ptr_))(_A_a1,_A_a2,_A_a3); } - - /** Execute the wrapped method operating on the passed instance. - * @param _A_obj Reference to instance the method should operate on. - * @param _A_a1 Argument to be passed on to the method. - * @param _A_a2 Argument to be passed on to the method. - * @param _A_a3 Argument to be passed on to the method. - * @return The return value of the method invocation. - */ - T_return operator()(const T_obj& _A_obj, typename type_trait::take _A_a1,typename type_trait::take _A_a2,typename type_trait::take _A_a3) const - { return (_A_obj.*func_ptr_)(_A_a1,_A_a2,_A_a3); } - -protected: - function_type func_ptr_; -}; - -/** const_mem_functor4 wraps const methods with 4 argument(s). - * Use the convenience function mem_fun() to create an instance of const_mem_functor4. - * - * The following template arguments are used: - * - @e T_arg1 Argument type used in the definition of operator()(). - * - @e T_arg2 Argument type used in the definition of operator()(). - * - @e T_arg3 Argument type used in the definition of operator()(). - * - @e T_arg4 Argument type used in the definition of operator()(). - * - @e T_return The return type of operator()(). - * - @e T_obj The object type. - * - * @ingroup mem_fun - */ -template -class const_mem_functor4 : public functor_base -{ -public: - typedef T_return (T_obj::*function_type)(T_arg1,T_arg2,T_arg3,T_arg4) const; - typedef T_return result_type; - - /// Constructs an invalid functor. - const_mem_functor4() : func_ptr_(0) {} - - /** Constructs a const_mem_functor4 object that wraps the passed method. - * @param _A_func Pointer to method will be invoked from operator()(). - */ - explicit const_mem_functor4(function_type _A_func) : func_ptr_(_A_func) {} - - /** Execute the wrapped method operating on the passed instance. - * @param _A_obj Pointer to instance the method should operate on. - * @param _A_a1 Argument to be passed on to the method. - * @param _A_a2 Argument to be passed on to the method. - * @param _A_a3 Argument to be passed on to the method. - * @param _A_a4 Argument to be passed on to the method. - * @return The return value of the method invocation. - */ - T_return operator()(const T_obj* _A_obj, typename type_trait::take _A_a1,typename type_trait::take _A_a2,typename type_trait::take _A_a3,typename type_trait::take _A_a4) const - { return (_A_obj->*(this->func_ptr_))(_A_a1,_A_a2,_A_a3,_A_a4); } - - /** Execute the wrapped method operating on the passed instance. - * @param _A_obj Reference to instance the method should operate on. - * @param _A_a1 Argument to be passed on to the method. - * @param _A_a2 Argument to be passed on to the method. - * @param _A_a3 Argument to be passed on to the method. - * @param _A_a4 Argument to be passed on to the method. - * @return The return value of the method invocation. - */ - T_return operator()(const T_obj& _A_obj, typename type_trait::take _A_a1,typename type_trait::take _A_a2,typename type_trait::take _A_a3,typename type_trait::take _A_a4) const - { return (_A_obj.*func_ptr_)(_A_a1,_A_a2,_A_a3,_A_a4); } - -protected: - function_type func_ptr_; -}; - -/** const_mem_functor5 wraps const methods with 5 argument(s). - * Use the convenience function mem_fun() to create an instance of const_mem_functor5. - * - * The following template arguments are used: - * - @e T_arg1 Argument type used in the definition of operator()(). - * - @e T_arg2 Argument type used in the definition of operator()(). - * - @e T_arg3 Argument type used in the definition of operator()(). - * - @e T_arg4 Argument type used in the definition of operator()(). - * - @e T_arg5 Argument type used in the definition of operator()(). - * - @e T_return The return type of operator()(). - * - @e T_obj The object type. - * - * @ingroup mem_fun - */ -template -class const_mem_functor5 : public functor_base -{ -public: - typedef T_return (T_obj::*function_type)(T_arg1,T_arg2,T_arg3,T_arg4,T_arg5) const; - typedef T_return result_type; - - /// Constructs an invalid functor. - const_mem_functor5() : func_ptr_(0) {} - - /** Constructs a const_mem_functor5 object that wraps the passed method. - * @param _A_func Pointer to method will be invoked from operator()(). - */ - explicit const_mem_functor5(function_type _A_func) : func_ptr_(_A_func) {} - - /** Execute the wrapped method operating on the passed instance. - * @param _A_obj Pointer to instance the method should operate on. - * @param _A_a1 Argument to be passed on to the method. - * @param _A_a2 Argument to be passed on to the method. - * @param _A_a3 Argument to be passed on to the method. - * @param _A_a4 Argument to be passed on to the method. - * @param _A_a5 Argument to be passed on to the method. - * @return The return value of the method invocation. - */ - T_return operator()(const T_obj* _A_obj, typename type_trait::take _A_a1,typename type_trait::take _A_a2,typename type_trait::take _A_a3,typename type_trait::take _A_a4,typename type_trait::take _A_a5) const - { return (_A_obj->*(this->func_ptr_))(_A_a1,_A_a2,_A_a3,_A_a4,_A_a5); } - - /** Execute the wrapped method operating on the passed instance. - * @param _A_obj Reference to instance the method should operate on. - * @param _A_a1 Argument to be passed on to the method. - * @param _A_a2 Argument to be passed on to the method. - * @param _A_a3 Argument to be passed on to the method. - * @param _A_a4 Argument to be passed on to the method. - * @param _A_a5 Argument to be passed on to the method. - * @return The return value of the method invocation. - */ - T_return operator()(const T_obj& _A_obj, typename type_trait::take _A_a1,typename type_trait::take _A_a2,typename type_trait::take _A_a3,typename type_trait::take _A_a4,typename type_trait::take _A_a5) const - { return (_A_obj.*func_ptr_)(_A_a1,_A_a2,_A_a3,_A_a4,_A_a5); } - -protected: - function_type func_ptr_; -}; - -/** const_mem_functor6 wraps const methods with 6 argument(s). - * Use the convenience function mem_fun() to create an instance of const_mem_functor6. - * - * The following template arguments are used: - * - @e T_arg1 Argument type used in the definition of operator()(). - * - @e T_arg2 Argument type used in the definition of operator()(). - * - @e T_arg3 Argument type used in the definition of operator()(). - * - @e T_arg4 Argument type used in the definition of operator()(). - * - @e T_arg5 Argument type used in the definition of operator()(). - * - @e T_arg6 Argument type used in the definition of operator()(). - * - @e T_return The return type of operator()(). - * - @e T_obj The object type. - * - * @ingroup mem_fun - */ -template -class const_mem_functor6 : public functor_base -{ -public: - typedef T_return (T_obj::*function_type)(T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6) const; - typedef T_return result_type; - - /// Constructs an invalid functor. - const_mem_functor6() : func_ptr_(0) {} - - /** Constructs a const_mem_functor6 object that wraps the passed method. - * @param _A_func Pointer to method will be invoked from operator()(). - */ - explicit const_mem_functor6(function_type _A_func) : func_ptr_(_A_func) {} - - /** Execute the wrapped method operating on the passed instance. - * @param _A_obj Pointer to instance the method should operate on. - * @param _A_a1 Argument to be passed on to the method. - * @param _A_a2 Argument to be passed on to the method. - * @param _A_a3 Argument to be passed on to the method. - * @param _A_a4 Argument to be passed on to the method. - * @param _A_a5 Argument to be passed on to the method. - * @param _A_a6 Argument to be passed on to the method. - * @return The return value of the method invocation. - */ - T_return operator()(const T_obj* _A_obj, typename type_trait::take _A_a1,typename type_trait::take _A_a2,typename type_trait::take _A_a3,typename type_trait::take _A_a4,typename type_trait::take _A_a5,typename type_trait::take _A_a6) const - { return (_A_obj->*(this->func_ptr_))(_A_a1,_A_a2,_A_a3,_A_a4,_A_a5,_A_a6); } - - /** Execute the wrapped method operating on the passed instance. - * @param _A_obj Reference to instance the method should operate on. - * @param _A_a1 Argument to be passed on to the method. - * @param _A_a2 Argument to be passed on to the method. - * @param _A_a3 Argument to be passed on to the method. - * @param _A_a4 Argument to be passed on to the method. - * @param _A_a5 Argument to be passed on to the method. - * @param _A_a6 Argument to be passed on to the method. - * @return The return value of the method invocation. - */ - T_return operator()(const T_obj& _A_obj, typename type_trait::take _A_a1,typename type_trait::take _A_a2,typename type_trait::take _A_a3,typename type_trait::take _A_a4,typename type_trait::take _A_a5,typename type_trait::take _A_a6) const - { return (_A_obj.*func_ptr_)(_A_a1,_A_a2,_A_a3,_A_a4,_A_a5,_A_a6); } - -protected: - function_type func_ptr_; -}; - -/** const_mem_functor7 wraps const methods with 7 argument(s). - * Use the convenience function mem_fun() to create an instance of const_mem_functor7. - * - * The following template arguments are used: - * - @e T_arg1 Argument type used in the definition of operator()(). - * - @e T_arg2 Argument type used in the definition of operator()(). - * - @e T_arg3 Argument type used in the definition of operator()(). - * - @e T_arg4 Argument type used in the definition of operator()(). - * - @e T_arg5 Argument type used in the definition of operator()(). - * - @e T_arg6 Argument type used in the definition of operator()(). - * - @e T_arg7 Argument type used in the definition of operator()(). - * - @e T_return The return type of operator()(). - * - @e T_obj The object type. - * - * @ingroup mem_fun - */ -template -class const_mem_functor7 : public functor_base -{ -public: - typedef T_return (T_obj::*function_type)(T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6,T_arg7) const; - typedef T_return result_type; - - /// Constructs an invalid functor. - const_mem_functor7() : func_ptr_(0) {} - - /** Constructs a const_mem_functor7 object that wraps the passed method. - * @param _A_func Pointer to method will be invoked from operator()(). - */ - explicit const_mem_functor7(function_type _A_func) : func_ptr_(_A_func) {} - - /** Execute the wrapped method operating on the passed instance. - * @param _A_obj Pointer to instance the method should operate on. - * @param _A_a1 Argument to be passed on to the method. - * @param _A_a2 Argument to be passed on to the method. - * @param _A_a3 Argument to be passed on to the method. - * @param _A_a4 Argument to be passed on to the method. - * @param _A_a5 Argument to be passed on to the method. - * @param _A_a6 Argument to be passed on to the method. - * @param _A_a7 Argument to be passed on to the method. - * @return The return value of the method invocation. - */ - T_return operator()(const T_obj* _A_obj, typename type_trait::take _A_a1,typename type_trait::take _A_a2,typename type_trait::take _A_a3,typename type_trait::take _A_a4,typename type_trait::take _A_a5,typename type_trait::take _A_a6,typename type_trait::take _A_a7) const - { return (_A_obj->*(this->func_ptr_))(_A_a1,_A_a2,_A_a3,_A_a4,_A_a5,_A_a6,_A_a7); } - - /** Execute the wrapped method operating on the passed instance. - * @param _A_obj Reference to instance the method should operate on. - * @param _A_a1 Argument to be passed on to the method. - * @param _A_a2 Argument to be passed on to the method. - * @param _A_a3 Argument to be passed on to the method. - * @param _A_a4 Argument to be passed on to the method. - * @param _A_a5 Argument to be passed on to the method. - * @param _A_a6 Argument to be passed on to the method. - * @param _A_a7 Argument to be passed on to the method. - * @return The return value of the method invocation. - */ - T_return operator()(const T_obj& _A_obj, typename type_trait::take _A_a1,typename type_trait::take _A_a2,typename type_trait::take _A_a3,typename type_trait::take _A_a4,typename type_trait::take _A_a5,typename type_trait::take _A_a6,typename type_trait::take _A_a7) const - { return (_A_obj.*func_ptr_)(_A_a1,_A_a2,_A_a3,_A_a4,_A_a5,_A_a6,_A_a7); } - -protected: - function_type func_ptr_; -}; - -/** volatile_mem_functor0 wraps volatile methods with 0 argument(s). - * Use the convenience function mem_fun() to create an instance of volatile_mem_functor0. - * - * The following template arguments are used: - * - @e T_return The return type of operator()(). - * - @e T_obj The object type. - * - * @ingroup mem_fun - */ -template -class volatile_mem_functor0 : public functor_base -{ -public: - typedef T_return (T_obj::*function_type)() volatile; - typedef T_return result_type; - - /// Constructs an invalid functor. - volatile_mem_functor0() : func_ptr_(0) {} - - /** Constructs a volatile_mem_functor0 object that wraps the passed method. - * @param _A_func Pointer to method will be invoked from operator()(). - */ - explicit volatile_mem_functor0(function_type _A_func) : func_ptr_(_A_func) {} - - /** Execute the wrapped method operating on the passed instance. - * @param _A_obj Pointer to instance the method should operate on. - * @return The return value of the method invocation. - */ - T_return operator()(T_obj* _A_obj) const - { return (_A_obj->*(this->func_ptr_))(); } - - /** Execute the wrapped method operating on the passed instance. - * @param _A_obj Reference to instance the method should operate on. - * @return The return value of the method invocation. - */ - T_return operator()(T_obj& _A_obj) const - { return (_A_obj.*func_ptr_)(); } - -protected: - function_type func_ptr_; -}; - -/** volatile_mem_functor1 wraps volatile methods with 1 argument(s). - * Use the convenience function mem_fun() to create an instance of volatile_mem_functor1. - * - * The following template arguments are used: - * - @e T_arg1 Argument type used in the definition of operator()(). - * - @e T_return The return type of operator()(). - * - @e T_obj The object type. - * - * @ingroup mem_fun - */ -template -class volatile_mem_functor1 : public functor_base -{ -public: - typedef T_return (T_obj::*function_type)(T_arg1) volatile; - typedef T_return result_type; - - /// Constructs an invalid functor. - volatile_mem_functor1() : func_ptr_(0) {} - - /** Constructs a volatile_mem_functor1 object that wraps the passed method. - * @param _A_func Pointer to method will be invoked from operator()(). - */ - explicit volatile_mem_functor1(function_type _A_func) : func_ptr_(_A_func) {} - - /** Execute the wrapped method operating on the passed instance. - * @param _A_obj Pointer to instance the method should operate on. - * @param _A_a1 Argument to be passed on to the method. - * @return The return value of the method invocation. - */ - T_return operator()(T_obj* _A_obj, typename type_trait::take _A_a1) const - { return (_A_obj->*(this->func_ptr_))(_A_a1); } - - /** Execute the wrapped method operating on the passed instance. - * @param _A_obj Reference to instance the method should operate on. - * @param _A_a1 Argument to be passed on to the method. - * @return The return value of the method invocation. - */ - T_return operator()(T_obj& _A_obj, typename type_trait::take _A_a1) const - { return (_A_obj.*func_ptr_)(_A_a1); } - -protected: - function_type func_ptr_; -}; - -/** volatile_mem_functor2 wraps volatile methods with 2 argument(s). - * Use the convenience function mem_fun() to create an instance of volatile_mem_functor2. - * - * The following template arguments are used: - * - @e T_arg1 Argument type used in the definition of operator()(). - * - @e T_arg2 Argument type used in the definition of operator()(). - * - @e T_return The return type of operator()(). - * - @e T_obj The object type. - * - * @ingroup mem_fun - */ -template -class volatile_mem_functor2 : public functor_base -{ -public: - typedef T_return (T_obj::*function_type)(T_arg1,T_arg2) volatile; - typedef T_return result_type; - - /// Constructs an invalid functor. - volatile_mem_functor2() : func_ptr_(0) {} - - /** Constructs a volatile_mem_functor2 object that wraps the passed method. - * @param _A_func Pointer to method will be invoked from operator()(). - */ - explicit volatile_mem_functor2(function_type _A_func) : func_ptr_(_A_func) {} - - /** Execute the wrapped method operating on the passed instance. - * @param _A_obj Pointer to instance the method should operate on. - * @param _A_a1 Argument to be passed on to the method. - * @param _A_a2 Argument to be passed on to the method. - * @return The return value of the method invocation. - */ - T_return operator()(T_obj* _A_obj, typename type_trait::take _A_a1,typename type_trait::take _A_a2) const - { return (_A_obj->*(this->func_ptr_))(_A_a1,_A_a2); } - - /** Execute the wrapped method operating on the passed instance. - * @param _A_obj Reference to instance the method should operate on. - * @param _A_a1 Argument to be passed on to the method. - * @param _A_a2 Argument to be passed on to the method. - * @return The return value of the method invocation. - */ - T_return operator()(T_obj& _A_obj, typename type_trait::take _A_a1,typename type_trait::take _A_a2) const - { return (_A_obj.*func_ptr_)(_A_a1,_A_a2); } - -protected: - function_type func_ptr_; -}; - -/** volatile_mem_functor3 wraps volatile methods with 3 argument(s). - * Use the convenience function mem_fun() to create an instance of volatile_mem_functor3. - * - * The following template arguments are used: - * - @e T_arg1 Argument type used in the definition of operator()(). - * - @e T_arg2 Argument type used in the definition of operator()(). - * - @e T_arg3 Argument type used in the definition of operator()(). - * - @e T_return The return type of operator()(). - * - @e T_obj The object type. - * - * @ingroup mem_fun - */ -template -class volatile_mem_functor3 : public functor_base -{ -public: - typedef T_return (T_obj::*function_type)(T_arg1,T_arg2,T_arg3) volatile; - typedef T_return result_type; - - /// Constructs an invalid functor. - volatile_mem_functor3() : func_ptr_(0) {} - - /** Constructs a volatile_mem_functor3 object that wraps the passed method. - * @param _A_func Pointer to method will be invoked from operator()(). - */ - explicit volatile_mem_functor3(function_type _A_func) : func_ptr_(_A_func) {} - - /** Execute the wrapped method operating on the passed instance. - * @param _A_obj Pointer to instance the method should operate on. - * @param _A_a1 Argument to be passed on to the method. - * @param _A_a2 Argument to be passed on to the method. - * @param _A_a3 Argument to be passed on to the method. - * @return The return value of the method invocation. - */ - T_return operator()(T_obj* _A_obj, typename type_trait::take _A_a1,typename type_trait::take _A_a2,typename type_trait::take _A_a3) const - { return (_A_obj->*(this->func_ptr_))(_A_a1,_A_a2,_A_a3); } - - /** Execute the wrapped method operating on the passed instance. - * @param _A_obj Reference to instance the method should operate on. - * @param _A_a1 Argument to be passed on to the method. - * @param _A_a2 Argument to be passed on to the method. - * @param _A_a3 Argument to be passed on to the method. - * @return The return value of the method invocation. - */ - T_return operator()(T_obj& _A_obj, typename type_trait::take _A_a1,typename type_trait::take _A_a2,typename type_trait::take _A_a3) const - { return (_A_obj.*func_ptr_)(_A_a1,_A_a2,_A_a3); } - -protected: - function_type func_ptr_; -}; - -/** volatile_mem_functor4 wraps volatile methods with 4 argument(s). - * Use the convenience function mem_fun() to create an instance of volatile_mem_functor4. - * - * The following template arguments are used: - * - @e T_arg1 Argument type used in the definition of operator()(). - * - @e T_arg2 Argument type used in the definition of operator()(). - * - @e T_arg3 Argument type used in the definition of operator()(). - * - @e T_arg4 Argument type used in the definition of operator()(). - * - @e T_return The return type of operator()(). - * - @e T_obj The object type. - * - * @ingroup mem_fun - */ -template -class volatile_mem_functor4 : public functor_base -{ -public: - typedef T_return (T_obj::*function_type)(T_arg1,T_arg2,T_arg3,T_arg4) volatile; - typedef T_return result_type; - - /// Constructs an invalid functor. - volatile_mem_functor4() : func_ptr_(0) {} - - /** Constructs a volatile_mem_functor4 object that wraps the passed method. - * @param _A_func Pointer to method will be invoked from operator()(). - */ - explicit volatile_mem_functor4(function_type _A_func) : func_ptr_(_A_func) {} - - /** Execute the wrapped method operating on the passed instance. - * @param _A_obj Pointer to instance the method should operate on. - * @param _A_a1 Argument to be passed on to the method. - * @param _A_a2 Argument to be passed on to the method. - * @param _A_a3 Argument to be passed on to the method. - * @param _A_a4 Argument to be passed on to the method. - * @return The return value of the method invocation. - */ - T_return operator()(T_obj* _A_obj, typename type_trait::take _A_a1,typename type_trait::take _A_a2,typename type_trait::take _A_a3,typename type_trait::take _A_a4) const - { return (_A_obj->*(this->func_ptr_))(_A_a1,_A_a2,_A_a3,_A_a4); } - - /** Execute the wrapped method operating on the passed instance. - * @param _A_obj Reference to instance the method should operate on. - * @param _A_a1 Argument to be passed on to the method. - * @param _A_a2 Argument to be passed on to the method. - * @param _A_a3 Argument to be passed on to the method. - * @param _A_a4 Argument to be passed on to the method. - * @return The return value of the method invocation. - */ - T_return operator()(T_obj& _A_obj, typename type_trait::take _A_a1,typename type_trait::take _A_a2,typename type_trait::take _A_a3,typename type_trait::take _A_a4) const - { return (_A_obj.*func_ptr_)(_A_a1,_A_a2,_A_a3,_A_a4); } - -protected: - function_type func_ptr_; -}; - -/** volatile_mem_functor5 wraps volatile methods with 5 argument(s). - * Use the convenience function mem_fun() to create an instance of volatile_mem_functor5. - * - * The following template arguments are used: - * - @e T_arg1 Argument type used in the definition of operator()(). - * - @e T_arg2 Argument type used in the definition of operator()(). - * - @e T_arg3 Argument type used in the definition of operator()(). - * - @e T_arg4 Argument type used in the definition of operator()(). - * - @e T_arg5 Argument type used in the definition of operator()(). - * - @e T_return The return type of operator()(). - * - @e T_obj The object type. - * - * @ingroup mem_fun - */ -template -class volatile_mem_functor5 : public functor_base -{ -public: - typedef T_return (T_obj::*function_type)(T_arg1,T_arg2,T_arg3,T_arg4,T_arg5) volatile; - typedef T_return result_type; - - /// Constructs an invalid functor. - volatile_mem_functor5() : func_ptr_(0) {} - - /** Constructs a volatile_mem_functor5 object that wraps the passed method. - * @param _A_func Pointer to method will be invoked from operator()(). - */ - explicit volatile_mem_functor5(function_type _A_func) : func_ptr_(_A_func) {} - - /** Execute the wrapped method operating on the passed instance. - * @param _A_obj Pointer to instance the method should operate on. - * @param _A_a1 Argument to be passed on to the method. - * @param _A_a2 Argument to be passed on to the method. - * @param _A_a3 Argument to be passed on to the method. - * @param _A_a4 Argument to be passed on to the method. - * @param _A_a5 Argument to be passed on to the method. - * @return The return value of the method invocation. - */ - T_return operator()(T_obj* _A_obj, typename type_trait::take _A_a1,typename type_trait::take _A_a2,typename type_trait::take _A_a3,typename type_trait::take _A_a4,typename type_trait::take _A_a5) const - { return (_A_obj->*(this->func_ptr_))(_A_a1,_A_a2,_A_a3,_A_a4,_A_a5); } - - /** Execute the wrapped method operating on the passed instance. - * @param _A_obj Reference to instance the method should operate on. - * @param _A_a1 Argument to be passed on to the method. - * @param _A_a2 Argument to be passed on to the method. - * @param _A_a3 Argument to be passed on to the method. - * @param _A_a4 Argument to be passed on to the method. - * @param _A_a5 Argument to be passed on to the method. - * @return The return value of the method invocation. - */ - T_return operator()(T_obj& _A_obj, typename type_trait::take _A_a1,typename type_trait::take _A_a2,typename type_trait::take _A_a3,typename type_trait::take _A_a4,typename type_trait::take _A_a5) const - { return (_A_obj.*func_ptr_)(_A_a1,_A_a2,_A_a3,_A_a4,_A_a5); } - -protected: - function_type func_ptr_; -}; - -/** volatile_mem_functor6 wraps volatile methods with 6 argument(s). - * Use the convenience function mem_fun() to create an instance of volatile_mem_functor6. - * - * The following template arguments are used: - * - @e T_arg1 Argument type used in the definition of operator()(). - * - @e T_arg2 Argument type used in the definition of operator()(). - * - @e T_arg3 Argument type used in the definition of operator()(). - * - @e T_arg4 Argument type used in the definition of operator()(). - * - @e T_arg5 Argument type used in the definition of operator()(). - * - @e T_arg6 Argument type used in the definition of operator()(). - * - @e T_return The return type of operator()(). - * - @e T_obj The object type. - * - * @ingroup mem_fun - */ -template -class volatile_mem_functor6 : public functor_base -{ -public: - typedef T_return (T_obj::*function_type)(T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6) volatile; - typedef T_return result_type; - - /// Constructs an invalid functor. - volatile_mem_functor6() : func_ptr_(0) {} - - /** Constructs a volatile_mem_functor6 object that wraps the passed method. - * @param _A_func Pointer to method will be invoked from operator()(). - */ - explicit volatile_mem_functor6(function_type _A_func) : func_ptr_(_A_func) {} - - /** Execute the wrapped method operating on the passed instance. - * @param _A_obj Pointer to instance the method should operate on. - * @param _A_a1 Argument to be passed on to the method. - * @param _A_a2 Argument to be passed on to the method. - * @param _A_a3 Argument to be passed on to the method. - * @param _A_a4 Argument to be passed on to the method. - * @param _A_a5 Argument to be passed on to the method. - * @param _A_a6 Argument to be passed on to the method. - * @return The return value of the method invocation. - */ - T_return operator()(T_obj* _A_obj, typename type_trait::take _A_a1,typename type_trait::take _A_a2,typename type_trait::take _A_a3,typename type_trait::take _A_a4,typename type_trait::take _A_a5,typename type_trait::take _A_a6) const - { return (_A_obj->*(this->func_ptr_))(_A_a1,_A_a2,_A_a3,_A_a4,_A_a5,_A_a6); } - - /** Execute the wrapped method operating on the passed instance. - * @param _A_obj Reference to instance the method should operate on. - * @param _A_a1 Argument to be passed on to the method. - * @param _A_a2 Argument to be passed on to the method. - * @param _A_a3 Argument to be passed on to the method. - * @param _A_a4 Argument to be passed on to the method. - * @param _A_a5 Argument to be passed on to the method. - * @param _A_a6 Argument to be passed on to the method. - * @return The return value of the method invocation. - */ - T_return operator()(T_obj& _A_obj, typename type_trait::take _A_a1,typename type_trait::take _A_a2,typename type_trait::take _A_a3,typename type_trait::take _A_a4,typename type_trait::take _A_a5,typename type_trait::take _A_a6) const - { return (_A_obj.*func_ptr_)(_A_a1,_A_a2,_A_a3,_A_a4,_A_a5,_A_a6); } - -protected: - function_type func_ptr_; -}; - -/** volatile_mem_functor7 wraps volatile methods with 7 argument(s). - * Use the convenience function mem_fun() to create an instance of volatile_mem_functor7. - * - * The following template arguments are used: - * - @e T_arg1 Argument type used in the definition of operator()(). - * - @e T_arg2 Argument type used in the definition of operator()(). - * - @e T_arg3 Argument type used in the definition of operator()(). - * - @e T_arg4 Argument type used in the definition of operator()(). - * - @e T_arg5 Argument type used in the definition of operator()(). - * - @e T_arg6 Argument type used in the definition of operator()(). - * - @e T_arg7 Argument type used in the definition of operator()(). - * - @e T_return The return type of operator()(). - * - @e T_obj The object type. - * - * @ingroup mem_fun - */ -template -class volatile_mem_functor7 : public functor_base -{ -public: - typedef T_return (T_obj::*function_type)(T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6,T_arg7) volatile; - typedef T_return result_type; - - /// Constructs an invalid functor. - volatile_mem_functor7() : func_ptr_(0) {} - - /** Constructs a volatile_mem_functor7 object that wraps the passed method. - * @param _A_func Pointer to method will be invoked from operator()(). - */ - explicit volatile_mem_functor7(function_type _A_func) : func_ptr_(_A_func) {} - - /** Execute the wrapped method operating on the passed instance. - * @param _A_obj Pointer to instance the method should operate on. - * @param _A_a1 Argument to be passed on to the method. - * @param _A_a2 Argument to be passed on to the method. - * @param _A_a3 Argument to be passed on to the method. - * @param _A_a4 Argument to be passed on to the method. - * @param _A_a5 Argument to be passed on to the method. - * @param _A_a6 Argument to be passed on to the method. - * @param _A_a7 Argument to be passed on to the method. - * @return The return value of the method invocation. - */ - T_return operator()(T_obj* _A_obj, typename type_trait::take _A_a1,typename type_trait::take _A_a2,typename type_trait::take _A_a3,typename type_trait::take _A_a4,typename type_trait::take _A_a5,typename type_trait::take _A_a6,typename type_trait::take _A_a7) const - { return (_A_obj->*(this->func_ptr_))(_A_a1,_A_a2,_A_a3,_A_a4,_A_a5,_A_a6,_A_a7); } - - /** Execute the wrapped method operating on the passed instance. - * @param _A_obj Reference to instance the method should operate on. - * @param _A_a1 Argument to be passed on to the method. - * @param _A_a2 Argument to be passed on to the method. - * @param _A_a3 Argument to be passed on to the method. - * @param _A_a4 Argument to be passed on to the method. - * @param _A_a5 Argument to be passed on to the method. - * @param _A_a6 Argument to be passed on to the method. - * @param _A_a7 Argument to be passed on to the method. - * @return The return value of the method invocation. - */ - T_return operator()(T_obj& _A_obj, typename type_trait::take _A_a1,typename type_trait::take _A_a2,typename type_trait::take _A_a3,typename type_trait::take _A_a4,typename type_trait::take _A_a5,typename type_trait::take _A_a6,typename type_trait::take _A_a7) const - { return (_A_obj.*func_ptr_)(_A_a1,_A_a2,_A_a3,_A_a4,_A_a5,_A_a6,_A_a7); } - -protected: - function_type func_ptr_; -}; - -/** const_volatile_mem_functor0 wraps const volatile methods with 0 argument(s). - * Use the convenience function mem_fun() to create an instance of const_volatile_mem_functor0. - * - * The following template arguments are used: - * - @e T_return The return type of operator()(). - * - @e T_obj The object type. - * - * @ingroup mem_fun - */ -template -class const_volatile_mem_functor0 : public functor_base -{ -public: - typedef T_return (T_obj::*function_type)() const volatile; - typedef T_return result_type; - - /// Constructs an invalid functor. - const_volatile_mem_functor0() : func_ptr_(0) {} - - /** Constructs a const_volatile_mem_functor0 object that wraps the passed method. - * @param _A_func Pointer to method will be invoked from operator()(). - */ - explicit const_volatile_mem_functor0(function_type _A_func) : func_ptr_(_A_func) {} - - /** Execute the wrapped method operating on the passed instance. - * @param _A_obj Pointer to instance the method should operate on. - * @return The return value of the method invocation. - */ - T_return operator()(const T_obj* _A_obj) const - { return (_A_obj->*(this->func_ptr_))(); } - - /** Execute the wrapped method operating on the passed instance. - * @param _A_obj Reference to instance the method should operate on. - * @return The return value of the method invocation. - */ - T_return operator()(const T_obj& _A_obj) const - { return (_A_obj.*func_ptr_)(); } - -protected: - function_type func_ptr_; -}; - -/** const_volatile_mem_functor1 wraps const volatile methods with 1 argument(s). - * Use the convenience function mem_fun() to create an instance of const_volatile_mem_functor1. - * - * The following template arguments are used: - * - @e T_arg1 Argument type used in the definition of operator()(). - * - @e T_return The return type of operator()(). - * - @e T_obj The object type. - * - * @ingroup mem_fun - */ -template -class const_volatile_mem_functor1 : public functor_base -{ -public: - typedef T_return (T_obj::*function_type)(T_arg1) const volatile; - typedef T_return result_type; - - /// Constructs an invalid functor. - const_volatile_mem_functor1() : func_ptr_(0) {} - - /** Constructs a const_volatile_mem_functor1 object that wraps the passed method. - * @param _A_func Pointer to method will be invoked from operator()(). - */ - explicit const_volatile_mem_functor1(function_type _A_func) : func_ptr_(_A_func) {} - - /** Execute the wrapped method operating on the passed instance. - * @param _A_obj Pointer to instance the method should operate on. - * @param _A_a1 Argument to be passed on to the method. - * @return The return value of the method invocation. - */ - T_return operator()(const T_obj* _A_obj, typename type_trait::take _A_a1) const - { return (_A_obj->*(this->func_ptr_))(_A_a1); } - - /** Execute the wrapped method operating on the passed instance. - * @param _A_obj Reference to instance the method should operate on. - * @param _A_a1 Argument to be passed on to the method. - * @return The return value of the method invocation. - */ - T_return operator()(const T_obj& _A_obj, typename type_trait::take _A_a1) const - { return (_A_obj.*func_ptr_)(_A_a1); } - -protected: - function_type func_ptr_; -}; - -/** const_volatile_mem_functor2 wraps const volatile methods with 2 argument(s). - * Use the convenience function mem_fun() to create an instance of const_volatile_mem_functor2. - * - * The following template arguments are used: - * - @e T_arg1 Argument type used in the definition of operator()(). - * - @e T_arg2 Argument type used in the definition of operator()(). - * - @e T_return The return type of operator()(). - * - @e T_obj The object type. - * - * @ingroup mem_fun - */ -template -class const_volatile_mem_functor2 : public functor_base -{ -public: - typedef T_return (T_obj::*function_type)(T_arg1,T_arg2) const volatile; - typedef T_return result_type; - - /// Constructs an invalid functor. - const_volatile_mem_functor2() : func_ptr_(0) {} - - /** Constructs a const_volatile_mem_functor2 object that wraps the passed method. - * @param _A_func Pointer to method will be invoked from operator()(). - */ - explicit const_volatile_mem_functor2(function_type _A_func) : func_ptr_(_A_func) {} - - /** Execute the wrapped method operating on the passed instance. - * @param _A_obj Pointer to instance the method should operate on. - * @param _A_a1 Argument to be passed on to the method. - * @param _A_a2 Argument to be passed on to the method. - * @return The return value of the method invocation. - */ - T_return operator()(const T_obj* _A_obj, typename type_trait::take _A_a1,typename type_trait::take _A_a2) const - { return (_A_obj->*(this->func_ptr_))(_A_a1,_A_a2); } - - /** Execute the wrapped method operating on the passed instance. - * @param _A_obj Reference to instance the method should operate on. - * @param _A_a1 Argument to be passed on to the method. - * @param _A_a2 Argument to be passed on to the method. - * @return The return value of the method invocation. - */ - T_return operator()(const T_obj& _A_obj, typename type_trait::take _A_a1,typename type_trait::take _A_a2) const - { return (_A_obj.*func_ptr_)(_A_a1,_A_a2); } - -protected: - function_type func_ptr_; -}; - -/** const_volatile_mem_functor3 wraps const volatile methods with 3 argument(s). - * Use the convenience function mem_fun() to create an instance of const_volatile_mem_functor3. - * - * The following template arguments are used: - * - @e T_arg1 Argument type used in the definition of operator()(). - * - @e T_arg2 Argument type used in the definition of operator()(). - * - @e T_arg3 Argument type used in the definition of operator()(). - * - @e T_return The return type of operator()(). - * - @e T_obj The object type. - * - * @ingroup mem_fun - */ -template -class const_volatile_mem_functor3 : public functor_base -{ -public: - typedef T_return (T_obj::*function_type)(T_arg1,T_arg2,T_arg3) const volatile; - typedef T_return result_type; - - /// Constructs an invalid functor. - const_volatile_mem_functor3() : func_ptr_(0) {} - - /** Constructs a const_volatile_mem_functor3 object that wraps the passed method. - * @param _A_func Pointer to method will be invoked from operator()(). - */ - explicit const_volatile_mem_functor3(function_type _A_func) : func_ptr_(_A_func) {} - - /** Execute the wrapped method operating on the passed instance. - * @param _A_obj Pointer to instance the method should operate on. - * @param _A_a1 Argument to be passed on to the method. - * @param _A_a2 Argument to be passed on to the method. - * @param _A_a3 Argument to be passed on to the method. - * @return The return value of the method invocation. - */ - T_return operator()(const T_obj* _A_obj, typename type_trait::take _A_a1,typename type_trait::take _A_a2,typename type_trait::take _A_a3) const - { return (_A_obj->*(this->func_ptr_))(_A_a1,_A_a2,_A_a3); } - - /** Execute the wrapped method operating on the passed instance. - * @param _A_obj Reference to instance the method should operate on. - * @param _A_a1 Argument to be passed on to the method. - * @param _A_a2 Argument to be passed on to the method. - * @param _A_a3 Argument to be passed on to the method. - * @return The return value of the method invocation. - */ - T_return operator()(const T_obj& _A_obj, typename type_trait::take _A_a1,typename type_trait::take _A_a2,typename type_trait::take _A_a3) const - { return (_A_obj.*func_ptr_)(_A_a1,_A_a2,_A_a3); } - -protected: - function_type func_ptr_; -}; - -/** const_volatile_mem_functor4 wraps const volatile methods with 4 argument(s). - * Use the convenience function mem_fun() to create an instance of const_volatile_mem_functor4. - * - * The following template arguments are used: - * - @e T_arg1 Argument type used in the definition of operator()(). - * - @e T_arg2 Argument type used in the definition of operator()(). - * - @e T_arg3 Argument type used in the definition of operator()(). - * - @e T_arg4 Argument type used in the definition of operator()(). - * - @e T_return The return type of operator()(). - * - @e T_obj The object type. - * - * @ingroup mem_fun - */ -template -class const_volatile_mem_functor4 : public functor_base -{ -public: - typedef T_return (T_obj::*function_type)(T_arg1,T_arg2,T_arg3,T_arg4) const volatile; - typedef T_return result_type; - - /// Constructs an invalid functor. - const_volatile_mem_functor4() : func_ptr_(0) {} - - /** Constructs a const_volatile_mem_functor4 object that wraps the passed method. - * @param _A_func Pointer to method will be invoked from operator()(). - */ - explicit const_volatile_mem_functor4(function_type _A_func) : func_ptr_(_A_func) {} - - /** Execute the wrapped method operating on the passed instance. - * @param _A_obj Pointer to instance the method should operate on. - * @param _A_a1 Argument to be passed on to the method. - * @param _A_a2 Argument to be passed on to the method. - * @param _A_a3 Argument to be passed on to the method. - * @param _A_a4 Argument to be passed on to the method. - * @return The return value of the method invocation. - */ - T_return operator()(const T_obj* _A_obj, typename type_trait::take _A_a1,typename type_trait::take _A_a2,typename type_trait::take _A_a3,typename type_trait::take _A_a4) const - { return (_A_obj->*(this->func_ptr_))(_A_a1,_A_a2,_A_a3,_A_a4); } - - /** Execute the wrapped method operating on the passed instance. - * @param _A_obj Reference to instance the method should operate on. - * @param _A_a1 Argument to be passed on to the method. - * @param _A_a2 Argument to be passed on to the method. - * @param _A_a3 Argument to be passed on to the method. - * @param _A_a4 Argument to be passed on to the method. - * @return The return value of the method invocation. - */ - T_return operator()(const T_obj& _A_obj, typename type_trait::take _A_a1,typename type_trait::take _A_a2,typename type_trait::take _A_a3,typename type_trait::take _A_a4) const - { return (_A_obj.*func_ptr_)(_A_a1,_A_a2,_A_a3,_A_a4); } - -protected: - function_type func_ptr_; -}; - -/** const_volatile_mem_functor5 wraps const volatile methods with 5 argument(s). - * Use the convenience function mem_fun() to create an instance of const_volatile_mem_functor5. - * - * The following template arguments are used: - * - @e T_arg1 Argument type used in the definition of operator()(). - * - @e T_arg2 Argument type used in the definition of operator()(). - * - @e T_arg3 Argument type used in the definition of operator()(). - * - @e T_arg4 Argument type used in the definition of operator()(). - * - @e T_arg5 Argument type used in the definition of operator()(). - * - @e T_return The return type of operator()(). - * - @e T_obj The object type. - * - * @ingroup mem_fun - */ -template -class const_volatile_mem_functor5 : public functor_base -{ -public: - typedef T_return (T_obj::*function_type)(T_arg1,T_arg2,T_arg3,T_arg4,T_arg5) const volatile; - typedef T_return result_type; - - /// Constructs an invalid functor. - const_volatile_mem_functor5() : func_ptr_(0) {} - - /** Constructs a const_volatile_mem_functor5 object that wraps the passed method. - * @param _A_func Pointer to method will be invoked from operator()(). - */ - explicit const_volatile_mem_functor5(function_type _A_func) : func_ptr_(_A_func) {} - - /** Execute the wrapped method operating on the passed instance. - * @param _A_obj Pointer to instance the method should operate on. - * @param _A_a1 Argument to be passed on to the method. - * @param _A_a2 Argument to be passed on to the method. - * @param _A_a3 Argument to be passed on to the method. - * @param _A_a4 Argument to be passed on to the method. - * @param _A_a5 Argument to be passed on to the method. - * @return The return value of the method invocation. - */ - T_return operator()(const T_obj* _A_obj, typename type_trait::take _A_a1,typename type_trait::take _A_a2,typename type_trait::take _A_a3,typename type_trait::take _A_a4,typename type_trait::take _A_a5) const - { return (_A_obj->*(this->func_ptr_))(_A_a1,_A_a2,_A_a3,_A_a4,_A_a5); } - - /** Execute the wrapped method operating on the passed instance. - * @param _A_obj Reference to instance the method should operate on. - * @param _A_a1 Argument to be passed on to the method. - * @param _A_a2 Argument to be passed on to the method. - * @param _A_a3 Argument to be passed on to the method. - * @param _A_a4 Argument to be passed on to the method. - * @param _A_a5 Argument to be passed on to the method. - * @return The return value of the method invocation. - */ - T_return operator()(const T_obj& _A_obj, typename type_trait::take _A_a1,typename type_trait::take _A_a2,typename type_trait::take _A_a3,typename type_trait::take _A_a4,typename type_trait::take _A_a5) const - { return (_A_obj.*func_ptr_)(_A_a1,_A_a2,_A_a3,_A_a4,_A_a5); } - -protected: - function_type func_ptr_; -}; - -/** const_volatile_mem_functor6 wraps const volatile methods with 6 argument(s). - * Use the convenience function mem_fun() to create an instance of const_volatile_mem_functor6. - * - * The following template arguments are used: - * - @e T_arg1 Argument type used in the definition of operator()(). - * - @e T_arg2 Argument type used in the definition of operator()(). - * - @e T_arg3 Argument type used in the definition of operator()(). - * - @e T_arg4 Argument type used in the definition of operator()(). - * - @e T_arg5 Argument type used in the definition of operator()(). - * - @e T_arg6 Argument type used in the definition of operator()(). - * - @e T_return The return type of operator()(). - * - @e T_obj The object type. - * - * @ingroup mem_fun - */ -template -class const_volatile_mem_functor6 : public functor_base -{ -public: - typedef T_return (T_obj::*function_type)(T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6) const volatile; - typedef T_return result_type; - - /// Constructs an invalid functor. - const_volatile_mem_functor6() : func_ptr_(0) {} - - /** Constructs a const_volatile_mem_functor6 object that wraps the passed method. - * @param _A_func Pointer to method will be invoked from operator()(). - */ - explicit const_volatile_mem_functor6(function_type _A_func) : func_ptr_(_A_func) {} - - /** Execute the wrapped method operating on the passed instance. - * @param _A_obj Pointer to instance the method should operate on. - * @param _A_a1 Argument to be passed on to the method. - * @param _A_a2 Argument to be passed on to the method. - * @param _A_a3 Argument to be passed on to the method. - * @param _A_a4 Argument to be passed on to the method. - * @param _A_a5 Argument to be passed on to the method. - * @param _A_a6 Argument to be passed on to the method. - * @return The return value of the method invocation. - */ - T_return operator()(const T_obj* _A_obj, typename type_trait::take _A_a1,typename type_trait::take _A_a2,typename type_trait::take _A_a3,typename type_trait::take _A_a4,typename type_trait::take _A_a5,typename type_trait::take _A_a6) const - { return (_A_obj->*(this->func_ptr_))(_A_a1,_A_a2,_A_a3,_A_a4,_A_a5,_A_a6); } - - /** Execute the wrapped method operating on the passed instance. - * @param _A_obj Reference to instance the method should operate on. - * @param _A_a1 Argument to be passed on to the method. - * @param _A_a2 Argument to be passed on to the method. - * @param _A_a3 Argument to be passed on to the method. - * @param _A_a4 Argument to be passed on to the method. - * @param _A_a5 Argument to be passed on to the method. - * @param _A_a6 Argument to be passed on to the method. - * @return The return value of the method invocation. - */ - T_return operator()(const T_obj& _A_obj, typename type_trait::take _A_a1,typename type_trait::take _A_a2,typename type_trait::take _A_a3,typename type_trait::take _A_a4,typename type_trait::take _A_a5,typename type_trait::take _A_a6) const - { return (_A_obj.*func_ptr_)(_A_a1,_A_a2,_A_a3,_A_a4,_A_a5,_A_a6); } - -protected: - function_type func_ptr_; -}; - -/** const_volatile_mem_functor7 wraps const volatile methods with 7 argument(s). - * Use the convenience function mem_fun() to create an instance of const_volatile_mem_functor7. - * - * The following template arguments are used: - * - @e T_arg1 Argument type used in the definition of operator()(). - * - @e T_arg2 Argument type used in the definition of operator()(). - * - @e T_arg3 Argument type used in the definition of operator()(). - * - @e T_arg4 Argument type used in the definition of operator()(). - * - @e T_arg5 Argument type used in the definition of operator()(). - * - @e T_arg6 Argument type used in the definition of operator()(). - * - @e T_arg7 Argument type used in the definition of operator()(). - * - @e T_return The return type of operator()(). - * - @e T_obj The object type. - * - * @ingroup mem_fun - */ -template -class const_volatile_mem_functor7 : public functor_base -{ -public: - typedef T_return (T_obj::*function_type)(T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6,T_arg7) const volatile; - typedef T_return result_type; - - /// Constructs an invalid functor. - const_volatile_mem_functor7() : func_ptr_(0) {} - - /** Constructs a const_volatile_mem_functor7 object that wraps the passed method. - * @param _A_func Pointer to method will be invoked from operator()(). - */ - explicit const_volatile_mem_functor7(function_type _A_func) : func_ptr_(_A_func) {} - - /** Execute the wrapped method operating on the passed instance. - * @param _A_obj Pointer to instance the method should operate on. - * @param _A_a1 Argument to be passed on to the method. - * @param _A_a2 Argument to be passed on to the method. - * @param _A_a3 Argument to be passed on to the method. - * @param _A_a4 Argument to be passed on to the method. - * @param _A_a5 Argument to be passed on to the method. - * @param _A_a6 Argument to be passed on to the method. - * @param _A_a7 Argument to be passed on to the method. - * @return The return value of the method invocation. - */ - T_return operator()(const T_obj* _A_obj, typename type_trait::take _A_a1,typename type_trait::take _A_a2,typename type_trait::take _A_a3,typename type_trait::take _A_a4,typename type_trait::take _A_a5,typename type_trait::take _A_a6,typename type_trait::take _A_a7) const - { return (_A_obj->*(this->func_ptr_))(_A_a1,_A_a2,_A_a3,_A_a4,_A_a5,_A_a6,_A_a7); } - - /** Execute the wrapped method operating on the passed instance. - * @param _A_obj Reference to instance the method should operate on. - * @param _A_a1 Argument to be passed on to the method. - * @param _A_a2 Argument to be passed on to the method. - * @param _A_a3 Argument to be passed on to the method. - * @param _A_a4 Argument to be passed on to the method. - * @param _A_a5 Argument to be passed on to the method. - * @param _A_a6 Argument to be passed on to the method. - * @param _A_a7 Argument to be passed on to the method. - * @return The return value of the method invocation. - */ - T_return operator()(const T_obj& _A_obj, typename type_trait::take _A_a1,typename type_trait::take _A_a2,typename type_trait::take _A_a3,typename type_trait::take _A_a4,typename type_trait::take _A_a5,typename type_trait::take _A_a6,typename type_trait::take _A_a7) const - { return (_A_obj.*func_ptr_)(_A_a1,_A_a2,_A_a3,_A_a4,_A_a5,_A_a6,_A_a7); } - -protected: - function_type func_ptr_; -}; - -/** bound_mem_functor0 encapsulates a method with 0 arguments and an object instance. - * Use the convenience function mem_fun() to create an instance of bound_mem_functor0. - * - * The following template arguments are used: - * - @e T_return The return type of operator()(). - * - @e T_obj The object type. - * - * @ingroup mem_fun - */ -template -class bound_mem_functor0 - : public mem_functor0 -{ - typedef mem_functor0 base_type_; -public: - typedef typename base_type_::function_type function_type; - - /** Constructs a bound_mem_functor0 object that wraps the passed method. - * @param _A_obj Pointer to instance the method will operate on. - * @param _A_func Pointer to method will be invoked from operator()(). - */ - bound_mem_functor0( T_obj* _A_obj, function_type _A_func) - : base_type_(_A_func), obj_ptr_(_A_obj) {} - - /** Constructs a bound_mem_functor0 object that wraps the passed method. - * @param _A_obj Reference to instance the method will operate on. - * @param _A_func Pointer to method will be invoked from operator()(). - */ - bound_mem_functor0( T_obj& _A_obj, function_type _A_func) - : base_type_(_A_func), obj_ptr_(&_A_obj) {} - - /** Execute the wrapped method operating on the stored instance. - * @return The return value of the method invocation. - */ - T_return operator()() const - { return (obj_ptr_->*(this->func_ptr_))(); } - -//protected: - /// Pointer to stored object instance. - T_obj *obj_ptr_; -}; - -/** Performs a functor on each of the targets of a functor. - * The function overload for sigc::bound_mem_functor performs a functor - * on the object instance stored in the sigc::bound_mem_functor object. - * - * @ingroup mem_fun - */ -template -void visit_each(const T_action& _A_action, - const bound_mem_functor0& _A_target) -{ - visit_each(_A_action, *_A_target.obj_ptr_); -} - -/** bound_mem_functor1 encapsulates a method with 1 arguments and an object instance. - * Use the convenience function mem_fun() to create an instance of bound_mem_functor1. - * - * The following template arguments are used: - * - @e T_arg1 Argument type used in the definition of operator()(). - * - @e T_return The return type of operator()(). - * - @e T_obj The object type. - * - * @ingroup mem_fun - */ -template -class bound_mem_functor1 - : public mem_functor1 -{ - typedef mem_functor1 base_type_; -public: - typedef typename base_type_::function_type function_type; - - /** Constructs a bound_mem_functor1 object that wraps the passed method. - * @param _A_obj Pointer to instance the method will operate on. - * @param _A_func Pointer to method will be invoked from operator()(). - */ - bound_mem_functor1( T_obj* _A_obj, function_type _A_func) - : base_type_(_A_func), obj_ptr_(_A_obj) {} - - /** Constructs a bound_mem_functor1 object that wraps the passed method. - * @param _A_obj Reference to instance the method will operate on. - * @param _A_func Pointer to method will be invoked from operator()(). - */ - bound_mem_functor1( T_obj& _A_obj, function_type _A_func) - : base_type_(_A_func), obj_ptr_(&_A_obj) {} - - /** Execute the wrapped method operating on the stored instance. - * @param _A_a1 Argument to be passed on to the method. - * @return The return value of the method invocation. - */ - T_return operator()(typename type_trait::take _A_a1) const - { return (obj_ptr_->*(this->func_ptr_))(_A_a1); } - -//protected: - /// Pointer to stored object instance. - T_obj *obj_ptr_; -}; - -/** Performs a functor on each of the targets of a functor. - * The function overload for sigc::bound_mem_functor performs a functor - * on the object instance stored in the sigc::bound_mem_functor object. - * - * @ingroup mem_fun - */ -template -void visit_each(const T_action& _A_action, - const bound_mem_functor1& _A_target) -{ - visit_each(_A_action, *_A_target.obj_ptr_); -} - -/** bound_mem_functor2 encapsulates a method with 2 arguments and an object instance. - * Use the convenience function mem_fun() to create an instance of bound_mem_functor2. - * - * The following template arguments are used: - * - @e T_arg1 Argument type used in the definition of operator()(). - * - @e T_arg2 Argument type used in the definition of operator()(). - * - @e T_return The return type of operator()(). - * - @e T_obj The object type. - * - * @ingroup mem_fun - */ -template -class bound_mem_functor2 - : public mem_functor2 -{ - typedef mem_functor2 base_type_; -public: - typedef typename base_type_::function_type function_type; - - /** Constructs a bound_mem_functor2 object that wraps the passed method. - * @param _A_obj Pointer to instance the method will operate on. - * @param _A_func Pointer to method will be invoked from operator()(). - */ - bound_mem_functor2( T_obj* _A_obj, function_type _A_func) - : base_type_(_A_func), obj_ptr_(_A_obj) {} - - /** Constructs a bound_mem_functor2 object that wraps the passed method. - * @param _A_obj Reference to instance the method will operate on. - * @param _A_func Pointer to method will be invoked from operator()(). - */ - bound_mem_functor2( T_obj& _A_obj, function_type _A_func) - : base_type_(_A_func), obj_ptr_(&_A_obj) {} - - /** Execute the wrapped method operating on the stored instance. - * @param _A_a1 Argument to be passed on to the method. - * @param _A_a2 Argument to be passed on to the method. - * @return The return value of the method invocation. - */ - T_return operator()(typename type_trait::take _A_a1,typename type_trait::take _A_a2) const - { return (obj_ptr_->*(this->func_ptr_))(_A_a1,_A_a2); } - -//protected: - /// Pointer to stored object instance. - T_obj *obj_ptr_; -}; - -/** Performs a functor on each of the targets of a functor. - * The function overload for sigc::bound_mem_functor performs a functor - * on the object instance stored in the sigc::bound_mem_functor object. - * - * @ingroup mem_fun - */ -template -void visit_each(const T_action& _A_action, - const bound_mem_functor2& _A_target) -{ - visit_each(_A_action, *_A_target.obj_ptr_); -} - -/** bound_mem_functor3 encapsulates a method with 3 arguments and an object instance. - * Use the convenience function mem_fun() to create an instance of bound_mem_functor3. - * - * The following template arguments are used: - * - @e T_arg1 Argument type used in the definition of operator()(). - * - @e T_arg2 Argument type used in the definition of operator()(). - * - @e T_arg3 Argument type used in the definition of operator()(). - * - @e T_return The return type of operator()(). - * - @e T_obj The object type. - * - * @ingroup mem_fun - */ -template -class bound_mem_functor3 - : public mem_functor3 -{ - typedef mem_functor3 base_type_; -public: - typedef typename base_type_::function_type function_type; - - /** Constructs a bound_mem_functor3 object that wraps the passed method. - * @param _A_obj Pointer to instance the method will operate on. - * @param _A_func Pointer to method will be invoked from operator()(). - */ - bound_mem_functor3( T_obj* _A_obj, function_type _A_func) - : base_type_(_A_func), obj_ptr_(_A_obj) {} - - /** Constructs a bound_mem_functor3 object that wraps the passed method. - * @param _A_obj Reference to instance the method will operate on. - * @param _A_func Pointer to method will be invoked from operator()(). - */ - bound_mem_functor3( T_obj& _A_obj, function_type _A_func) - : base_type_(_A_func), obj_ptr_(&_A_obj) {} - - /** Execute the wrapped method operating on the stored instance. - * @param _A_a1 Argument to be passed on to the method. - * @param _A_a2 Argument to be passed on to the method. - * @param _A_a3 Argument to be passed on to the method. - * @return The return value of the method invocation. - */ - T_return operator()(typename type_trait::take _A_a1,typename type_trait::take _A_a2,typename type_trait::take _A_a3) const - { return (obj_ptr_->*(this->func_ptr_))(_A_a1,_A_a2,_A_a3); } - -//protected: - /// Pointer to stored object instance. - T_obj *obj_ptr_; -}; - -/** Performs a functor on each of the targets of a functor. - * The function overload for sigc::bound_mem_functor performs a functor - * on the object instance stored in the sigc::bound_mem_functor object. - * - * @ingroup mem_fun - */ -template -void visit_each(const T_action& _A_action, - const bound_mem_functor3& _A_target) -{ - visit_each(_A_action, *_A_target.obj_ptr_); -} - -/** bound_mem_functor4 encapsulates a method with 4 arguments and an object instance. - * Use the convenience function mem_fun() to create an instance of bound_mem_functor4. - * - * The following template arguments are used: - * - @e T_arg1 Argument type used in the definition of operator()(). - * - @e T_arg2 Argument type used in the definition of operator()(). - * - @e T_arg3 Argument type used in the definition of operator()(). - * - @e T_arg4 Argument type used in the definition of operator()(). - * - @e T_return The return type of operator()(). - * - @e T_obj The object type. - * - * @ingroup mem_fun - */ -template -class bound_mem_functor4 - : public mem_functor4 -{ - typedef mem_functor4 base_type_; -public: - typedef typename base_type_::function_type function_type; - - /** Constructs a bound_mem_functor4 object that wraps the passed method. - * @param _A_obj Pointer to instance the method will operate on. - * @param _A_func Pointer to method will be invoked from operator()(). - */ - bound_mem_functor4( T_obj* _A_obj, function_type _A_func) - : base_type_(_A_func), obj_ptr_(_A_obj) {} - - /** Constructs a bound_mem_functor4 object that wraps the passed method. - * @param _A_obj Reference to instance the method will operate on. - * @param _A_func Pointer to method will be invoked from operator()(). - */ - bound_mem_functor4( T_obj& _A_obj, function_type _A_func) - : base_type_(_A_func), obj_ptr_(&_A_obj) {} - - /** Execute the wrapped method operating on the stored instance. - * @param _A_a1 Argument to be passed on to the method. - * @param _A_a2 Argument to be passed on to the method. - * @param _A_a3 Argument to be passed on to the method. - * @param _A_a4 Argument to be passed on to the method. - * @return The return value of the method invocation. - */ - T_return operator()(typename type_trait::take _A_a1,typename type_trait::take _A_a2,typename type_trait::take _A_a3,typename type_trait::take _A_a4) const - { return (obj_ptr_->*(this->func_ptr_))(_A_a1,_A_a2,_A_a3,_A_a4); } - -//protected: - /// Pointer to stored object instance. - T_obj *obj_ptr_; -}; - -/** Performs a functor on each of the targets of a functor. - * The function overload for sigc::bound_mem_functor performs a functor - * on the object instance stored in the sigc::bound_mem_functor object. - * - * @ingroup mem_fun - */ -template -void visit_each(const T_action& _A_action, - const bound_mem_functor4& _A_target) -{ - visit_each(_A_action, *_A_target.obj_ptr_); -} - -/** bound_mem_functor5 encapsulates a method with 5 arguments and an object instance. - * Use the convenience function mem_fun() to create an instance of bound_mem_functor5. - * - * The following template arguments are used: - * - @e T_arg1 Argument type used in the definition of operator()(). - * - @e T_arg2 Argument type used in the definition of operator()(). - * - @e T_arg3 Argument type used in the definition of operator()(). - * - @e T_arg4 Argument type used in the definition of operator()(). - * - @e T_arg5 Argument type used in the definition of operator()(). - * - @e T_return The return type of operator()(). - * - @e T_obj The object type. - * - * @ingroup mem_fun - */ -template -class bound_mem_functor5 - : public mem_functor5 -{ - typedef mem_functor5 base_type_; -public: - typedef typename base_type_::function_type function_type; - - /** Constructs a bound_mem_functor5 object that wraps the passed method. - * @param _A_obj Pointer to instance the method will operate on. - * @param _A_func Pointer to method will be invoked from operator()(). - */ - bound_mem_functor5( T_obj* _A_obj, function_type _A_func) - : base_type_(_A_func), obj_ptr_(_A_obj) {} - - /** Constructs a bound_mem_functor5 object that wraps the passed method. - * @param _A_obj Reference to instance the method will operate on. - * @param _A_func Pointer to method will be invoked from operator()(). - */ - bound_mem_functor5( T_obj& _A_obj, function_type _A_func) - : base_type_(_A_func), obj_ptr_(&_A_obj) {} - - /** Execute the wrapped method operating on the stored instance. - * @param _A_a1 Argument to be passed on to the method. - * @param _A_a2 Argument to be passed on to the method. - * @param _A_a3 Argument to be passed on to the method. - * @param _A_a4 Argument to be passed on to the method. - * @param _A_a5 Argument to be passed on to the method. - * @return The return value of the method invocation. - */ - T_return operator()(typename type_trait::take _A_a1,typename type_trait::take _A_a2,typename type_trait::take _A_a3,typename type_trait::take _A_a4,typename type_trait::take _A_a5) const - { return (obj_ptr_->*(this->func_ptr_))(_A_a1,_A_a2,_A_a3,_A_a4,_A_a5); } - -//protected: - /// Pointer to stored object instance. - T_obj *obj_ptr_; -}; - -/** Performs a functor on each of the targets of a functor. - * The function overload for sigc::bound_mem_functor performs a functor - * on the object instance stored in the sigc::bound_mem_functor object. - * - * @ingroup mem_fun - */ -template -void visit_each(const T_action& _A_action, - const bound_mem_functor5& _A_target) -{ - visit_each(_A_action, *_A_target.obj_ptr_); -} - -/** bound_mem_functor6 encapsulates a method with 6 arguments and an object instance. - * Use the convenience function mem_fun() to create an instance of bound_mem_functor6. - * - * The following template arguments are used: - * - @e T_arg1 Argument type used in the definition of operator()(). - * - @e T_arg2 Argument type used in the definition of operator()(). - * - @e T_arg3 Argument type used in the definition of operator()(). - * - @e T_arg4 Argument type used in the definition of operator()(). - * - @e T_arg5 Argument type used in the definition of operator()(). - * - @e T_arg6 Argument type used in the definition of operator()(). - * - @e T_return The return type of operator()(). - * - @e T_obj The object type. - * - * @ingroup mem_fun - */ -template -class bound_mem_functor6 - : public mem_functor6 -{ - typedef mem_functor6 base_type_; -public: - typedef typename base_type_::function_type function_type; - - /** Constructs a bound_mem_functor6 object that wraps the passed method. - * @param _A_obj Pointer to instance the method will operate on. - * @param _A_func Pointer to method will be invoked from operator()(). - */ - bound_mem_functor6( T_obj* _A_obj, function_type _A_func) - : base_type_(_A_func), obj_ptr_(_A_obj) {} - - /** Constructs a bound_mem_functor6 object that wraps the passed method. - * @param _A_obj Reference to instance the method will operate on. - * @param _A_func Pointer to method will be invoked from operator()(). - */ - bound_mem_functor6( T_obj& _A_obj, function_type _A_func) - : base_type_(_A_func), obj_ptr_(&_A_obj) {} - - /** Execute the wrapped method operating on the stored instance. - * @param _A_a1 Argument to be passed on to the method. - * @param _A_a2 Argument to be passed on to the method. - * @param _A_a3 Argument to be passed on to the method. - * @param _A_a4 Argument to be passed on to the method. - * @param _A_a5 Argument to be passed on to the method. - * @param _A_a6 Argument to be passed on to the method. - * @return The return value of the method invocation. - */ - T_return operator()(typename type_trait::take _A_a1,typename type_trait::take _A_a2,typename type_trait::take _A_a3,typename type_trait::take _A_a4,typename type_trait::take _A_a5,typename type_trait::take _A_a6) const - { return (obj_ptr_->*(this->func_ptr_))(_A_a1,_A_a2,_A_a3,_A_a4,_A_a5,_A_a6); } - -//protected: - /// Pointer to stored object instance. - T_obj *obj_ptr_; -}; - -/** Performs a functor on each of the targets of a functor. - * The function overload for sigc::bound_mem_functor performs a functor - * on the object instance stored in the sigc::bound_mem_functor object. - * - * @ingroup mem_fun - */ -template -void visit_each(const T_action& _A_action, - const bound_mem_functor6& _A_target) -{ - visit_each(_A_action, *_A_target.obj_ptr_); -} - -/** bound_mem_functor7 encapsulates a method with 7 arguments and an object instance. - * Use the convenience function mem_fun() to create an instance of bound_mem_functor7. - * - * The following template arguments are used: - * - @e T_arg1 Argument type used in the definition of operator()(). - * - @e T_arg2 Argument type used in the definition of operator()(). - * - @e T_arg3 Argument type used in the definition of operator()(). - * - @e T_arg4 Argument type used in the definition of operator()(). - * - @e T_arg5 Argument type used in the definition of operator()(). - * - @e T_arg6 Argument type used in the definition of operator()(). - * - @e T_arg7 Argument type used in the definition of operator()(). - * - @e T_return The return type of operator()(). - * - @e T_obj The object type. - * - * @ingroup mem_fun - */ -template -class bound_mem_functor7 - : public mem_functor7 -{ - typedef mem_functor7 base_type_; -public: - typedef typename base_type_::function_type function_type; - - /** Constructs a bound_mem_functor7 object that wraps the passed method. - * @param _A_obj Pointer to instance the method will operate on. - * @param _A_func Pointer to method will be invoked from operator()(). - */ - bound_mem_functor7( T_obj* _A_obj, function_type _A_func) - : base_type_(_A_func), obj_ptr_(_A_obj) {} - - /** Constructs a bound_mem_functor7 object that wraps the passed method. - * @param _A_obj Reference to instance the method will operate on. - * @param _A_func Pointer to method will be invoked from operator()(). - */ - bound_mem_functor7( T_obj& _A_obj, function_type _A_func) - : base_type_(_A_func), obj_ptr_(&_A_obj) {} - - /** Execute the wrapped method operating on the stored instance. - * @param _A_a1 Argument to be passed on to the method. - * @param _A_a2 Argument to be passed on to the method. - * @param _A_a3 Argument to be passed on to the method. - * @param _A_a4 Argument to be passed on to the method. - * @param _A_a5 Argument to be passed on to the method. - * @param _A_a6 Argument to be passed on to the method. - * @param _A_a7 Argument to be passed on to the method. - * @return The return value of the method invocation. - */ - T_return operator()(typename type_trait::take _A_a1,typename type_trait::take _A_a2,typename type_trait::take _A_a3,typename type_trait::take _A_a4,typename type_trait::take _A_a5,typename type_trait::take _A_a6,typename type_trait::take _A_a7) const - { return (obj_ptr_->*(this->func_ptr_))(_A_a1,_A_a2,_A_a3,_A_a4,_A_a5,_A_a6,_A_a7); } - -//protected: - /// Pointer to stored object instance. - T_obj *obj_ptr_; -}; - -/** Performs a functor on each of the targets of a functor. - * The function overload for sigc::bound_mem_functor performs a functor - * on the object instance stored in the sigc::bound_mem_functor object. - * - * @ingroup mem_fun - */ -template -void visit_each(const T_action& _A_action, - const bound_mem_functor7& _A_target) -{ - visit_each(_A_action, *_A_target.obj_ptr_); -} - -/** bound_const_mem_functor0 encapsulates a const method with 0 arguments and an object instance. - * Use the convenience function mem_fun() to create an instance of bound_const_mem_functor0. - * - * The following template arguments are used: - * - @e T_return The return type of operator()(). - * - @e T_obj The object type. - * - * @ingroup mem_fun - */ -template -class bound_const_mem_functor0 - : public const_mem_functor0 -{ - typedef const_mem_functor0 base_type_; -public: - typedef typename base_type_::function_type function_type; - - /** Constructs a bound_const_mem_functor0 object that wraps the passed method. - * @param _A_obj Pointer to instance the method will operate on. - * @param _A_func Pointer to method will be invoked from operator()(). - */ - bound_const_mem_functor0(const T_obj* _A_obj, function_type _A_func) - : base_type_(_A_func), obj_ptr_(_A_obj) {} - - /** Constructs a bound_const_mem_functor0 object that wraps the passed method. - * @param _A_obj Reference to instance the method will operate on. - * @param _A_func Pointer to method will be invoked from operator()(). - */ - bound_const_mem_functor0(const T_obj& _A_obj, function_type _A_func) - : base_type_(_A_func), obj_ptr_(&_A_obj) {} - - /** Execute the wrapped method operating on the stored instance. - * @return The return value of the method invocation. - */ - T_return operator()() const - { return (obj_ptr_->*(this->func_ptr_))(); } - -//protected: - /// Pointer to stored object instance. - const T_obj *obj_ptr_; -}; - -/** Performs a functor on each of the targets of a functor. - * The function overload for sigc::bound_const_mem_functor performs a functor - * on the object instance stored in the sigc::bound_const_mem_functor object. - * - * @ingroup mem_fun - */ -template -void visit_each(const T_action& _A_action, - const bound_const_mem_functor0& _A_target) -{ - visit_each(_A_action, *_A_target.obj_ptr_); -} - -/** bound_const_mem_functor1 encapsulates a const method with 1 arguments and an object instance. - * Use the convenience function mem_fun() to create an instance of bound_const_mem_functor1. - * - * The following template arguments are used: - * - @e T_arg1 Argument type used in the definition of operator()(). - * - @e T_return The return type of operator()(). - * - @e T_obj The object type. - * - * @ingroup mem_fun - */ -template -class bound_const_mem_functor1 - : public const_mem_functor1 -{ - typedef const_mem_functor1 base_type_; -public: - typedef typename base_type_::function_type function_type; - - /** Constructs a bound_const_mem_functor1 object that wraps the passed method. - * @param _A_obj Pointer to instance the method will operate on. - * @param _A_func Pointer to method will be invoked from operator()(). - */ - bound_const_mem_functor1(const T_obj* _A_obj, function_type _A_func) - : base_type_(_A_func), obj_ptr_(_A_obj) {} - - /** Constructs a bound_const_mem_functor1 object that wraps the passed method. - * @param _A_obj Reference to instance the method will operate on. - * @param _A_func Pointer to method will be invoked from operator()(). - */ - bound_const_mem_functor1(const T_obj& _A_obj, function_type _A_func) - : base_type_(_A_func), obj_ptr_(&_A_obj) {} - - /** Execute the wrapped method operating on the stored instance. - * @param _A_a1 Argument to be passed on to the method. - * @return The return value of the method invocation. - */ - T_return operator()(typename type_trait::take _A_a1) const - { return (obj_ptr_->*(this->func_ptr_))(_A_a1); } - -//protected: - /// Pointer to stored object instance. - const T_obj *obj_ptr_; -}; - -/** Performs a functor on each of the targets of a functor. - * The function overload for sigc::bound_const_mem_functor performs a functor - * on the object instance stored in the sigc::bound_const_mem_functor object. - * - * @ingroup mem_fun - */ -template -void visit_each(const T_action& _A_action, - const bound_const_mem_functor1& _A_target) -{ - visit_each(_A_action, *_A_target.obj_ptr_); -} - -/** bound_const_mem_functor2 encapsulates a const method with 2 arguments and an object instance. - * Use the convenience function mem_fun() to create an instance of bound_const_mem_functor2. - * - * The following template arguments are used: - * - @e T_arg1 Argument type used in the definition of operator()(). - * - @e T_arg2 Argument type used in the definition of operator()(). - * - @e T_return The return type of operator()(). - * - @e T_obj The object type. - * - * @ingroup mem_fun - */ -template -class bound_const_mem_functor2 - : public const_mem_functor2 -{ - typedef const_mem_functor2 base_type_; -public: - typedef typename base_type_::function_type function_type; - - /** Constructs a bound_const_mem_functor2 object that wraps the passed method. - * @param _A_obj Pointer to instance the method will operate on. - * @param _A_func Pointer to method will be invoked from operator()(). - */ - bound_const_mem_functor2(const T_obj* _A_obj, function_type _A_func) - : base_type_(_A_func), obj_ptr_(_A_obj) {} - - /** Constructs a bound_const_mem_functor2 object that wraps the passed method. - * @param _A_obj Reference to instance the method will operate on. - * @param _A_func Pointer to method will be invoked from operator()(). - */ - bound_const_mem_functor2(const T_obj& _A_obj, function_type _A_func) - : base_type_(_A_func), obj_ptr_(&_A_obj) {} - - /** Execute the wrapped method operating on the stored instance. - * @param _A_a1 Argument to be passed on to the method. - * @param _A_a2 Argument to be passed on to the method. - * @return The return value of the method invocation. - */ - T_return operator()(typename type_trait::take _A_a1,typename type_trait::take _A_a2) const - { return (obj_ptr_->*(this->func_ptr_))(_A_a1,_A_a2); } - -//protected: - /// Pointer to stored object instance. - const T_obj *obj_ptr_; -}; - -/** Performs a functor on each of the targets of a functor. - * The function overload for sigc::bound_const_mem_functor performs a functor - * on the object instance stored in the sigc::bound_const_mem_functor object. - * - * @ingroup mem_fun - */ -template -void visit_each(const T_action& _A_action, - const bound_const_mem_functor2& _A_target) -{ - visit_each(_A_action, *_A_target.obj_ptr_); -} - -/** bound_const_mem_functor3 encapsulates a const method with 3 arguments and an object instance. - * Use the convenience function mem_fun() to create an instance of bound_const_mem_functor3. - * - * The following template arguments are used: - * - @e T_arg1 Argument type used in the definition of operator()(). - * - @e T_arg2 Argument type used in the definition of operator()(). - * - @e T_arg3 Argument type used in the definition of operator()(). - * - @e T_return The return type of operator()(). - * - @e T_obj The object type. - * - * @ingroup mem_fun - */ -template -class bound_const_mem_functor3 - : public const_mem_functor3 -{ - typedef const_mem_functor3 base_type_; -public: - typedef typename base_type_::function_type function_type; - - /** Constructs a bound_const_mem_functor3 object that wraps the passed method. - * @param _A_obj Pointer to instance the method will operate on. - * @param _A_func Pointer to method will be invoked from operator()(). - */ - bound_const_mem_functor3(const T_obj* _A_obj, function_type _A_func) - : base_type_(_A_func), obj_ptr_(_A_obj) {} - - /** Constructs a bound_const_mem_functor3 object that wraps the passed method. - * @param _A_obj Reference to instance the method will operate on. - * @param _A_func Pointer to method will be invoked from operator()(). - */ - bound_const_mem_functor3(const T_obj& _A_obj, function_type _A_func) - : base_type_(_A_func), obj_ptr_(&_A_obj) {} - - /** Execute the wrapped method operating on the stored instance. - * @param _A_a1 Argument to be passed on to the method. - * @param _A_a2 Argument to be passed on to the method. - * @param _A_a3 Argument to be passed on to the method. - * @return The return value of the method invocation. - */ - T_return operator()(typename type_trait::take _A_a1,typename type_trait::take _A_a2,typename type_trait::take _A_a3) const - { return (obj_ptr_->*(this->func_ptr_))(_A_a1,_A_a2,_A_a3); } - -//protected: - /// Pointer to stored object instance. - const T_obj *obj_ptr_; -}; - -/** Performs a functor on each of the targets of a functor. - * The function overload for sigc::bound_const_mem_functor performs a functor - * on the object instance stored in the sigc::bound_const_mem_functor object. - * - * @ingroup mem_fun - */ -template -void visit_each(const T_action& _A_action, - const bound_const_mem_functor3& _A_target) -{ - visit_each(_A_action, *_A_target.obj_ptr_); -} - -/** bound_const_mem_functor4 encapsulates a const method with 4 arguments and an object instance. - * Use the convenience function mem_fun() to create an instance of bound_const_mem_functor4. - * - * The following template arguments are used: - * - @e T_arg1 Argument type used in the definition of operator()(). - * - @e T_arg2 Argument type used in the definition of operator()(). - * - @e T_arg3 Argument type used in the definition of operator()(). - * - @e T_arg4 Argument type used in the definition of operator()(). - * - @e T_return The return type of operator()(). - * - @e T_obj The object type. - * - * @ingroup mem_fun - */ -template -class bound_const_mem_functor4 - : public const_mem_functor4 -{ - typedef const_mem_functor4 base_type_; -public: - typedef typename base_type_::function_type function_type; - - /** Constructs a bound_const_mem_functor4 object that wraps the passed method. - * @param _A_obj Pointer to instance the method will operate on. - * @param _A_func Pointer to method will be invoked from operator()(). - */ - bound_const_mem_functor4(const T_obj* _A_obj, function_type _A_func) - : base_type_(_A_func), obj_ptr_(_A_obj) {} - - /** Constructs a bound_const_mem_functor4 object that wraps the passed method. - * @param _A_obj Reference to instance the method will operate on. - * @param _A_func Pointer to method will be invoked from operator()(). - */ - bound_const_mem_functor4(const T_obj& _A_obj, function_type _A_func) - : base_type_(_A_func), obj_ptr_(&_A_obj) {} - - /** Execute the wrapped method operating on the stored instance. - * @param _A_a1 Argument to be passed on to the method. - * @param _A_a2 Argument to be passed on to the method. - * @param _A_a3 Argument to be passed on to the method. - * @param _A_a4 Argument to be passed on to the method. - * @return The return value of the method invocation. - */ - T_return operator()(typename type_trait::take _A_a1,typename type_trait::take _A_a2,typename type_trait::take _A_a3,typename type_trait::take _A_a4) const - { return (obj_ptr_->*(this->func_ptr_))(_A_a1,_A_a2,_A_a3,_A_a4); } - -//protected: - /// Pointer to stored object instance. - const T_obj *obj_ptr_; -}; - -/** Performs a functor on each of the targets of a functor. - * The function overload for sigc::bound_const_mem_functor performs a functor - * on the object instance stored in the sigc::bound_const_mem_functor object. - * - * @ingroup mem_fun - */ -template -void visit_each(const T_action& _A_action, - const bound_const_mem_functor4& _A_target) -{ - visit_each(_A_action, *_A_target.obj_ptr_); -} - -/** bound_const_mem_functor5 encapsulates a const method with 5 arguments and an object instance. - * Use the convenience function mem_fun() to create an instance of bound_const_mem_functor5. - * - * The following template arguments are used: - * - @e T_arg1 Argument type used in the definition of operator()(). - * - @e T_arg2 Argument type used in the definition of operator()(). - * - @e T_arg3 Argument type used in the definition of operator()(). - * - @e T_arg4 Argument type used in the definition of operator()(). - * - @e T_arg5 Argument type used in the definition of operator()(). - * - @e T_return The return type of operator()(). - * - @e T_obj The object type. - * - * @ingroup mem_fun - */ -template -class bound_const_mem_functor5 - : public const_mem_functor5 -{ - typedef const_mem_functor5 base_type_; -public: - typedef typename base_type_::function_type function_type; - - /** Constructs a bound_const_mem_functor5 object that wraps the passed method. - * @param _A_obj Pointer to instance the method will operate on. - * @param _A_func Pointer to method will be invoked from operator()(). - */ - bound_const_mem_functor5(const T_obj* _A_obj, function_type _A_func) - : base_type_(_A_func), obj_ptr_(_A_obj) {} - - /** Constructs a bound_const_mem_functor5 object that wraps the passed method. - * @param _A_obj Reference to instance the method will operate on. - * @param _A_func Pointer to method will be invoked from operator()(). - */ - bound_const_mem_functor5(const T_obj& _A_obj, function_type _A_func) - : base_type_(_A_func), obj_ptr_(&_A_obj) {} - - /** Execute the wrapped method operating on the stored instance. - * @param _A_a1 Argument to be passed on to the method. - * @param _A_a2 Argument to be passed on to the method. - * @param _A_a3 Argument to be passed on to the method. - * @param _A_a4 Argument to be passed on to the method. - * @param _A_a5 Argument to be passed on to the method. - * @return The return value of the method invocation. - */ - T_return operator()(typename type_trait::take _A_a1,typename type_trait::take _A_a2,typename type_trait::take _A_a3,typename type_trait::take _A_a4,typename type_trait::take _A_a5) const - { return (obj_ptr_->*(this->func_ptr_))(_A_a1,_A_a2,_A_a3,_A_a4,_A_a5); } - -//protected: - /// Pointer to stored object instance. - const T_obj *obj_ptr_; -}; - -/** Performs a functor on each of the targets of a functor. - * The function overload for sigc::bound_const_mem_functor performs a functor - * on the object instance stored in the sigc::bound_const_mem_functor object. - * - * @ingroup mem_fun - */ -template -void visit_each(const T_action& _A_action, - const bound_const_mem_functor5& _A_target) -{ - visit_each(_A_action, *_A_target.obj_ptr_); -} - -/** bound_const_mem_functor6 encapsulates a const method with 6 arguments and an object instance. - * Use the convenience function mem_fun() to create an instance of bound_const_mem_functor6. - * - * The following template arguments are used: - * - @e T_arg1 Argument type used in the definition of operator()(). - * - @e T_arg2 Argument type used in the definition of operator()(). - * - @e T_arg3 Argument type used in the definition of operator()(). - * - @e T_arg4 Argument type used in the definition of operator()(). - * - @e T_arg5 Argument type used in the definition of operator()(). - * - @e T_arg6 Argument type used in the definition of operator()(). - * - @e T_return The return type of operator()(). - * - @e T_obj The object type. - * - * @ingroup mem_fun - */ -template -class bound_const_mem_functor6 - : public const_mem_functor6 -{ - typedef const_mem_functor6 base_type_; -public: - typedef typename base_type_::function_type function_type; - - /** Constructs a bound_const_mem_functor6 object that wraps the passed method. - * @param _A_obj Pointer to instance the method will operate on. - * @param _A_func Pointer to method will be invoked from operator()(). - */ - bound_const_mem_functor6(const T_obj* _A_obj, function_type _A_func) - : base_type_(_A_func), obj_ptr_(_A_obj) {} - - /** Constructs a bound_const_mem_functor6 object that wraps the passed method. - * @param _A_obj Reference to instance the method will operate on. - * @param _A_func Pointer to method will be invoked from operator()(). - */ - bound_const_mem_functor6(const T_obj& _A_obj, function_type _A_func) - : base_type_(_A_func), obj_ptr_(&_A_obj) {} - - /** Execute the wrapped method operating on the stored instance. - * @param _A_a1 Argument to be passed on to the method. - * @param _A_a2 Argument to be passed on to the method. - * @param _A_a3 Argument to be passed on to the method. - * @param _A_a4 Argument to be passed on to the method. - * @param _A_a5 Argument to be passed on to the method. - * @param _A_a6 Argument to be passed on to the method. - * @return The return value of the method invocation. - */ - T_return operator()(typename type_trait::take _A_a1,typename type_trait::take _A_a2,typename type_trait::take _A_a3,typename type_trait::take _A_a4,typename type_trait::take _A_a5,typename type_trait::take _A_a6) const - { return (obj_ptr_->*(this->func_ptr_))(_A_a1,_A_a2,_A_a3,_A_a4,_A_a5,_A_a6); } - -//protected: - /// Pointer to stored object instance. - const T_obj *obj_ptr_; -}; - -/** Performs a functor on each of the targets of a functor. - * The function overload for sigc::bound_const_mem_functor performs a functor - * on the object instance stored in the sigc::bound_const_mem_functor object. - * - * @ingroup mem_fun - */ -template -void visit_each(const T_action& _A_action, - const bound_const_mem_functor6& _A_target) -{ - visit_each(_A_action, *_A_target.obj_ptr_); -} - -/** bound_const_mem_functor7 encapsulates a const method with 7 arguments and an object instance. - * Use the convenience function mem_fun() to create an instance of bound_const_mem_functor7. - * - * The following template arguments are used: - * - @e T_arg1 Argument type used in the definition of operator()(). - * - @e T_arg2 Argument type used in the definition of operator()(). - * - @e T_arg3 Argument type used in the definition of operator()(). - * - @e T_arg4 Argument type used in the definition of operator()(). - * - @e T_arg5 Argument type used in the definition of operator()(). - * - @e T_arg6 Argument type used in the definition of operator()(). - * - @e T_arg7 Argument type used in the definition of operator()(). - * - @e T_return The return type of operator()(). - * - @e T_obj The object type. - * - * @ingroup mem_fun - */ -template -class bound_const_mem_functor7 - : public const_mem_functor7 -{ - typedef const_mem_functor7 base_type_; -public: - typedef typename base_type_::function_type function_type; - - /** Constructs a bound_const_mem_functor7 object that wraps the passed method. - * @param _A_obj Pointer to instance the method will operate on. - * @param _A_func Pointer to method will be invoked from operator()(). - */ - bound_const_mem_functor7(const T_obj* _A_obj, function_type _A_func) - : base_type_(_A_func), obj_ptr_(_A_obj) {} - - /** Constructs a bound_const_mem_functor7 object that wraps the passed method. - * @param _A_obj Reference to instance the method will operate on. - * @param _A_func Pointer to method will be invoked from operator()(). - */ - bound_const_mem_functor7(const T_obj& _A_obj, function_type _A_func) - : base_type_(_A_func), obj_ptr_(&_A_obj) {} - - /** Execute the wrapped method operating on the stored instance. - * @param _A_a1 Argument to be passed on to the method. - * @param _A_a2 Argument to be passed on to the method. - * @param _A_a3 Argument to be passed on to the method. - * @param _A_a4 Argument to be passed on to the method. - * @param _A_a5 Argument to be passed on to the method. - * @param _A_a6 Argument to be passed on to the method. - * @param _A_a7 Argument to be passed on to the method. - * @return The return value of the method invocation. - */ - T_return operator()(typename type_trait::take _A_a1,typename type_trait::take _A_a2,typename type_trait::take _A_a3,typename type_trait::take _A_a4,typename type_trait::take _A_a5,typename type_trait::take _A_a6,typename type_trait::take _A_a7) const - { return (obj_ptr_->*(this->func_ptr_))(_A_a1,_A_a2,_A_a3,_A_a4,_A_a5,_A_a6,_A_a7); } - -//protected: - /// Pointer to stored object instance. - const T_obj *obj_ptr_; -}; - -/** Performs a functor on each of the targets of a functor. - * The function overload for sigc::bound_const_mem_functor performs a functor - * on the object instance stored in the sigc::bound_const_mem_functor object. - * - * @ingroup mem_fun - */ -template -void visit_each(const T_action& _A_action, - const bound_const_mem_functor7& _A_target) -{ - visit_each(_A_action, *_A_target.obj_ptr_); -} - -/** bound_volatile_mem_functor0 encapsulates a volatile method with 0 arguments and an object instance. - * Use the convenience function mem_fun() to create an instance of bound_volatile_mem_functor0. - * - * The following template arguments are used: - * - @e T_return The return type of operator()(). - * - @e T_obj The object type. - * - * @ingroup mem_fun - */ -template -class bound_volatile_mem_functor0 - : public volatile_mem_functor0 -{ - typedef volatile_mem_functor0 base_type_; -public: - typedef typename base_type_::function_type function_type; - - /** Constructs a bound_volatile_mem_functor0 object that wraps the passed method. - * @param _A_obj Pointer to instance the method will operate on. - * @param _A_func Pointer to method will be invoked from operator()(). - */ - bound_volatile_mem_functor0( T_obj* _A_obj, function_type _A_func) - : base_type_(_A_func), obj_ptr_(_A_obj) {} - - /** Constructs a bound_volatile_mem_functor0 object that wraps the passed method. - * @param _A_obj Reference to instance the method will operate on. - * @param _A_func Pointer to method will be invoked from operator()(). - */ - bound_volatile_mem_functor0( T_obj& _A_obj, function_type _A_func) - : base_type_(_A_func), obj_ptr_(&_A_obj) {} - - /** Execute the wrapped method operating on the stored instance. - * @return The return value of the method invocation. - */ - T_return operator()() const - { return (obj_ptr_->*(this->func_ptr_))(); } - -//protected: - /// Pointer to stored object instance. - T_obj *obj_ptr_; -}; - -/** Performs a functor on each of the targets of a functor. - * The function overload for sigc::bound_volatile_mem_functor performs a functor - * on the object instance stored in the sigc::bound_volatile_mem_functor object. - * - * @ingroup mem_fun - */ -template -void visit_each(const T_action& _A_action, - const bound_volatile_mem_functor0& _A_target) -{ - visit_each(_A_action, *_A_target.obj_ptr_); -} - -/** bound_volatile_mem_functor1 encapsulates a volatile method with 1 arguments and an object instance. - * Use the convenience function mem_fun() to create an instance of bound_volatile_mem_functor1. - * - * The following template arguments are used: - * - @e T_arg1 Argument type used in the definition of operator()(). - * - @e T_return The return type of operator()(). - * - @e T_obj The object type. - * - * @ingroup mem_fun - */ -template -class bound_volatile_mem_functor1 - : public volatile_mem_functor1 -{ - typedef volatile_mem_functor1 base_type_; -public: - typedef typename base_type_::function_type function_type; - - /** Constructs a bound_volatile_mem_functor1 object that wraps the passed method. - * @param _A_obj Pointer to instance the method will operate on. - * @param _A_func Pointer to method will be invoked from operator()(). - */ - bound_volatile_mem_functor1( T_obj* _A_obj, function_type _A_func) - : base_type_(_A_func), obj_ptr_(_A_obj) {} - - /** Constructs a bound_volatile_mem_functor1 object that wraps the passed method. - * @param _A_obj Reference to instance the method will operate on. - * @param _A_func Pointer to method will be invoked from operator()(). - */ - bound_volatile_mem_functor1( T_obj& _A_obj, function_type _A_func) - : base_type_(_A_func), obj_ptr_(&_A_obj) {} - - /** Execute the wrapped method operating on the stored instance. - * @param _A_a1 Argument to be passed on to the method. - * @return The return value of the method invocation. - */ - T_return operator()(typename type_trait::take _A_a1) const - { return (obj_ptr_->*(this->func_ptr_))(_A_a1); } - -//protected: - /// Pointer to stored object instance. - T_obj *obj_ptr_; -}; - -/** Performs a functor on each of the targets of a functor. - * The function overload for sigc::bound_volatile_mem_functor performs a functor - * on the object instance stored in the sigc::bound_volatile_mem_functor object. - * - * @ingroup mem_fun - */ -template -void visit_each(const T_action& _A_action, - const bound_volatile_mem_functor1& _A_target) -{ - visit_each(_A_action, *_A_target.obj_ptr_); -} - -/** bound_volatile_mem_functor2 encapsulates a volatile method with 2 arguments and an object instance. - * Use the convenience function mem_fun() to create an instance of bound_volatile_mem_functor2. - * - * The following template arguments are used: - * - @e T_arg1 Argument type used in the definition of operator()(). - * - @e T_arg2 Argument type used in the definition of operator()(). - * - @e T_return The return type of operator()(). - * - @e T_obj The object type. - * - * @ingroup mem_fun - */ -template -class bound_volatile_mem_functor2 - : public volatile_mem_functor2 -{ - typedef volatile_mem_functor2 base_type_; -public: - typedef typename base_type_::function_type function_type; - - /** Constructs a bound_volatile_mem_functor2 object that wraps the passed method. - * @param _A_obj Pointer to instance the method will operate on. - * @param _A_func Pointer to method will be invoked from operator()(). - */ - bound_volatile_mem_functor2( T_obj* _A_obj, function_type _A_func) - : base_type_(_A_func), obj_ptr_(_A_obj) {} - - /** Constructs a bound_volatile_mem_functor2 object that wraps the passed method. - * @param _A_obj Reference to instance the method will operate on. - * @param _A_func Pointer to method will be invoked from operator()(). - */ - bound_volatile_mem_functor2( T_obj& _A_obj, function_type _A_func) - : base_type_(_A_func), obj_ptr_(&_A_obj) {} - - /** Execute the wrapped method operating on the stored instance. - * @param _A_a1 Argument to be passed on to the method. - * @param _A_a2 Argument to be passed on to the method. - * @return The return value of the method invocation. - */ - T_return operator()(typename type_trait::take _A_a1,typename type_trait::take _A_a2) const - { return (obj_ptr_->*(this->func_ptr_))(_A_a1,_A_a2); } - -//protected: - /// Pointer to stored object instance. - T_obj *obj_ptr_; -}; - -/** Performs a functor on each of the targets of a functor. - * The function overload for sigc::bound_volatile_mem_functor performs a functor - * on the object instance stored in the sigc::bound_volatile_mem_functor object. - * - * @ingroup mem_fun - */ -template -void visit_each(const T_action& _A_action, - const bound_volatile_mem_functor2& _A_target) -{ - visit_each(_A_action, *_A_target.obj_ptr_); -} - -/** bound_volatile_mem_functor3 encapsulates a volatile method with 3 arguments and an object instance. - * Use the convenience function mem_fun() to create an instance of bound_volatile_mem_functor3. - * - * The following template arguments are used: - * - @e T_arg1 Argument type used in the definition of operator()(). - * - @e T_arg2 Argument type used in the definition of operator()(). - * - @e T_arg3 Argument type used in the definition of operator()(). - * - @e T_return The return type of operator()(). - * - @e T_obj The object type. - * - * @ingroup mem_fun - */ -template -class bound_volatile_mem_functor3 - : public volatile_mem_functor3 -{ - typedef volatile_mem_functor3 base_type_; -public: - typedef typename base_type_::function_type function_type; - - /** Constructs a bound_volatile_mem_functor3 object that wraps the passed method. - * @param _A_obj Pointer to instance the method will operate on. - * @param _A_func Pointer to method will be invoked from operator()(). - */ - bound_volatile_mem_functor3( T_obj* _A_obj, function_type _A_func) - : base_type_(_A_func), obj_ptr_(_A_obj) {} - - /** Constructs a bound_volatile_mem_functor3 object that wraps the passed method. - * @param _A_obj Reference to instance the method will operate on. - * @param _A_func Pointer to method will be invoked from operator()(). - */ - bound_volatile_mem_functor3( T_obj& _A_obj, function_type _A_func) - : base_type_(_A_func), obj_ptr_(&_A_obj) {} - - /** Execute the wrapped method operating on the stored instance. - * @param _A_a1 Argument to be passed on to the method. - * @param _A_a2 Argument to be passed on to the method. - * @param _A_a3 Argument to be passed on to the method. - * @return The return value of the method invocation. - */ - T_return operator()(typename type_trait::take _A_a1,typename type_trait::take _A_a2,typename type_trait::take _A_a3) const - { return (obj_ptr_->*(this->func_ptr_))(_A_a1,_A_a2,_A_a3); } - -//protected: - /// Pointer to stored object instance. - T_obj *obj_ptr_; -}; - -/** Performs a functor on each of the targets of a functor. - * The function overload for sigc::bound_volatile_mem_functor performs a functor - * on the object instance stored in the sigc::bound_volatile_mem_functor object. - * - * @ingroup mem_fun - */ -template -void visit_each(const T_action& _A_action, - const bound_volatile_mem_functor3& _A_target) -{ - visit_each(_A_action, *_A_target.obj_ptr_); -} - -/** bound_volatile_mem_functor4 encapsulates a volatile method with 4 arguments and an object instance. - * Use the convenience function mem_fun() to create an instance of bound_volatile_mem_functor4. - * - * The following template arguments are used: - * - @e T_arg1 Argument type used in the definition of operator()(). - * - @e T_arg2 Argument type used in the definition of operator()(). - * - @e T_arg3 Argument type used in the definition of operator()(). - * - @e T_arg4 Argument type used in the definition of operator()(). - * - @e T_return The return type of operator()(). - * - @e T_obj The object type. - * - * @ingroup mem_fun - */ -template -class bound_volatile_mem_functor4 - : public volatile_mem_functor4 -{ - typedef volatile_mem_functor4 base_type_; -public: - typedef typename base_type_::function_type function_type; - - /** Constructs a bound_volatile_mem_functor4 object that wraps the passed method. - * @param _A_obj Pointer to instance the method will operate on. - * @param _A_func Pointer to method will be invoked from operator()(). - */ - bound_volatile_mem_functor4( T_obj* _A_obj, function_type _A_func) - : base_type_(_A_func), obj_ptr_(_A_obj) {} - - /** Constructs a bound_volatile_mem_functor4 object that wraps the passed method. - * @param _A_obj Reference to instance the method will operate on. - * @param _A_func Pointer to method will be invoked from operator()(). - */ - bound_volatile_mem_functor4( T_obj& _A_obj, function_type _A_func) - : base_type_(_A_func), obj_ptr_(&_A_obj) {} - - /** Execute the wrapped method operating on the stored instance. - * @param _A_a1 Argument to be passed on to the method. - * @param _A_a2 Argument to be passed on to the method. - * @param _A_a3 Argument to be passed on to the method. - * @param _A_a4 Argument to be passed on to the method. - * @return The return value of the method invocation. - */ - T_return operator()(typename type_trait::take _A_a1,typename type_trait::take _A_a2,typename type_trait::take _A_a3,typename type_trait::take _A_a4) const - { return (obj_ptr_->*(this->func_ptr_))(_A_a1,_A_a2,_A_a3,_A_a4); } - -//protected: - /// Pointer to stored object instance. - T_obj *obj_ptr_; -}; - -/** Performs a functor on each of the targets of a functor. - * The function overload for sigc::bound_volatile_mem_functor performs a functor - * on the object instance stored in the sigc::bound_volatile_mem_functor object. - * - * @ingroup mem_fun - */ -template -void visit_each(const T_action& _A_action, - const bound_volatile_mem_functor4& _A_target) -{ - visit_each(_A_action, *_A_target.obj_ptr_); -} - -/** bound_volatile_mem_functor5 encapsulates a volatile method with 5 arguments and an object instance. - * Use the convenience function mem_fun() to create an instance of bound_volatile_mem_functor5. - * - * The following template arguments are used: - * - @e T_arg1 Argument type used in the definition of operator()(). - * - @e T_arg2 Argument type used in the definition of operator()(). - * - @e T_arg3 Argument type used in the definition of operator()(). - * - @e T_arg4 Argument type used in the definition of operator()(). - * - @e T_arg5 Argument type used in the definition of operator()(). - * - @e T_return The return type of operator()(). - * - @e T_obj The object type. - * - * @ingroup mem_fun - */ -template -class bound_volatile_mem_functor5 - : public volatile_mem_functor5 -{ - typedef volatile_mem_functor5 base_type_; -public: - typedef typename base_type_::function_type function_type; - - /** Constructs a bound_volatile_mem_functor5 object that wraps the passed method. - * @param _A_obj Pointer to instance the method will operate on. - * @param _A_func Pointer to method will be invoked from operator()(). - */ - bound_volatile_mem_functor5( T_obj* _A_obj, function_type _A_func) - : base_type_(_A_func), obj_ptr_(_A_obj) {} - - /** Constructs a bound_volatile_mem_functor5 object that wraps the passed method. - * @param _A_obj Reference to instance the method will operate on. - * @param _A_func Pointer to method will be invoked from operator()(). - */ - bound_volatile_mem_functor5( T_obj& _A_obj, function_type _A_func) - : base_type_(_A_func), obj_ptr_(&_A_obj) {} - - /** Execute the wrapped method operating on the stored instance. - * @param _A_a1 Argument to be passed on to the method. - * @param _A_a2 Argument to be passed on to the method. - * @param _A_a3 Argument to be passed on to the method. - * @param _A_a4 Argument to be passed on to the method. - * @param _A_a5 Argument to be passed on to the method. - * @return The return value of the method invocation. - */ - T_return operator()(typename type_trait::take _A_a1,typename type_trait::take _A_a2,typename type_trait::take _A_a3,typename type_trait::take _A_a4,typename type_trait::take _A_a5) const - { return (obj_ptr_->*(this->func_ptr_))(_A_a1,_A_a2,_A_a3,_A_a4,_A_a5); } - -//protected: - /// Pointer to stored object instance. - T_obj *obj_ptr_; -}; - -/** Performs a functor on each of the targets of a functor. - * The function overload for sigc::bound_volatile_mem_functor performs a functor - * on the object instance stored in the sigc::bound_volatile_mem_functor object. - * - * @ingroup mem_fun - */ -template -void visit_each(const T_action& _A_action, - const bound_volatile_mem_functor5& _A_target) -{ - visit_each(_A_action, *_A_target.obj_ptr_); -} - -/** bound_volatile_mem_functor6 encapsulates a volatile method with 6 arguments and an object instance. - * Use the convenience function mem_fun() to create an instance of bound_volatile_mem_functor6. - * - * The following template arguments are used: - * - @e T_arg1 Argument type used in the definition of operator()(). - * - @e T_arg2 Argument type used in the definition of operator()(). - * - @e T_arg3 Argument type used in the definition of operator()(). - * - @e T_arg4 Argument type used in the definition of operator()(). - * - @e T_arg5 Argument type used in the definition of operator()(). - * - @e T_arg6 Argument type used in the definition of operator()(). - * - @e T_return The return type of operator()(). - * - @e T_obj The object type. - * - * @ingroup mem_fun - */ -template -class bound_volatile_mem_functor6 - : public volatile_mem_functor6 -{ - typedef volatile_mem_functor6 base_type_; -public: - typedef typename base_type_::function_type function_type; - - /** Constructs a bound_volatile_mem_functor6 object that wraps the passed method. - * @param _A_obj Pointer to instance the method will operate on. - * @param _A_func Pointer to method will be invoked from operator()(). - */ - bound_volatile_mem_functor6( T_obj* _A_obj, function_type _A_func) - : base_type_(_A_func), obj_ptr_(_A_obj) {} - - /** Constructs a bound_volatile_mem_functor6 object that wraps the passed method. - * @param _A_obj Reference to instance the method will operate on. - * @param _A_func Pointer to method will be invoked from operator()(). - */ - bound_volatile_mem_functor6( T_obj& _A_obj, function_type _A_func) - : base_type_(_A_func), obj_ptr_(&_A_obj) {} - - /** Execute the wrapped method operating on the stored instance. - * @param _A_a1 Argument to be passed on to the method. - * @param _A_a2 Argument to be passed on to the method. - * @param _A_a3 Argument to be passed on to the method. - * @param _A_a4 Argument to be passed on to the method. - * @param _A_a5 Argument to be passed on to the method. - * @param _A_a6 Argument to be passed on to the method. - * @return The return value of the method invocation. - */ - T_return operator()(typename type_trait::take _A_a1,typename type_trait::take _A_a2,typename type_trait::take _A_a3,typename type_trait::take _A_a4,typename type_trait::take _A_a5,typename type_trait::take _A_a6) const - { return (obj_ptr_->*(this->func_ptr_))(_A_a1,_A_a2,_A_a3,_A_a4,_A_a5,_A_a6); } - -//protected: - /// Pointer to stored object instance. - T_obj *obj_ptr_; -}; - -/** Performs a functor on each of the targets of a functor. - * The function overload for sigc::bound_volatile_mem_functor performs a functor - * on the object instance stored in the sigc::bound_volatile_mem_functor object. - * - * @ingroup mem_fun - */ -template -void visit_each(const T_action& _A_action, - const bound_volatile_mem_functor6& _A_target) -{ - visit_each(_A_action, *_A_target.obj_ptr_); -} - -/** bound_volatile_mem_functor7 encapsulates a volatile method with 7 arguments and an object instance. - * Use the convenience function mem_fun() to create an instance of bound_volatile_mem_functor7. - * - * The following template arguments are used: - * - @e T_arg1 Argument type used in the definition of operator()(). - * - @e T_arg2 Argument type used in the definition of operator()(). - * - @e T_arg3 Argument type used in the definition of operator()(). - * - @e T_arg4 Argument type used in the definition of operator()(). - * - @e T_arg5 Argument type used in the definition of operator()(). - * - @e T_arg6 Argument type used in the definition of operator()(). - * - @e T_arg7 Argument type used in the definition of operator()(). - * - @e T_return The return type of operator()(). - * - @e T_obj The object type. - * - * @ingroup mem_fun - */ -template -class bound_volatile_mem_functor7 - : public volatile_mem_functor7 -{ - typedef volatile_mem_functor7 base_type_; -public: - typedef typename base_type_::function_type function_type; - - /** Constructs a bound_volatile_mem_functor7 object that wraps the passed method. - * @param _A_obj Pointer to instance the method will operate on. - * @param _A_func Pointer to method will be invoked from operator()(). - */ - bound_volatile_mem_functor7( T_obj* _A_obj, function_type _A_func) - : base_type_(_A_func), obj_ptr_(_A_obj) {} - - /** Constructs a bound_volatile_mem_functor7 object that wraps the passed method. - * @param _A_obj Reference to instance the method will operate on. - * @param _A_func Pointer to method will be invoked from operator()(). - */ - bound_volatile_mem_functor7( T_obj& _A_obj, function_type _A_func) - : base_type_(_A_func), obj_ptr_(&_A_obj) {} - - /** Execute the wrapped method operating on the stored instance. - * @param _A_a1 Argument to be passed on to the method. - * @param _A_a2 Argument to be passed on to the method. - * @param _A_a3 Argument to be passed on to the method. - * @param _A_a4 Argument to be passed on to the method. - * @param _A_a5 Argument to be passed on to the method. - * @param _A_a6 Argument to be passed on to the method. - * @param _A_a7 Argument to be passed on to the method. - * @return The return value of the method invocation. - */ - T_return operator()(typename type_trait::take _A_a1,typename type_trait::take _A_a2,typename type_trait::take _A_a3,typename type_trait::take _A_a4,typename type_trait::take _A_a5,typename type_trait::take _A_a6,typename type_trait::take _A_a7) const - { return (obj_ptr_->*(this->func_ptr_))(_A_a1,_A_a2,_A_a3,_A_a4,_A_a5,_A_a6,_A_a7); } - -//protected: - /// Pointer to stored object instance. - T_obj *obj_ptr_; -}; - -/** Performs a functor on each of the targets of a functor. - * The function overload for sigc::bound_volatile_mem_functor performs a functor - * on the object instance stored in the sigc::bound_volatile_mem_functor object. - * - * @ingroup mem_fun - */ -template -void visit_each(const T_action& _A_action, - const bound_volatile_mem_functor7& _A_target) -{ - visit_each(_A_action, *_A_target.obj_ptr_); -} - -/** bound_const_volatile_mem_functor0 encapsulates a const volatile method with 0 arguments and an object instance. - * Use the convenience function mem_fun() to create an instance of bound_const_volatile_mem_functor0. - * - * The following template arguments are used: - * - @e T_return The return type of operator()(). - * - @e T_obj The object type. - * - * @ingroup mem_fun - */ -template -class bound_const_volatile_mem_functor0 - : public const_volatile_mem_functor0 -{ - typedef const_volatile_mem_functor0 base_type_; -public: - typedef typename base_type_::function_type function_type; - - /** Constructs a bound_const_volatile_mem_functor0 object that wraps the passed method. - * @param _A_obj Pointer to instance the method will operate on. - * @param _A_func Pointer to method will be invoked from operator()(). - */ - bound_const_volatile_mem_functor0(const T_obj* _A_obj, function_type _A_func) - : base_type_(_A_func), obj_ptr_(_A_obj) {} - - /** Constructs a bound_const_volatile_mem_functor0 object that wraps the passed method. - * @param _A_obj Reference to instance the method will operate on. - * @param _A_func Pointer to method will be invoked from operator()(). - */ - bound_const_volatile_mem_functor0(const T_obj& _A_obj, function_type _A_func) - : base_type_(_A_func), obj_ptr_(&_A_obj) {} - - /** Execute the wrapped method operating on the stored instance. - * @return The return value of the method invocation. - */ - T_return operator()() const - { return (obj_ptr_->*(this->func_ptr_))(); } - -//protected: - /// Pointer to stored object instance. - const T_obj *obj_ptr_; -}; - -/** Performs a functor on each of the targets of a functor. - * The function overload for sigc::bound_const_volatile_mem_functor performs a functor - * on the object instance stored in the sigc::bound_const_volatile_mem_functor object. - * - * @ingroup mem_fun - */ -template -void visit_each(const T_action& _A_action, - const bound_const_volatile_mem_functor0& _A_target) -{ - visit_each(_A_action, *_A_target.obj_ptr_); -} - -/** bound_const_volatile_mem_functor1 encapsulates a const volatile method with 1 arguments and an object instance. - * Use the convenience function mem_fun() to create an instance of bound_const_volatile_mem_functor1. - * - * The following template arguments are used: - * - @e T_arg1 Argument type used in the definition of operator()(). - * - @e T_return The return type of operator()(). - * - @e T_obj The object type. - * - * @ingroup mem_fun - */ -template -class bound_const_volatile_mem_functor1 - : public const_volatile_mem_functor1 -{ - typedef const_volatile_mem_functor1 base_type_; -public: - typedef typename base_type_::function_type function_type; - - /** Constructs a bound_const_volatile_mem_functor1 object that wraps the passed method. - * @param _A_obj Pointer to instance the method will operate on. - * @param _A_func Pointer to method will be invoked from operator()(). - */ - bound_const_volatile_mem_functor1(const T_obj* _A_obj, function_type _A_func) - : base_type_(_A_func), obj_ptr_(_A_obj) {} - - /** Constructs a bound_const_volatile_mem_functor1 object that wraps the passed method. - * @param _A_obj Reference to instance the method will operate on. - * @param _A_func Pointer to method will be invoked from operator()(). - */ - bound_const_volatile_mem_functor1(const T_obj& _A_obj, function_type _A_func) - : base_type_(_A_func), obj_ptr_(&_A_obj) {} - - /** Execute the wrapped method operating on the stored instance. - * @param _A_a1 Argument to be passed on to the method. - * @return The return value of the method invocation. - */ - T_return operator()(typename type_trait::take _A_a1) const - { return (obj_ptr_->*(this->func_ptr_))(_A_a1); } - -//protected: - /// Pointer to stored object instance. - const T_obj *obj_ptr_; -}; - -/** Performs a functor on each of the targets of a functor. - * The function overload for sigc::bound_const_volatile_mem_functor performs a functor - * on the object instance stored in the sigc::bound_const_volatile_mem_functor object. - * - * @ingroup mem_fun - */ -template -void visit_each(const T_action& _A_action, - const bound_const_volatile_mem_functor1& _A_target) -{ - visit_each(_A_action, *_A_target.obj_ptr_); -} - -/** bound_const_volatile_mem_functor2 encapsulates a const volatile method with 2 arguments and an object instance. - * Use the convenience function mem_fun() to create an instance of bound_const_volatile_mem_functor2. - * - * The following template arguments are used: - * - @e T_arg1 Argument type used in the definition of operator()(). - * - @e T_arg2 Argument type used in the definition of operator()(). - * - @e T_return The return type of operator()(). - * - @e T_obj The object type. - * - * @ingroup mem_fun - */ -template -class bound_const_volatile_mem_functor2 - : public const_volatile_mem_functor2 -{ - typedef const_volatile_mem_functor2 base_type_; -public: - typedef typename base_type_::function_type function_type; - - /** Constructs a bound_const_volatile_mem_functor2 object that wraps the passed method. - * @param _A_obj Pointer to instance the method will operate on. - * @param _A_func Pointer to method will be invoked from operator()(). - */ - bound_const_volatile_mem_functor2(const T_obj* _A_obj, function_type _A_func) - : base_type_(_A_func), obj_ptr_(_A_obj) {} - - /** Constructs a bound_const_volatile_mem_functor2 object that wraps the passed method. - * @param _A_obj Reference to instance the method will operate on. - * @param _A_func Pointer to method will be invoked from operator()(). - */ - bound_const_volatile_mem_functor2(const T_obj& _A_obj, function_type _A_func) - : base_type_(_A_func), obj_ptr_(&_A_obj) {} - - /** Execute the wrapped method operating on the stored instance. - * @param _A_a1 Argument to be passed on to the method. - * @param _A_a2 Argument to be passed on to the method. - * @return The return value of the method invocation. - */ - T_return operator()(typename type_trait::take _A_a1,typename type_trait::take _A_a2) const - { return (obj_ptr_->*(this->func_ptr_))(_A_a1,_A_a2); } - -//protected: - /// Pointer to stored object instance. - const T_obj *obj_ptr_; -}; - -/** Performs a functor on each of the targets of a functor. - * The function overload for sigc::bound_const_volatile_mem_functor performs a functor - * on the object instance stored in the sigc::bound_const_volatile_mem_functor object. - * - * @ingroup mem_fun - */ -template -void visit_each(const T_action& _A_action, - const bound_const_volatile_mem_functor2& _A_target) -{ - visit_each(_A_action, *_A_target.obj_ptr_); -} - -/** bound_const_volatile_mem_functor3 encapsulates a const volatile method with 3 arguments and an object instance. - * Use the convenience function mem_fun() to create an instance of bound_const_volatile_mem_functor3. - * - * The following template arguments are used: - * - @e T_arg1 Argument type used in the definition of operator()(). - * - @e T_arg2 Argument type used in the definition of operator()(). - * - @e T_arg3 Argument type used in the definition of operator()(). - * - @e T_return The return type of operator()(). - * - @e T_obj The object type. - * - * @ingroup mem_fun - */ -template -class bound_const_volatile_mem_functor3 - : public const_volatile_mem_functor3 -{ - typedef const_volatile_mem_functor3 base_type_; -public: - typedef typename base_type_::function_type function_type; - - /** Constructs a bound_const_volatile_mem_functor3 object that wraps the passed method. - * @param _A_obj Pointer to instance the method will operate on. - * @param _A_func Pointer to method will be invoked from operator()(). - */ - bound_const_volatile_mem_functor3(const T_obj* _A_obj, function_type _A_func) - : base_type_(_A_func), obj_ptr_(_A_obj) {} - - /** Constructs a bound_const_volatile_mem_functor3 object that wraps the passed method. - * @param _A_obj Reference to instance the method will operate on. - * @param _A_func Pointer to method will be invoked from operator()(). - */ - bound_const_volatile_mem_functor3(const T_obj& _A_obj, function_type _A_func) - : base_type_(_A_func), obj_ptr_(&_A_obj) {} - - /** Execute the wrapped method operating on the stored instance. - * @param _A_a1 Argument to be passed on to the method. - * @param _A_a2 Argument to be passed on to the method. - * @param _A_a3 Argument to be passed on to the method. - * @return The return value of the method invocation. - */ - T_return operator()(typename type_trait::take _A_a1,typename type_trait::take _A_a2,typename type_trait::take _A_a3) const - { return (obj_ptr_->*(this->func_ptr_))(_A_a1,_A_a2,_A_a3); } - -//protected: - /// Pointer to stored object instance. - const T_obj *obj_ptr_; -}; - -/** Performs a functor on each of the targets of a functor. - * The function overload for sigc::bound_const_volatile_mem_functor performs a functor - * on the object instance stored in the sigc::bound_const_volatile_mem_functor object. - * - * @ingroup mem_fun - */ -template -void visit_each(const T_action& _A_action, - const bound_const_volatile_mem_functor3& _A_target) -{ - visit_each(_A_action, *_A_target.obj_ptr_); -} - -/** bound_const_volatile_mem_functor4 encapsulates a const volatile method with 4 arguments and an object instance. - * Use the convenience function mem_fun() to create an instance of bound_const_volatile_mem_functor4. - * - * The following template arguments are used: - * - @e T_arg1 Argument type used in the definition of operator()(). - * - @e T_arg2 Argument type used in the definition of operator()(). - * - @e T_arg3 Argument type used in the definition of operator()(). - * - @e T_arg4 Argument type used in the definition of operator()(). - * - @e T_return The return type of operator()(). - * - @e T_obj The object type. - * - * @ingroup mem_fun - */ -template -class bound_const_volatile_mem_functor4 - : public const_volatile_mem_functor4 -{ - typedef const_volatile_mem_functor4 base_type_; -public: - typedef typename base_type_::function_type function_type; - - /** Constructs a bound_const_volatile_mem_functor4 object that wraps the passed method. - * @param _A_obj Pointer to instance the method will operate on. - * @param _A_func Pointer to method will be invoked from operator()(). - */ - bound_const_volatile_mem_functor4(const T_obj* _A_obj, function_type _A_func) - : base_type_(_A_func), obj_ptr_(_A_obj) {} - - /** Constructs a bound_const_volatile_mem_functor4 object that wraps the passed method. - * @param _A_obj Reference to instance the method will operate on. - * @param _A_func Pointer to method will be invoked from operator()(). - */ - bound_const_volatile_mem_functor4(const T_obj& _A_obj, function_type _A_func) - : base_type_(_A_func), obj_ptr_(&_A_obj) {} - - /** Execute the wrapped method operating on the stored instance. - * @param _A_a1 Argument to be passed on to the method. - * @param _A_a2 Argument to be passed on to the method. - * @param _A_a3 Argument to be passed on to the method. - * @param _A_a4 Argument to be passed on to the method. - * @return The return value of the method invocation. - */ - T_return operator()(typename type_trait::take _A_a1,typename type_trait::take _A_a2,typename type_trait::take _A_a3,typename type_trait::take _A_a4) const - { return (obj_ptr_->*(this->func_ptr_))(_A_a1,_A_a2,_A_a3,_A_a4); } - -//protected: - /// Pointer to stored object instance. - const T_obj *obj_ptr_; -}; - -/** Performs a functor on each of the targets of a functor. - * The function overload for sigc::bound_const_volatile_mem_functor performs a functor - * on the object instance stored in the sigc::bound_const_volatile_mem_functor object. - * - * @ingroup mem_fun - */ -template -void visit_each(const T_action& _A_action, - const bound_const_volatile_mem_functor4& _A_target) -{ - visit_each(_A_action, *_A_target.obj_ptr_); -} - -/** bound_const_volatile_mem_functor5 encapsulates a const volatile method with 5 arguments and an object instance. - * Use the convenience function mem_fun() to create an instance of bound_const_volatile_mem_functor5. - * - * The following template arguments are used: - * - @e T_arg1 Argument type used in the definition of operator()(). - * - @e T_arg2 Argument type used in the definition of operator()(). - * - @e T_arg3 Argument type used in the definition of operator()(). - * - @e T_arg4 Argument type used in the definition of operator()(). - * - @e T_arg5 Argument type used in the definition of operator()(). - * - @e T_return The return type of operator()(). - * - @e T_obj The object type. - * - * @ingroup mem_fun - */ -template -class bound_const_volatile_mem_functor5 - : public const_volatile_mem_functor5 -{ - typedef const_volatile_mem_functor5 base_type_; -public: - typedef typename base_type_::function_type function_type; - - /** Constructs a bound_const_volatile_mem_functor5 object that wraps the passed method. - * @param _A_obj Pointer to instance the method will operate on. - * @param _A_func Pointer to method will be invoked from operator()(). - */ - bound_const_volatile_mem_functor5(const T_obj* _A_obj, function_type _A_func) - : base_type_(_A_func), obj_ptr_(_A_obj) {} - - /** Constructs a bound_const_volatile_mem_functor5 object that wraps the passed method. - * @param _A_obj Reference to instance the method will operate on. - * @param _A_func Pointer to method will be invoked from operator()(). - */ - bound_const_volatile_mem_functor5(const T_obj& _A_obj, function_type _A_func) - : base_type_(_A_func), obj_ptr_(&_A_obj) {} - - /** Execute the wrapped method operating on the stored instance. - * @param _A_a1 Argument to be passed on to the method. - * @param _A_a2 Argument to be passed on to the method. - * @param _A_a3 Argument to be passed on to the method. - * @param _A_a4 Argument to be passed on to the method. - * @param _A_a5 Argument to be passed on to the method. - * @return The return value of the method invocation. - */ - T_return operator()(typename type_trait::take _A_a1,typename type_trait::take _A_a2,typename type_trait::take _A_a3,typename type_trait::take _A_a4,typename type_trait::take _A_a5) const - { return (obj_ptr_->*(this->func_ptr_))(_A_a1,_A_a2,_A_a3,_A_a4,_A_a5); } - -//protected: - /// Pointer to stored object instance. - const T_obj *obj_ptr_; -}; - -/** Performs a functor on each of the targets of a functor. - * The function overload for sigc::bound_const_volatile_mem_functor performs a functor - * on the object instance stored in the sigc::bound_const_volatile_mem_functor object. - * - * @ingroup mem_fun - */ -template -void visit_each(const T_action& _A_action, - const bound_const_volatile_mem_functor5& _A_target) -{ - visit_each(_A_action, *_A_target.obj_ptr_); -} - -/** bound_const_volatile_mem_functor6 encapsulates a const volatile method with 6 arguments and an object instance. - * Use the convenience function mem_fun() to create an instance of bound_const_volatile_mem_functor6. - * - * The following template arguments are used: - * - @e T_arg1 Argument type used in the definition of operator()(). - * - @e T_arg2 Argument type used in the definition of operator()(). - * - @e T_arg3 Argument type used in the definition of operator()(). - * - @e T_arg4 Argument type used in the definition of operator()(). - * - @e T_arg5 Argument type used in the definition of operator()(). - * - @e T_arg6 Argument type used in the definition of operator()(). - * - @e T_return The return type of operator()(). - * - @e T_obj The object type. - * - * @ingroup mem_fun - */ -template -class bound_const_volatile_mem_functor6 - : public const_volatile_mem_functor6 -{ - typedef const_volatile_mem_functor6 base_type_; -public: - typedef typename base_type_::function_type function_type; - - /** Constructs a bound_const_volatile_mem_functor6 object that wraps the passed method. - * @param _A_obj Pointer to instance the method will operate on. - * @param _A_func Pointer to method will be invoked from operator()(). - */ - bound_const_volatile_mem_functor6(const T_obj* _A_obj, function_type _A_func) - : base_type_(_A_func), obj_ptr_(_A_obj) {} - - /** Constructs a bound_const_volatile_mem_functor6 object that wraps the passed method. - * @param _A_obj Reference to instance the method will operate on. - * @param _A_func Pointer to method will be invoked from operator()(). - */ - bound_const_volatile_mem_functor6(const T_obj& _A_obj, function_type _A_func) - : base_type_(_A_func), obj_ptr_(&_A_obj) {} - - /** Execute the wrapped method operating on the stored instance. - * @param _A_a1 Argument to be passed on to the method. - * @param _A_a2 Argument to be passed on to the method. - * @param _A_a3 Argument to be passed on to the method. - * @param _A_a4 Argument to be passed on to the method. - * @param _A_a5 Argument to be passed on to the method. - * @param _A_a6 Argument to be passed on to the method. - * @return The return value of the method invocation. - */ - T_return operator()(typename type_trait::take _A_a1,typename type_trait::take _A_a2,typename type_trait::take _A_a3,typename type_trait::take _A_a4,typename type_trait::take _A_a5,typename type_trait::take _A_a6) const - { return (obj_ptr_->*(this->func_ptr_))(_A_a1,_A_a2,_A_a3,_A_a4,_A_a5,_A_a6); } - -//protected: - /// Pointer to stored object instance. - const T_obj *obj_ptr_; -}; - -/** Performs a functor on each of the targets of a functor. - * The function overload for sigc::bound_const_volatile_mem_functor performs a functor - * on the object instance stored in the sigc::bound_const_volatile_mem_functor object. - * - * @ingroup mem_fun - */ -template -void visit_each(const T_action& _A_action, - const bound_const_volatile_mem_functor6& _A_target) -{ - visit_each(_A_action, *_A_target.obj_ptr_); -} - -/** bound_const_volatile_mem_functor7 encapsulates a const volatile method with 7 arguments and an object instance. - * Use the convenience function mem_fun() to create an instance of bound_const_volatile_mem_functor7. - * - * The following template arguments are used: - * - @e T_arg1 Argument type used in the definition of operator()(). - * - @e T_arg2 Argument type used in the definition of operator()(). - * - @e T_arg3 Argument type used in the definition of operator()(). - * - @e T_arg4 Argument type used in the definition of operator()(). - * - @e T_arg5 Argument type used in the definition of operator()(). - * - @e T_arg6 Argument type used in the definition of operator()(). - * - @e T_arg7 Argument type used in the definition of operator()(). - * - @e T_return The return type of operator()(). - * - @e T_obj The object type. - * - * @ingroup mem_fun - */ -template -class bound_const_volatile_mem_functor7 - : public const_volatile_mem_functor7 -{ - typedef const_volatile_mem_functor7 base_type_; -public: - typedef typename base_type_::function_type function_type; - - /** Constructs a bound_const_volatile_mem_functor7 object that wraps the passed method. - * @param _A_obj Pointer to instance the method will operate on. - * @param _A_func Pointer to method will be invoked from operator()(). - */ - bound_const_volatile_mem_functor7(const T_obj* _A_obj, function_type _A_func) - : base_type_(_A_func), obj_ptr_(_A_obj) {} - - /** Constructs a bound_const_volatile_mem_functor7 object that wraps the passed method. - * @param _A_obj Reference to instance the method will operate on. - * @param _A_func Pointer to method will be invoked from operator()(). - */ - bound_const_volatile_mem_functor7(const T_obj& _A_obj, function_type _A_func) - : base_type_(_A_func), obj_ptr_(&_A_obj) {} - - /** Execute the wrapped method operating on the stored instance. - * @param _A_a1 Argument to be passed on to the method. - * @param _A_a2 Argument to be passed on to the method. - * @param _A_a3 Argument to be passed on to the method. - * @param _A_a4 Argument to be passed on to the method. - * @param _A_a5 Argument to be passed on to the method. - * @param _A_a6 Argument to be passed on to the method. - * @param _A_a7 Argument to be passed on to the method. - * @return The return value of the method invocation. - */ - T_return operator()(typename type_trait::take _A_a1,typename type_trait::take _A_a2,typename type_trait::take _A_a3,typename type_trait::take _A_a4,typename type_trait::take _A_a5,typename type_trait::take _A_a6,typename type_trait::take _A_a7) const - { return (obj_ptr_->*(this->func_ptr_))(_A_a1,_A_a2,_A_a3,_A_a4,_A_a5,_A_a6,_A_a7); } - -//protected: - /// Pointer to stored object instance. - const T_obj *obj_ptr_; -}; - -/** Performs a functor on each of the targets of a functor. - * The function overload for sigc::bound_const_volatile_mem_functor performs a functor - * on the object instance stored in the sigc::bound_const_volatile_mem_functor object. - * - * @ingroup mem_fun - */ -template -void visit_each(const T_action& _A_action, - const bound_const_volatile_mem_functor7& _A_target) -{ - visit_each(_A_action, *_A_target.obj_ptr_); -} - - -// numbered -/** Creates a functor of type sigc::mem_functor0 which wraps a method. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline mem_functor0 -mem_fun0(T_return (T_obj::*_A_func)() ) -{ return mem_functor0(_A_func); } - -/** Creates a functor of type sigc::mem_functor1 which wraps a method. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline mem_functor1 -mem_fun1(T_return (T_obj::*_A_func)(T_arg1) ) -{ return mem_functor1(_A_func); } - -/** Creates a functor of type sigc::mem_functor2 which wraps a method. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline mem_functor2 -mem_fun2(T_return (T_obj::*_A_func)(T_arg1,T_arg2) ) -{ return mem_functor2(_A_func); } - -/** Creates a functor of type sigc::mem_functor3 which wraps a method. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline mem_functor3 -mem_fun3(T_return (T_obj::*_A_func)(T_arg1,T_arg2,T_arg3) ) -{ return mem_functor3(_A_func); } - -/** Creates a functor of type sigc::mem_functor4 which wraps a method. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline mem_functor4 -mem_fun4(T_return (T_obj::*_A_func)(T_arg1,T_arg2,T_arg3,T_arg4) ) -{ return mem_functor4(_A_func); } - -/** Creates a functor of type sigc::mem_functor5 which wraps a method. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline mem_functor5 -mem_fun5(T_return (T_obj::*_A_func)(T_arg1,T_arg2,T_arg3,T_arg4,T_arg5) ) -{ return mem_functor5(_A_func); } - -/** Creates a functor of type sigc::mem_functor6 which wraps a method. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline mem_functor6 -mem_fun6(T_return (T_obj::*_A_func)(T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6) ) -{ return mem_functor6(_A_func); } - -/** Creates a functor of type sigc::mem_functor7 which wraps a method. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline mem_functor7 -mem_fun7(T_return (T_obj::*_A_func)(T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6,T_arg7) ) -{ return mem_functor7(_A_func); } - -/** Creates a functor of type sigc::const_mem_functor0 which wraps a const method. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline const_mem_functor0 -mem_fun0(T_return (T_obj::*_A_func)() const) -{ return const_mem_functor0(_A_func); } - -/** Creates a functor of type sigc::const_mem_functor1 which wraps a const method. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline const_mem_functor1 -mem_fun1(T_return (T_obj::*_A_func)(T_arg1) const) -{ return const_mem_functor1(_A_func); } - -/** Creates a functor of type sigc::const_mem_functor2 which wraps a const method. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline const_mem_functor2 -mem_fun2(T_return (T_obj::*_A_func)(T_arg1,T_arg2) const) -{ return const_mem_functor2(_A_func); } - -/** Creates a functor of type sigc::const_mem_functor3 which wraps a const method. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline const_mem_functor3 -mem_fun3(T_return (T_obj::*_A_func)(T_arg1,T_arg2,T_arg3) const) -{ return const_mem_functor3(_A_func); } - -/** Creates a functor of type sigc::const_mem_functor4 which wraps a const method. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline const_mem_functor4 -mem_fun4(T_return (T_obj::*_A_func)(T_arg1,T_arg2,T_arg3,T_arg4) const) -{ return const_mem_functor4(_A_func); } - -/** Creates a functor of type sigc::const_mem_functor5 which wraps a const method. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline const_mem_functor5 -mem_fun5(T_return (T_obj::*_A_func)(T_arg1,T_arg2,T_arg3,T_arg4,T_arg5) const) -{ return const_mem_functor5(_A_func); } - -/** Creates a functor of type sigc::const_mem_functor6 which wraps a const method. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline const_mem_functor6 -mem_fun6(T_return (T_obj::*_A_func)(T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6) const) -{ return const_mem_functor6(_A_func); } - -/** Creates a functor of type sigc::const_mem_functor7 which wraps a const method. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline const_mem_functor7 -mem_fun7(T_return (T_obj::*_A_func)(T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6,T_arg7) const) -{ return const_mem_functor7(_A_func); } - -/** Creates a functor of type sigc::volatile_mem_functor0 which wraps a volatile method. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline volatile_mem_functor0 -mem_fun0(T_return (T_obj::*_A_func)() volatile) -{ return volatile_mem_functor0(_A_func); } - -/** Creates a functor of type sigc::volatile_mem_functor1 which wraps a volatile method. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline volatile_mem_functor1 -mem_fun1(T_return (T_obj::*_A_func)(T_arg1) volatile) -{ return volatile_mem_functor1(_A_func); } - -/** Creates a functor of type sigc::volatile_mem_functor2 which wraps a volatile method. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline volatile_mem_functor2 -mem_fun2(T_return (T_obj::*_A_func)(T_arg1,T_arg2) volatile) -{ return volatile_mem_functor2(_A_func); } - -/** Creates a functor of type sigc::volatile_mem_functor3 which wraps a volatile method. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline volatile_mem_functor3 -mem_fun3(T_return (T_obj::*_A_func)(T_arg1,T_arg2,T_arg3) volatile) -{ return volatile_mem_functor3(_A_func); } - -/** Creates a functor of type sigc::volatile_mem_functor4 which wraps a volatile method. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline volatile_mem_functor4 -mem_fun4(T_return (T_obj::*_A_func)(T_arg1,T_arg2,T_arg3,T_arg4) volatile) -{ return volatile_mem_functor4(_A_func); } - -/** Creates a functor of type sigc::volatile_mem_functor5 which wraps a volatile method. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline volatile_mem_functor5 -mem_fun5(T_return (T_obj::*_A_func)(T_arg1,T_arg2,T_arg3,T_arg4,T_arg5) volatile) -{ return volatile_mem_functor5(_A_func); } - -/** Creates a functor of type sigc::volatile_mem_functor6 which wraps a volatile method. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline volatile_mem_functor6 -mem_fun6(T_return (T_obj::*_A_func)(T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6) volatile) -{ return volatile_mem_functor6(_A_func); } - -/** Creates a functor of type sigc::volatile_mem_functor7 which wraps a volatile method. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline volatile_mem_functor7 -mem_fun7(T_return (T_obj::*_A_func)(T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6,T_arg7) volatile) -{ return volatile_mem_functor7(_A_func); } - -/** Creates a functor of type sigc::const_volatile_mem_functor0 which wraps a const volatile method. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline const_volatile_mem_functor0 -mem_fun0(T_return (T_obj::*_A_func)() const volatile) -{ return const_volatile_mem_functor0(_A_func); } - -/** Creates a functor of type sigc::const_volatile_mem_functor1 which wraps a const volatile method. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline const_volatile_mem_functor1 -mem_fun1(T_return (T_obj::*_A_func)(T_arg1) const volatile) -{ return const_volatile_mem_functor1(_A_func); } - -/** Creates a functor of type sigc::const_volatile_mem_functor2 which wraps a const volatile method. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline const_volatile_mem_functor2 -mem_fun2(T_return (T_obj::*_A_func)(T_arg1,T_arg2) const volatile) -{ return const_volatile_mem_functor2(_A_func); } - -/** Creates a functor of type sigc::const_volatile_mem_functor3 which wraps a const volatile method. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline const_volatile_mem_functor3 -mem_fun3(T_return (T_obj::*_A_func)(T_arg1,T_arg2,T_arg3) const volatile) -{ return const_volatile_mem_functor3(_A_func); } - -/** Creates a functor of type sigc::const_volatile_mem_functor4 which wraps a const volatile method. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline const_volatile_mem_functor4 -mem_fun4(T_return (T_obj::*_A_func)(T_arg1,T_arg2,T_arg3,T_arg4) const volatile) -{ return const_volatile_mem_functor4(_A_func); } - -/** Creates a functor of type sigc::const_volatile_mem_functor5 which wraps a const volatile method. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline const_volatile_mem_functor5 -mem_fun5(T_return (T_obj::*_A_func)(T_arg1,T_arg2,T_arg3,T_arg4,T_arg5) const volatile) -{ return const_volatile_mem_functor5(_A_func); } - -/** Creates a functor of type sigc::const_volatile_mem_functor6 which wraps a const volatile method. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline const_volatile_mem_functor6 -mem_fun6(T_return (T_obj::*_A_func)(T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6) const volatile) -{ return const_volatile_mem_functor6(_A_func); } - -/** Creates a functor of type sigc::const_volatile_mem_functor7 which wraps a const volatile method. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline const_volatile_mem_functor7 -mem_fun7(T_return (T_obj::*_A_func)(T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6,T_arg7) const volatile) -{ return const_volatile_mem_functor7(_A_func); } - -/** Creates a functor of type sigc::bound_mem_functor0 which encapsulates a method and an object instance. - * @param _A_obj Pointer to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes @e _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline bound_mem_functor0 -mem_fun0(/**/ T_obj* _A_obj, T_return (T_obj2::*_A_func)() ) -{ return bound_mem_functor0(_A_obj, _A_func); } - -/** Creates a functor of type sigc::bound_mem_functor0 which encapsulates a method and an object instance. - * @param _A_obj Reference to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes @e _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline bound_mem_functor0 -mem_fun0(/**/ T_obj& _A_obj, T_return (T_obj2::*_A_func)() ) -{ return bound_mem_functor0(_A_obj, _A_func); } - -/** Creates a functor of type sigc::bound_mem_functor1 which encapsulates a method and an object instance. - * @param _A_obj Pointer to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes @e _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline bound_mem_functor1 -mem_fun1(/**/ T_obj* _A_obj, T_return (T_obj2::*_A_func)(T_arg1) ) -{ return bound_mem_functor1(_A_obj, _A_func); } - -/** Creates a functor of type sigc::bound_mem_functor1 which encapsulates a method and an object instance. - * @param _A_obj Reference to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes @e _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline bound_mem_functor1 -mem_fun1(/**/ T_obj& _A_obj, T_return (T_obj2::*_A_func)(T_arg1) ) -{ return bound_mem_functor1(_A_obj, _A_func); } - -/** Creates a functor of type sigc::bound_mem_functor2 which encapsulates a method and an object instance. - * @param _A_obj Pointer to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes @e _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline bound_mem_functor2 -mem_fun2(/**/ T_obj* _A_obj, T_return (T_obj2::*_A_func)(T_arg1,T_arg2) ) -{ return bound_mem_functor2(_A_obj, _A_func); } - -/** Creates a functor of type sigc::bound_mem_functor2 which encapsulates a method and an object instance. - * @param _A_obj Reference to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes @e _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline bound_mem_functor2 -mem_fun2(/**/ T_obj& _A_obj, T_return (T_obj2::*_A_func)(T_arg1,T_arg2) ) -{ return bound_mem_functor2(_A_obj, _A_func); } - -/** Creates a functor of type sigc::bound_mem_functor3 which encapsulates a method and an object instance. - * @param _A_obj Pointer to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes @e _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline bound_mem_functor3 -mem_fun3(/**/ T_obj* _A_obj, T_return (T_obj2::*_A_func)(T_arg1,T_arg2,T_arg3) ) -{ return bound_mem_functor3(_A_obj, _A_func); } - -/** Creates a functor of type sigc::bound_mem_functor3 which encapsulates a method and an object instance. - * @param _A_obj Reference to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes @e _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline bound_mem_functor3 -mem_fun3(/**/ T_obj& _A_obj, T_return (T_obj2::*_A_func)(T_arg1,T_arg2,T_arg3) ) -{ return bound_mem_functor3(_A_obj, _A_func); } - -/** Creates a functor of type sigc::bound_mem_functor4 which encapsulates a method and an object instance. - * @param _A_obj Pointer to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes @e _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline bound_mem_functor4 -mem_fun4(/**/ T_obj* _A_obj, T_return (T_obj2::*_A_func)(T_arg1,T_arg2,T_arg3,T_arg4) ) -{ return bound_mem_functor4(_A_obj, _A_func); } - -/** Creates a functor of type sigc::bound_mem_functor4 which encapsulates a method and an object instance. - * @param _A_obj Reference to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes @e _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline bound_mem_functor4 -mem_fun4(/**/ T_obj& _A_obj, T_return (T_obj2::*_A_func)(T_arg1,T_arg2,T_arg3,T_arg4) ) -{ return bound_mem_functor4(_A_obj, _A_func); } - -/** Creates a functor of type sigc::bound_mem_functor5 which encapsulates a method and an object instance. - * @param _A_obj Pointer to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes @e _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline bound_mem_functor5 -mem_fun5(/**/ T_obj* _A_obj, T_return (T_obj2::*_A_func)(T_arg1,T_arg2,T_arg3,T_arg4,T_arg5) ) -{ return bound_mem_functor5(_A_obj, _A_func); } - -/** Creates a functor of type sigc::bound_mem_functor5 which encapsulates a method and an object instance. - * @param _A_obj Reference to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes @e _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline bound_mem_functor5 -mem_fun5(/**/ T_obj& _A_obj, T_return (T_obj2::*_A_func)(T_arg1,T_arg2,T_arg3,T_arg4,T_arg5) ) -{ return bound_mem_functor5(_A_obj, _A_func); } - -/** Creates a functor of type sigc::bound_mem_functor6 which encapsulates a method and an object instance. - * @param _A_obj Pointer to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes @e _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline bound_mem_functor6 -mem_fun6(/**/ T_obj* _A_obj, T_return (T_obj2::*_A_func)(T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6) ) -{ return bound_mem_functor6(_A_obj, _A_func); } - -/** Creates a functor of type sigc::bound_mem_functor6 which encapsulates a method and an object instance. - * @param _A_obj Reference to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes @e _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline bound_mem_functor6 -mem_fun6(/**/ T_obj& _A_obj, T_return (T_obj2::*_A_func)(T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6) ) -{ return bound_mem_functor6(_A_obj, _A_func); } - -/** Creates a functor of type sigc::bound_mem_functor7 which encapsulates a method and an object instance. - * @param _A_obj Pointer to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes @e _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline bound_mem_functor7 -mem_fun7(/**/ T_obj* _A_obj, T_return (T_obj2::*_A_func)(T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6,T_arg7) ) -{ return bound_mem_functor7(_A_obj, _A_func); } - -/** Creates a functor of type sigc::bound_mem_functor7 which encapsulates a method and an object instance. - * @param _A_obj Reference to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes @e _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline bound_mem_functor7 -mem_fun7(/**/ T_obj& _A_obj, T_return (T_obj2::*_A_func)(T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6,T_arg7) ) -{ return bound_mem_functor7(_A_obj, _A_func); } - -/** Creates a functor of type sigc::bound_const_mem_functor0 which encapsulates a method and an object instance. - * @param _A_obj Pointer to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes @e _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline bound_const_mem_functor0 -mem_fun0(/*const*/ T_obj* _A_obj, T_return (T_obj2::*_A_func)() const) -{ return bound_const_mem_functor0(_A_obj, _A_func); } - -/** Creates a functor of type sigc::bound_const_mem_functor0 which encapsulates a method and an object instance. - * @param _A_obj Reference to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes @e _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline bound_const_mem_functor0 -mem_fun0(/*const*/ T_obj& _A_obj, T_return (T_obj2::*_A_func)() const) -{ return bound_const_mem_functor0(_A_obj, _A_func); } - -/** Creates a functor of type sigc::bound_const_mem_functor1 which encapsulates a method and an object instance. - * @param _A_obj Pointer to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes @e _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline bound_const_mem_functor1 -mem_fun1(/*const*/ T_obj* _A_obj, T_return (T_obj2::*_A_func)(T_arg1) const) -{ return bound_const_mem_functor1(_A_obj, _A_func); } - -/** Creates a functor of type sigc::bound_const_mem_functor1 which encapsulates a method and an object instance. - * @param _A_obj Reference to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes @e _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline bound_const_mem_functor1 -mem_fun1(/*const*/ T_obj& _A_obj, T_return (T_obj2::*_A_func)(T_arg1) const) -{ return bound_const_mem_functor1(_A_obj, _A_func); } - -/** Creates a functor of type sigc::bound_const_mem_functor2 which encapsulates a method and an object instance. - * @param _A_obj Pointer to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes @e _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline bound_const_mem_functor2 -mem_fun2(/*const*/ T_obj* _A_obj, T_return (T_obj2::*_A_func)(T_arg1,T_arg2) const) -{ return bound_const_mem_functor2(_A_obj, _A_func); } - -/** Creates a functor of type sigc::bound_const_mem_functor2 which encapsulates a method and an object instance. - * @param _A_obj Reference to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes @e _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline bound_const_mem_functor2 -mem_fun2(/*const*/ T_obj& _A_obj, T_return (T_obj2::*_A_func)(T_arg1,T_arg2) const) -{ return bound_const_mem_functor2(_A_obj, _A_func); } - -/** Creates a functor of type sigc::bound_const_mem_functor3 which encapsulates a method and an object instance. - * @param _A_obj Pointer to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes @e _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline bound_const_mem_functor3 -mem_fun3(/*const*/ T_obj* _A_obj, T_return (T_obj2::*_A_func)(T_arg1,T_arg2,T_arg3) const) -{ return bound_const_mem_functor3(_A_obj, _A_func); } - -/** Creates a functor of type sigc::bound_const_mem_functor3 which encapsulates a method and an object instance. - * @param _A_obj Reference to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes @e _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline bound_const_mem_functor3 -mem_fun3(/*const*/ T_obj& _A_obj, T_return (T_obj2::*_A_func)(T_arg1,T_arg2,T_arg3) const) -{ return bound_const_mem_functor3(_A_obj, _A_func); } - -/** Creates a functor of type sigc::bound_const_mem_functor4 which encapsulates a method and an object instance. - * @param _A_obj Pointer to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes @e _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline bound_const_mem_functor4 -mem_fun4(/*const*/ T_obj* _A_obj, T_return (T_obj2::*_A_func)(T_arg1,T_arg2,T_arg3,T_arg4) const) -{ return bound_const_mem_functor4(_A_obj, _A_func); } - -/** Creates a functor of type sigc::bound_const_mem_functor4 which encapsulates a method and an object instance. - * @param _A_obj Reference to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes @e _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline bound_const_mem_functor4 -mem_fun4(/*const*/ T_obj& _A_obj, T_return (T_obj2::*_A_func)(T_arg1,T_arg2,T_arg3,T_arg4) const) -{ return bound_const_mem_functor4(_A_obj, _A_func); } - -/** Creates a functor of type sigc::bound_const_mem_functor5 which encapsulates a method and an object instance. - * @param _A_obj Pointer to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes @e _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline bound_const_mem_functor5 -mem_fun5(/*const*/ T_obj* _A_obj, T_return (T_obj2::*_A_func)(T_arg1,T_arg2,T_arg3,T_arg4,T_arg5) const) -{ return bound_const_mem_functor5(_A_obj, _A_func); } - -/** Creates a functor of type sigc::bound_const_mem_functor5 which encapsulates a method and an object instance. - * @param _A_obj Reference to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes @e _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline bound_const_mem_functor5 -mem_fun5(/*const*/ T_obj& _A_obj, T_return (T_obj2::*_A_func)(T_arg1,T_arg2,T_arg3,T_arg4,T_arg5) const) -{ return bound_const_mem_functor5(_A_obj, _A_func); } - -/** Creates a functor of type sigc::bound_const_mem_functor6 which encapsulates a method and an object instance. - * @param _A_obj Pointer to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes @e _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline bound_const_mem_functor6 -mem_fun6(/*const*/ T_obj* _A_obj, T_return (T_obj2::*_A_func)(T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6) const) -{ return bound_const_mem_functor6(_A_obj, _A_func); } - -/** Creates a functor of type sigc::bound_const_mem_functor6 which encapsulates a method and an object instance. - * @param _A_obj Reference to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes @e _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline bound_const_mem_functor6 -mem_fun6(/*const*/ T_obj& _A_obj, T_return (T_obj2::*_A_func)(T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6) const) -{ return bound_const_mem_functor6(_A_obj, _A_func); } - -/** Creates a functor of type sigc::bound_const_mem_functor7 which encapsulates a method and an object instance. - * @param _A_obj Pointer to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes @e _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline bound_const_mem_functor7 -mem_fun7(/*const*/ T_obj* _A_obj, T_return (T_obj2::*_A_func)(T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6,T_arg7) const) -{ return bound_const_mem_functor7(_A_obj, _A_func); } - -/** Creates a functor of type sigc::bound_const_mem_functor7 which encapsulates a method and an object instance. - * @param _A_obj Reference to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes @e _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline bound_const_mem_functor7 -mem_fun7(/*const*/ T_obj& _A_obj, T_return (T_obj2::*_A_func)(T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6,T_arg7) const) -{ return bound_const_mem_functor7(_A_obj, _A_func); } - -/** Creates a functor of type sigc::bound_volatile_mem_functor0 which encapsulates a method and an object instance. - * @param _A_obj Pointer to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes @e _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline bound_volatile_mem_functor0 -mem_fun0(/**/ T_obj* _A_obj, T_return (T_obj2::*_A_func)() volatile) -{ return bound_volatile_mem_functor0(_A_obj, _A_func); } - -/** Creates a functor of type sigc::bound_volatile_mem_functor0 which encapsulates a method and an object instance. - * @param _A_obj Reference to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes @e _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline bound_volatile_mem_functor0 -mem_fun0(/**/ T_obj& _A_obj, T_return (T_obj2::*_A_func)() volatile) -{ return bound_volatile_mem_functor0(_A_obj, _A_func); } - -/** Creates a functor of type sigc::bound_volatile_mem_functor1 which encapsulates a method and an object instance. - * @param _A_obj Pointer to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes @e _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline bound_volatile_mem_functor1 -mem_fun1(/**/ T_obj* _A_obj, T_return (T_obj2::*_A_func)(T_arg1) volatile) -{ return bound_volatile_mem_functor1(_A_obj, _A_func); } - -/** Creates a functor of type sigc::bound_volatile_mem_functor1 which encapsulates a method and an object instance. - * @param _A_obj Reference to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes @e _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline bound_volatile_mem_functor1 -mem_fun1(/**/ T_obj& _A_obj, T_return (T_obj2::*_A_func)(T_arg1) volatile) -{ return bound_volatile_mem_functor1(_A_obj, _A_func); } - -/** Creates a functor of type sigc::bound_volatile_mem_functor2 which encapsulates a method and an object instance. - * @param _A_obj Pointer to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes @e _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline bound_volatile_mem_functor2 -mem_fun2(/**/ T_obj* _A_obj, T_return (T_obj2::*_A_func)(T_arg1,T_arg2) volatile) -{ return bound_volatile_mem_functor2(_A_obj, _A_func); } - -/** Creates a functor of type sigc::bound_volatile_mem_functor2 which encapsulates a method and an object instance. - * @param _A_obj Reference to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes @e _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline bound_volatile_mem_functor2 -mem_fun2(/**/ T_obj& _A_obj, T_return (T_obj2::*_A_func)(T_arg1,T_arg2) volatile) -{ return bound_volatile_mem_functor2(_A_obj, _A_func); } - -/** Creates a functor of type sigc::bound_volatile_mem_functor3 which encapsulates a method and an object instance. - * @param _A_obj Pointer to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes @e _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline bound_volatile_mem_functor3 -mem_fun3(/**/ T_obj* _A_obj, T_return (T_obj2::*_A_func)(T_arg1,T_arg2,T_arg3) volatile) -{ return bound_volatile_mem_functor3(_A_obj, _A_func); } - -/** Creates a functor of type sigc::bound_volatile_mem_functor3 which encapsulates a method and an object instance. - * @param _A_obj Reference to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes @e _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline bound_volatile_mem_functor3 -mem_fun3(/**/ T_obj& _A_obj, T_return (T_obj2::*_A_func)(T_arg1,T_arg2,T_arg3) volatile) -{ return bound_volatile_mem_functor3(_A_obj, _A_func); } - -/** Creates a functor of type sigc::bound_volatile_mem_functor4 which encapsulates a method and an object instance. - * @param _A_obj Pointer to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes @e _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline bound_volatile_mem_functor4 -mem_fun4(/**/ T_obj* _A_obj, T_return (T_obj2::*_A_func)(T_arg1,T_arg2,T_arg3,T_arg4) volatile) -{ return bound_volatile_mem_functor4(_A_obj, _A_func); } - -/** Creates a functor of type sigc::bound_volatile_mem_functor4 which encapsulates a method and an object instance. - * @param _A_obj Reference to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes @e _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline bound_volatile_mem_functor4 -mem_fun4(/**/ T_obj& _A_obj, T_return (T_obj2::*_A_func)(T_arg1,T_arg2,T_arg3,T_arg4) volatile) -{ return bound_volatile_mem_functor4(_A_obj, _A_func); } - -/** Creates a functor of type sigc::bound_volatile_mem_functor5 which encapsulates a method and an object instance. - * @param _A_obj Pointer to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes @e _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline bound_volatile_mem_functor5 -mem_fun5(/**/ T_obj* _A_obj, T_return (T_obj2::*_A_func)(T_arg1,T_arg2,T_arg3,T_arg4,T_arg5) volatile) -{ return bound_volatile_mem_functor5(_A_obj, _A_func); } - -/** Creates a functor of type sigc::bound_volatile_mem_functor5 which encapsulates a method and an object instance. - * @param _A_obj Reference to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes @e _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline bound_volatile_mem_functor5 -mem_fun5(/**/ T_obj& _A_obj, T_return (T_obj2::*_A_func)(T_arg1,T_arg2,T_arg3,T_arg4,T_arg5) volatile) -{ return bound_volatile_mem_functor5(_A_obj, _A_func); } - -/** Creates a functor of type sigc::bound_volatile_mem_functor6 which encapsulates a method and an object instance. - * @param _A_obj Pointer to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes @e _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline bound_volatile_mem_functor6 -mem_fun6(/**/ T_obj* _A_obj, T_return (T_obj2::*_A_func)(T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6) volatile) -{ return bound_volatile_mem_functor6(_A_obj, _A_func); } - -/** Creates a functor of type sigc::bound_volatile_mem_functor6 which encapsulates a method and an object instance. - * @param _A_obj Reference to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes @e _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline bound_volatile_mem_functor6 -mem_fun6(/**/ T_obj& _A_obj, T_return (T_obj2::*_A_func)(T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6) volatile) -{ return bound_volatile_mem_functor6(_A_obj, _A_func); } - -/** Creates a functor of type sigc::bound_volatile_mem_functor7 which encapsulates a method and an object instance. - * @param _A_obj Pointer to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes @e _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline bound_volatile_mem_functor7 -mem_fun7(/**/ T_obj* _A_obj, T_return (T_obj2::*_A_func)(T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6,T_arg7) volatile) -{ return bound_volatile_mem_functor7(_A_obj, _A_func); } - -/** Creates a functor of type sigc::bound_volatile_mem_functor7 which encapsulates a method and an object instance. - * @param _A_obj Reference to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes @e _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline bound_volatile_mem_functor7 -mem_fun7(/**/ T_obj& _A_obj, T_return (T_obj2::*_A_func)(T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6,T_arg7) volatile) -{ return bound_volatile_mem_functor7(_A_obj, _A_func); } - -/** Creates a functor of type sigc::bound_const_volatile_mem_functor0 which encapsulates a method and an object instance. - * @param _A_obj Pointer to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes @e _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline bound_const_volatile_mem_functor0 -mem_fun0(/*const*/ T_obj* _A_obj, T_return (T_obj2::*_A_func)() const volatile) -{ return bound_const_volatile_mem_functor0(_A_obj, _A_func); } - -/** Creates a functor of type sigc::bound_const_volatile_mem_functor0 which encapsulates a method and an object instance. - * @param _A_obj Reference to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes @e _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline bound_const_volatile_mem_functor0 -mem_fun0(/*const*/ T_obj& _A_obj, T_return (T_obj2::*_A_func)() const volatile) -{ return bound_const_volatile_mem_functor0(_A_obj, _A_func); } - -/** Creates a functor of type sigc::bound_const_volatile_mem_functor1 which encapsulates a method and an object instance. - * @param _A_obj Pointer to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes @e _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline bound_const_volatile_mem_functor1 -mem_fun1(/*const*/ T_obj* _A_obj, T_return (T_obj2::*_A_func)(T_arg1) const volatile) -{ return bound_const_volatile_mem_functor1(_A_obj, _A_func); } - -/** Creates a functor of type sigc::bound_const_volatile_mem_functor1 which encapsulates a method and an object instance. - * @param _A_obj Reference to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes @e _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline bound_const_volatile_mem_functor1 -mem_fun1(/*const*/ T_obj& _A_obj, T_return (T_obj2::*_A_func)(T_arg1) const volatile) -{ return bound_const_volatile_mem_functor1(_A_obj, _A_func); } - -/** Creates a functor of type sigc::bound_const_volatile_mem_functor2 which encapsulates a method and an object instance. - * @param _A_obj Pointer to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes @e _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline bound_const_volatile_mem_functor2 -mem_fun2(/*const*/ T_obj* _A_obj, T_return (T_obj2::*_A_func)(T_arg1,T_arg2) const volatile) -{ return bound_const_volatile_mem_functor2(_A_obj, _A_func); } - -/** Creates a functor of type sigc::bound_const_volatile_mem_functor2 which encapsulates a method and an object instance. - * @param _A_obj Reference to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes @e _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline bound_const_volatile_mem_functor2 -mem_fun2(/*const*/ T_obj& _A_obj, T_return (T_obj2::*_A_func)(T_arg1,T_arg2) const volatile) -{ return bound_const_volatile_mem_functor2(_A_obj, _A_func); } - -/** Creates a functor of type sigc::bound_const_volatile_mem_functor3 which encapsulates a method and an object instance. - * @param _A_obj Pointer to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes @e _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline bound_const_volatile_mem_functor3 -mem_fun3(/*const*/ T_obj* _A_obj, T_return (T_obj2::*_A_func)(T_arg1,T_arg2,T_arg3) const volatile) -{ return bound_const_volatile_mem_functor3(_A_obj, _A_func); } - -/** Creates a functor of type sigc::bound_const_volatile_mem_functor3 which encapsulates a method and an object instance. - * @param _A_obj Reference to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes @e _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline bound_const_volatile_mem_functor3 -mem_fun3(/*const*/ T_obj& _A_obj, T_return (T_obj2::*_A_func)(T_arg1,T_arg2,T_arg3) const volatile) -{ return bound_const_volatile_mem_functor3(_A_obj, _A_func); } - -/** Creates a functor of type sigc::bound_const_volatile_mem_functor4 which encapsulates a method and an object instance. - * @param _A_obj Pointer to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes @e _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline bound_const_volatile_mem_functor4 -mem_fun4(/*const*/ T_obj* _A_obj, T_return (T_obj2::*_A_func)(T_arg1,T_arg2,T_arg3,T_arg4) const volatile) -{ return bound_const_volatile_mem_functor4(_A_obj, _A_func); } - -/** Creates a functor of type sigc::bound_const_volatile_mem_functor4 which encapsulates a method and an object instance. - * @param _A_obj Reference to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes @e _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline bound_const_volatile_mem_functor4 -mem_fun4(/*const*/ T_obj& _A_obj, T_return (T_obj2::*_A_func)(T_arg1,T_arg2,T_arg3,T_arg4) const volatile) -{ return bound_const_volatile_mem_functor4(_A_obj, _A_func); } - -/** Creates a functor of type sigc::bound_const_volatile_mem_functor5 which encapsulates a method and an object instance. - * @param _A_obj Pointer to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes @e _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline bound_const_volatile_mem_functor5 -mem_fun5(/*const*/ T_obj* _A_obj, T_return (T_obj2::*_A_func)(T_arg1,T_arg2,T_arg3,T_arg4,T_arg5) const volatile) -{ return bound_const_volatile_mem_functor5(_A_obj, _A_func); } - -/** Creates a functor of type sigc::bound_const_volatile_mem_functor5 which encapsulates a method and an object instance. - * @param _A_obj Reference to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes @e _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline bound_const_volatile_mem_functor5 -mem_fun5(/*const*/ T_obj& _A_obj, T_return (T_obj2::*_A_func)(T_arg1,T_arg2,T_arg3,T_arg4,T_arg5) const volatile) -{ return bound_const_volatile_mem_functor5(_A_obj, _A_func); } - -/** Creates a functor of type sigc::bound_const_volatile_mem_functor6 which encapsulates a method and an object instance. - * @param _A_obj Pointer to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes @e _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline bound_const_volatile_mem_functor6 -mem_fun6(/*const*/ T_obj* _A_obj, T_return (T_obj2::*_A_func)(T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6) const volatile) -{ return bound_const_volatile_mem_functor6(_A_obj, _A_func); } - -/** Creates a functor of type sigc::bound_const_volatile_mem_functor6 which encapsulates a method and an object instance. - * @param _A_obj Reference to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes @e _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline bound_const_volatile_mem_functor6 -mem_fun6(/*const*/ T_obj& _A_obj, T_return (T_obj2::*_A_func)(T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6) const volatile) -{ return bound_const_volatile_mem_functor6(_A_obj, _A_func); } - -/** Creates a functor of type sigc::bound_const_volatile_mem_functor7 which encapsulates a method and an object instance. - * @param _A_obj Pointer to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes @e _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline bound_const_volatile_mem_functor7 -mem_fun7(/*const*/ T_obj* _A_obj, T_return (T_obj2::*_A_func)(T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6,T_arg7) const volatile) -{ return bound_const_volatile_mem_functor7(_A_obj, _A_func); } - -/** Creates a functor of type sigc::bound_const_volatile_mem_functor7 which encapsulates a method and an object instance. - * @param _A_obj Reference to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes @e _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline bound_const_volatile_mem_functor7 -mem_fun7(/*const*/ T_obj& _A_obj, T_return (T_obj2::*_A_func)(T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6,T_arg7) const volatile) -{ return bound_const_volatile_mem_functor7(_A_obj, _A_func); } - - -// unnumbered -/** Creates a functor of type sigc::mem_functor0 which wraps a method. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline mem_functor0 -mem_fun(T_return (T_obj::*_A_func)() ) -{ return mem_functor0(_A_func); } - -/** Creates a functor of type sigc::mem_functor1 which wraps a method. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline mem_functor1 -mem_fun(T_return (T_obj::*_A_func)(T_arg1) ) -{ return mem_functor1(_A_func); } - -/** Creates a functor of type sigc::mem_functor2 which wraps a method. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline mem_functor2 -mem_fun(T_return (T_obj::*_A_func)(T_arg1,T_arg2) ) -{ return mem_functor2(_A_func); } - -/** Creates a functor of type sigc::mem_functor3 which wraps a method. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline mem_functor3 -mem_fun(T_return (T_obj::*_A_func)(T_arg1,T_arg2,T_arg3) ) -{ return mem_functor3(_A_func); } - -/** Creates a functor of type sigc::mem_functor4 which wraps a method. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline mem_functor4 -mem_fun(T_return (T_obj::*_A_func)(T_arg1,T_arg2,T_arg3,T_arg4) ) -{ return mem_functor4(_A_func); } - -/** Creates a functor of type sigc::mem_functor5 which wraps a method. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline mem_functor5 -mem_fun(T_return (T_obj::*_A_func)(T_arg1,T_arg2,T_arg3,T_arg4,T_arg5) ) -{ return mem_functor5(_A_func); } - -/** Creates a functor of type sigc::mem_functor6 which wraps a method. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline mem_functor6 -mem_fun(T_return (T_obj::*_A_func)(T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6) ) -{ return mem_functor6(_A_func); } - -/** Creates a functor of type sigc::mem_functor7 which wraps a method. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline mem_functor7 -mem_fun(T_return (T_obj::*_A_func)(T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6,T_arg7) ) -{ return mem_functor7(_A_func); } - -/** Creates a functor of type sigc::const_mem_functor0 which wraps a const method. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline const_mem_functor0 -mem_fun(T_return (T_obj::*_A_func)() const) -{ return const_mem_functor0(_A_func); } - -/** Creates a functor of type sigc::const_mem_functor1 which wraps a const method. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline const_mem_functor1 -mem_fun(T_return (T_obj::*_A_func)(T_arg1) const) -{ return const_mem_functor1(_A_func); } - -/** Creates a functor of type sigc::const_mem_functor2 which wraps a const method. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline const_mem_functor2 -mem_fun(T_return (T_obj::*_A_func)(T_arg1,T_arg2) const) -{ return const_mem_functor2(_A_func); } - -/** Creates a functor of type sigc::const_mem_functor3 which wraps a const method. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline const_mem_functor3 -mem_fun(T_return (T_obj::*_A_func)(T_arg1,T_arg2,T_arg3) const) -{ return const_mem_functor3(_A_func); } - -/** Creates a functor of type sigc::const_mem_functor4 which wraps a const method. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline const_mem_functor4 -mem_fun(T_return (T_obj::*_A_func)(T_arg1,T_arg2,T_arg3,T_arg4) const) -{ return const_mem_functor4(_A_func); } - -/** Creates a functor of type sigc::const_mem_functor5 which wraps a const method. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline const_mem_functor5 -mem_fun(T_return (T_obj::*_A_func)(T_arg1,T_arg2,T_arg3,T_arg4,T_arg5) const) -{ return const_mem_functor5(_A_func); } - -/** Creates a functor of type sigc::const_mem_functor6 which wraps a const method. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline const_mem_functor6 -mem_fun(T_return (T_obj::*_A_func)(T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6) const) -{ return const_mem_functor6(_A_func); } - -/** Creates a functor of type sigc::const_mem_functor7 which wraps a const method. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline const_mem_functor7 -mem_fun(T_return (T_obj::*_A_func)(T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6,T_arg7) const) -{ return const_mem_functor7(_A_func); } - -/** Creates a functor of type sigc::volatile_mem_functor0 which wraps a volatile method. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline volatile_mem_functor0 -mem_fun(T_return (T_obj::*_A_func)() volatile) -{ return volatile_mem_functor0(_A_func); } - -/** Creates a functor of type sigc::volatile_mem_functor1 which wraps a volatile method. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline volatile_mem_functor1 -mem_fun(T_return (T_obj::*_A_func)(T_arg1) volatile) -{ return volatile_mem_functor1(_A_func); } - -/** Creates a functor of type sigc::volatile_mem_functor2 which wraps a volatile method. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline volatile_mem_functor2 -mem_fun(T_return (T_obj::*_A_func)(T_arg1,T_arg2) volatile) -{ return volatile_mem_functor2(_A_func); } - -/** Creates a functor of type sigc::volatile_mem_functor3 which wraps a volatile method. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline volatile_mem_functor3 -mem_fun(T_return (T_obj::*_A_func)(T_arg1,T_arg2,T_arg3) volatile) -{ return volatile_mem_functor3(_A_func); } - -/** Creates a functor of type sigc::volatile_mem_functor4 which wraps a volatile method. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline volatile_mem_functor4 -mem_fun(T_return (T_obj::*_A_func)(T_arg1,T_arg2,T_arg3,T_arg4) volatile) -{ return volatile_mem_functor4(_A_func); } - -/** Creates a functor of type sigc::volatile_mem_functor5 which wraps a volatile method. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline volatile_mem_functor5 -mem_fun(T_return (T_obj::*_A_func)(T_arg1,T_arg2,T_arg3,T_arg4,T_arg5) volatile) -{ return volatile_mem_functor5(_A_func); } - -/** Creates a functor of type sigc::volatile_mem_functor6 which wraps a volatile method. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline volatile_mem_functor6 -mem_fun(T_return (T_obj::*_A_func)(T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6) volatile) -{ return volatile_mem_functor6(_A_func); } - -/** Creates a functor of type sigc::volatile_mem_functor7 which wraps a volatile method. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline volatile_mem_functor7 -mem_fun(T_return (T_obj::*_A_func)(T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6,T_arg7) volatile) -{ return volatile_mem_functor7(_A_func); } - -/** Creates a functor of type sigc::const_volatile_mem_functor0 which wraps a const volatile method. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline const_volatile_mem_functor0 -mem_fun(T_return (T_obj::*_A_func)() const volatile) -{ return const_volatile_mem_functor0(_A_func); } - -/** Creates a functor of type sigc::const_volatile_mem_functor1 which wraps a const volatile method. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline const_volatile_mem_functor1 -mem_fun(T_return (T_obj::*_A_func)(T_arg1) const volatile) -{ return const_volatile_mem_functor1(_A_func); } - -/** Creates a functor of type sigc::const_volatile_mem_functor2 which wraps a const volatile method. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline const_volatile_mem_functor2 -mem_fun(T_return (T_obj::*_A_func)(T_arg1,T_arg2) const volatile) -{ return const_volatile_mem_functor2(_A_func); } - -/** Creates a functor of type sigc::const_volatile_mem_functor3 which wraps a const volatile method. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline const_volatile_mem_functor3 -mem_fun(T_return (T_obj::*_A_func)(T_arg1,T_arg2,T_arg3) const volatile) -{ return const_volatile_mem_functor3(_A_func); } - -/** Creates a functor of type sigc::const_volatile_mem_functor4 which wraps a const volatile method. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline const_volatile_mem_functor4 -mem_fun(T_return (T_obj::*_A_func)(T_arg1,T_arg2,T_arg3,T_arg4) const volatile) -{ return const_volatile_mem_functor4(_A_func); } - -/** Creates a functor of type sigc::const_volatile_mem_functor5 which wraps a const volatile method. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline const_volatile_mem_functor5 -mem_fun(T_return (T_obj::*_A_func)(T_arg1,T_arg2,T_arg3,T_arg4,T_arg5) const volatile) -{ return const_volatile_mem_functor5(_A_func); } - -/** Creates a functor of type sigc::const_volatile_mem_functor6 which wraps a const volatile method. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline const_volatile_mem_functor6 -mem_fun(T_return (T_obj::*_A_func)(T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6) const volatile) -{ return const_volatile_mem_functor6(_A_func); } - -/** Creates a functor of type sigc::const_volatile_mem_functor7 which wraps a const volatile method. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline const_volatile_mem_functor7 -mem_fun(T_return (T_obj::*_A_func)(T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6,T_arg7) const volatile) -{ return const_volatile_mem_functor7(_A_func); } - -/** Creates a functor of type sigc::bound_mem_functor0 which encapsulates a method and an object instance. - * @param _A_obj Pointer to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes @e _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline bound_mem_functor0 -mem_fun(/**/ T_obj* _A_obj, T_return (T_obj2::*_A_func)() ) -{ return bound_mem_functor0(_A_obj, _A_func); } - -/** Creates a functor of type sigc::bound_mem_functor0 which encapsulates a method and an object instance. - * @param _A_obj Reference to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes @e _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline bound_mem_functor0 -mem_fun(/**/ T_obj& _A_obj, T_return (T_obj2::*_A_func)() ) -{ return bound_mem_functor0(_A_obj, _A_func); } - -/** Creates a functor of type sigc::bound_mem_functor1 which encapsulates a method and an object instance. - * @param _A_obj Pointer to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes @e _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline bound_mem_functor1 -mem_fun(/**/ T_obj* _A_obj, T_return (T_obj2::*_A_func)(T_arg1) ) -{ return bound_mem_functor1(_A_obj, _A_func); } - -/** Creates a functor of type sigc::bound_mem_functor1 which encapsulates a method and an object instance. - * @param _A_obj Reference to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes @e _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline bound_mem_functor1 -mem_fun(/**/ T_obj& _A_obj, T_return (T_obj2::*_A_func)(T_arg1) ) -{ return bound_mem_functor1(_A_obj, _A_func); } - -/** Creates a functor of type sigc::bound_mem_functor2 which encapsulates a method and an object instance. - * @param _A_obj Pointer to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes @e _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline bound_mem_functor2 -mem_fun(/**/ T_obj* _A_obj, T_return (T_obj2::*_A_func)(T_arg1,T_arg2) ) -{ return bound_mem_functor2(_A_obj, _A_func); } - -/** Creates a functor of type sigc::bound_mem_functor2 which encapsulates a method and an object instance. - * @param _A_obj Reference to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes @e _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline bound_mem_functor2 -mem_fun(/**/ T_obj& _A_obj, T_return (T_obj2::*_A_func)(T_arg1,T_arg2) ) -{ return bound_mem_functor2(_A_obj, _A_func); } - -/** Creates a functor of type sigc::bound_mem_functor3 which encapsulates a method and an object instance. - * @param _A_obj Pointer to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes @e _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline bound_mem_functor3 -mem_fun(/**/ T_obj* _A_obj, T_return (T_obj2::*_A_func)(T_arg1,T_arg2,T_arg3) ) -{ return bound_mem_functor3(_A_obj, _A_func); } - -/** Creates a functor of type sigc::bound_mem_functor3 which encapsulates a method and an object instance. - * @param _A_obj Reference to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes @e _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline bound_mem_functor3 -mem_fun(/**/ T_obj& _A_obj, T_return (T_obj2::*_A_func)(T_arg1,T_arg2,T_arg3) ) -{ return bound_mem_functor3(_A_obj, _A_func); } - -/** Creates a functor of type sigc::bound_mem_functor4 which encapsulates a method and an object instance. - * @param _A_obj Pointer to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes @e _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline bound_mem_functor4 -mem_fun(/**/ T_obj* _A_obj, T_return (T_obj2::*_A_func)(T_arg1,T_arg2,T_arg3,T_arg4) ) -{ return bound_mem_functor4(_A_obj, _A_func); } - -/** Creates a functor of type sigc::bound_mem_functor4 which encapsulates a method and an object instance. - * @param _A_obj Reference to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes @e _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline bound_mem_functor4 -mem_fun(/**/ T_obj& _A_obj, T_return (T_obj2::*_A_func)(T_arg1,T_arg2,T_arg3,T_arg4) ) -{ return bound_mem_functor4(_A_obj, _A_func); } - -/** Creates a functor of type sigc::bound_mem_functor5 which encapsulates a method and an object instance. - * @param _A_obj Pointer to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes @e _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline bound_mem_functor5 -mem_fun(/**/ T_obj* _A_obj, T_return (T_obj2::*_A_func)(T_arg1,T_arg2,T_arg3,T_arg4,T_arg5) ) -{ return bound_mem_functor5(_A_obj, _A_func); } - -/** Creates a functor of type sigc::bound_mem_functor5 which encapsulates a method and an object instance. - * @param _A_obj Reference to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes @e _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline bound_mem_functor5 -mem_fun(/**/ T_obj& _A_obj, T_return (T_obj2::*_A_func)(T_arg1,T_arg2,T_arg3,T_arg4,T_arg5) ) -{ return bound_mem_functor5(_A_obj, _A_func); } - -/** Creates a functor of type sigc::bound_mem_functor6 which encapsulates a method and an object instance. - * @param _A_obj Pointer to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes @e _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline bound_mem_functor6 -mem_fun(/**/ T_obj* _A_obj, T_return (T_obj2::*_A_func)(T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6) ) -{ return bound_mem_functor6(_A_obj, _A_func); } - -/** Creates a functor of type sigc::bound_mem_functor6 which encapsulates a method and an object instance. - * @param _A_obj Reference to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes @e _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline bound_mem_functor6 -mem_fun(/**/ T_obj& _A_obj, T_return (T_obj2::*_A_func)(T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6) ) -{ return bound_mem_functor6(_A_obj, _A_func); } - -/** Creates a functor of type sigc::bound_mem_functor7 which encapsulates a method and an object instance. - * @param _A_obj Pointer to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes @e _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline bound_mem_functor7 -mem_fun(/**/ T_obj* _A_obj, T_return (T_obj2::*_A_func)(T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6,T_arg7) ) -{ return bound_mem_functor7(_A_obj, _A_func); } - -/** Creates a functor of type sigc::bound_mem_functor7 which encapsulates a method and an object instance. - * @param _A_obj Reference to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes @e _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline bound_mem_functor7 -mem_fun(/**/ T_obj& _A_obj, T_return (T_obj2::*_A_func)(T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6,T_arg7) ) -{ return bound_mem_functor7(_A_obj, _A_func); } - -/** Creates a functor of type sigc::bound_const_mem_functor0 which encapsulates a method and an object instance. - * @param _A_obj Pointer to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes @e _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline bound_const_mem_functor0 -mem_fun(/*const*/ T_obj* _A_obj, T_return (T_obj2::*_A_func)() const) -{ return bound_const_mem_functor0(_A_obj, _A_func); } - -/** Creates a functor of type sigc::bound_const_mem_functor0 which encapsulates a method and an object instance. - * @param _A_obj Reference to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes @e _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline bound_const_mem_functor0 -mem_fun(/*const*/ T_obj& _A_obj, T_return (T_obj2::*_A_func)() const) -{ return bound_const_mem_functor0(_A_obj, _A_func); } - -/** Creates a functor of type sigc::bound_const_mem_functor1 which encapsulates a method and an object instance. - * @param _A_obj Pointer to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes @e _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline bound_const_mem_functor1 -mem_fun(/*const*/ T_obj* _A_obj, T_return (T_obj2::*_A_func)(T_arg1) const) -{ return bound_const_mem_functor1(_A_obj, _A_func); } - -/** Creates a functor of type sigc::bound_const_mem_functor1 which encapsulates a method and an object instance. - * @param _A_obj Reference to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes @e _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline bound_const_mem_functor1 -mem_fun(/*const*/ T_obj& _A_obj, T_return (T_obj2::*_A_func)(T_arg1) const) -{ return bound_const_mem_functor1(_A_obj, _A_func); } - -/** Creates a functor of type sigc::bound_const_mem_functor2 which encapsulates a method and an object instance. - * @param _A_obj Pointer to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes @e _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline bound_const_mem_functor2 -mem_fun(/*const*/ T_obj* _A_obj, T_return (T_obj2::*_A_func)(T_arg1,T_arg2) const) -{ return bound_const_mem_functor2(_A_obj, _A_func); } - -/** Creates a functor of type sigc::bound_const_mem_functor2 which encapsulates a method and an object instance. - * @param _A_obj Reference to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes @e _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline bound_const_mem_functor2 -mem_fun(/*const*/ T_obj& _A_obj, T_return (T_obj2::*_A_func)(T_arg1,T_arg2) const) -{ return bound_const_mem_functor2(_A_obj, _A_func); } - -/** Creates a functor of type sigc::bound_const_mem_functor3 which encapsulates a method and an object instance. - * @param _A_obj Pointer to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes @e _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline bound_const_mem_functor3 -mem_fun(/*const*/ T_obj* _A_obj, T_return (T_obj2::*_A_func)(T_arg1,T_arg2,T_arg3) const) -{ return bound_const_mem_functor3(_A_obj, _A_func); } - -/** Creates a functor of type sigc::bound_const_mem_functor3 which encapsulates a method and an object instance. - * @param _A_obj Reference to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes @e _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline bound_const_mem_functor3 -mem_fun(/*const*/ T_obj& _A_obj, T_return (T_obj2::*_A_func)(T_arg1,T_arg2,T_arg3) const) -{ return bound_const_mem_functor3(_A_obj, _A_func); } - -/** Creates a functor of type sigc::bound_const_mem_functor4 which encapsulates a method and an object instance. - * @param _A_obj Pointer to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes @e _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline bound_const_mem_functor4 -mem_fun(/*const*/ T_obj* _A_obj, T_return (T_obj2::*_A_func)(T_arg1,T_arg2,T_arg3,T_arg4) const) -{ return bound_const_mem_functor4(_A_obj, _A_func); } - -/** Creates a functor of type sigc::bound_const_mem_functor4 which encapsulates a method and an object instance. - * @param _A_obj Reference to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes @e _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline bound_const_mem_functor4 -mem_fun(/*const*/ T_obj& _A_obj, T_return (T_obj2::*_A_func)(T_arg1,T_arg2,T_arg3,T_arg4) const) -{ return bound_const_mem_functor4(_A_obj, _A_func); } - -/** Creates a functor of type sigc::bound_const_mem_functor5 which encapsulates a method and an object instance. - * @param _A_obj Pointer to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes @e _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline bound_const_mem_functor5 -mem_fun(/*const*/ T_obj* _A_obj, T_return (T_obj2::*_A_func)(T_arg1,T_arg2,T_arg3,T_arg4,T_arg5) const) -{ return bound_const_mem_functor5(_A_obj, _A_func); } - -/** Creates a functor of type sigc::bound_const_mem_functor5 which encapsulates a method and an object instance. - * @param _A_obj Reference to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes @e _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline bound_const_mem_functor5 -mem_fun(/*const*/ T_obj& _A_obj, T_return (T_obj2::*_A_func)(T_arg1,T_arg2,T_arg3,T_arg4,T_arg5) const) -{ return bound_const_mem_functor5(_A_obj, _A_func); } - -/** Creates a functor of type sigc::bound_const_mem_functor6 which encapsulates a method and an object instance. - * @param _A_obj Pointer to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes @e _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline bound_const_mem_functor6 -mem_fun(/*const*/ T_obj* _A_obj, T_return (T_obj2::*_A_func)(T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6) const) -{ return bound_const_mem_functor6(_A_obj, _A_func); } - -/** Creates a functor of type sigc::bound_const_mem_functor6 which encapsulates a method and an object instance. - * @param _A_obj Reference to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes @e _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline bound_const_mem_functor6 -mem_fun(/*const*/ T_obj& _A_obj, T_return (T_obj2::*_A_func)(T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6) const) -{ return bound_const_mem_functor6(_A_obj, _A_func); } - -/** Creates a functor of type sigc::bound_const_mem_functor7 which encapsulates a method and an object instance. - * @param _A_obj Pointer to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes @e _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline bound_const_mem_functor7 -mem_fun(/*const*/ T_obj* _A_obj, T_return (T_obj2::*_A_func)(T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6,T_arg7) const) -{ return bound_const_mem_functor7(_A_obj, _A_func); } - -/** Creates a functor of type sigc::bound_const_mem_functor7 which encapsulates a method and an object instance. - * @param _A_obj Reference to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes @e _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline bound_const_mem_functor7 -mem_fun(/*const*/ T_obj& _A_obj, T_return (T_obj2::*_A_func)(T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6,T_arg7) const) -{ return bound_const_mem_functor7(_A_obj, _A_func); } - -/** Creates a functor of type sigc::bound_volatile_mem_functor0 which encapsulates a method and an object instance. - * @param _A_obj Pointer to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes @e _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline bound_volatile_mem_functor0 -mem_fun(/**/ T_obj* _A_obj, T_return (T_obj2::*_A_func)() volatile) -{ return bound_volatile_mem_functor0(_A_obj, _A_func); } - -/** Creates a functor of type sigc::bound_volatile_mem_functor0 which encapsulates a method and an object instance. - * @param _A_obj Reference to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes @e _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline bound_volatile_mem_functor0 -mem_fun(/**/ T_obj& _A_obj, T_return (T_obj2::*_A_func)() volatile) -{ return bound_volatile_mem_functor0(_A_obj, _A_func); } - -/** Creates a functor of type sigc::bound_volatile_mem_functor1 which encapsulates a method and an object instance. - * @param _A_obj Pointer to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes @e _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline bound_volatile_mem_functor1 -mem_fun(/**/ T_obj* _A_obj, T_return (T_obj2::*_A_func)(T_arg1) volatile) -{ return bound_volatile_mem_functor1(_A_obj, _A_func); } - -/** Creates a functor of type sigc::bound_volatile_mem_functor1 which encapsulates a method and an object instance. - * @param _A_obj Reference to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes @e _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline bound_volatile_mem_functor1 -mem_fun(/**/ T_obj& _A_obj, T_return (T_obj2::*_A_func)(T_arg1) volatile) -{ return bound_volatile_mem_functor1(_A_obj, _A_func); } - -/** Creates a functor of type sigc::bound_volatile_mem_functor2 which encapsulates a method and an object instance. - * @param _A_obj Pointer to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes @e _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline bound_volatile_mem_functor2 -mem_fun(/**/ T_obj* _A_obj, T_return (T_obj2::*_A_func)(T_arg1,T_arg2) volatile) -{ return bound_volatile_mem_functor2(_A_obj, _A_func); } - -/** Creates a functor of type sigc::bound_volatile_mem_functor2 which encapsulates a method and an object instance. - * @param _A_obj Reference to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes @e _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline bound_volatile_mem_functor2 -mem_fun(/**/ T_obj& _A_obj, T_return (T_obj2::*_A_func)(T_arg1,T_arg2) volatile) -{ return bound_volatile_mem_functor2(_A_obj, _A_func); } - -/** Creates a functor of type sigc::bound_volatile_mem_functor3 which encapsulates a method and an object instance. - * @param _A_obj Pointer to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes @e _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline bound_volatile_mem_functor3 -mem_fun(/**/ T_obj* _A_obj, T_return (T_obj2::*_A_func)(T_arg1,T_arg2,T_arg3) volatile) -{ return bound_volatile_mem_functor3(_A_obj, _A_func); } - -/** Creates a functor of type sigc::bound_volatile_mem_functor3 which encapsulates a method and an object instance. - * @param _A_obj Reference to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes @e _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline bound_volatile_mem_functor3 -mem_fun(/**/ T_obj& _A_obj, T_return (T_obj2::*_A_func)(T_arg1,T_arg2,T_arg3) volatile) -{ return bound_volatile_mem_functor3(_A_obj, _A_func); } - -/** Creates a functor of type sigc::bound_volatile_mem_functor4 which encapsulates a method and an object instance. - * @param _A_obj Pointer to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes @e _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline bound_volatile_mem_functor4 -mem_fun(/**/ T_obj* _A_obj, T_return (T_obj2::*_A_func)(T_arg1,T_arg2,T_arg3,T_arg4) volatile) -{ return bound_volatile_mem_functor4(_A_obj, _A_func); } - -/** Creates a functor of type sigc::bound_volatile_mem_functor4 which encapsulates a method and an object instance. - * @param _A_obj Reference to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes @e _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline bound_volatile_mem_functor4 -mem_fun(/**/ T_obj& _A_obj, T_return (T_obj2::*_A_func)(T_arg1,T_arg2,T_arg3,T_arg4) volatile) -{ return bound_volatile_mem_functor4(_A_obj, _A_func); } - -/** Creates a functor of type sigc::bound_volatile_mem_functor5 which encapsulates a method and an object instance. - * @param _A_obj Pointer to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes @e _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline bound_volatile_mem_functor5 -mem_fun(/**/ T_obj* _A_obj, T_return (T_obj2::*_A_func)(T_arg1,T_arg2,T_arg3,T_arg4,T_arg5) volatile) -{ return bound_volatile_mem_functor5(_A_obj, _A_func); } - -/** Creates a functor of type sigc::bound_volatile_mem_functor5 which encapsulates a method and an object instance. - * @param _A_obj Reference to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes @e _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline bound_volatile_mem_functor5 -mem_fun(/**/ T_obj& _A_obj, T_return (T_obj2::*_A_func)(T_arg1,T_arg2,T_arg3,T_arg4,T_arg5) volatile) -{ return bound_volatile_mem_functor5(_A_obj, _A_func); } - -/** Creates a functor of type sigc::bound_volatile_mem_functor6 which encapsulates a method and an object instance. - * @param _A_obj Pointer to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes @e _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline bound_volatile_mem_functor6 -mem_fun(/**/ T_obj* _A_obj, T_return (T_obj2::*_A_func)(T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6) volatile) -{ return bound_volatile_mem_functor6(_A_obj, _A_func); } - -/** Creates a functor of type sigc::bound_volatile_mem_functor6 which encapsulates a method and an object instance. - * @param _A_obj Reference to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes @e _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline bound_volatile_mem_functor6 -mem_fun(/**/ T_obj& _A_obj, T_return (T_obj2::*_A_func)(T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6) volatile) -{ return bound_volatile_mem_functor6(_A_obj, _A_func); } - -/** Creates a functor of type sigc::bound_volatile_mem_functor7 which encapsulates a method and an object instance. - * @param _A_obj Pointer to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes @e _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline bound_volatile_mem_functor7 -mem_fun(/**/ T_obj* _A_obj, T_return (T_obj2::*_A_func)(T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6,T_arg7) volatile) -{ return bound_volatile_mem_functor7(_A_obj, _A_func); } - -/** Creates a functor of type sigc::bound_volatile_mem_functor7 which encapsulates a method and an object instance. - * @param _A_obj Reference to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes @e _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline bound_volatile_mem_functor7 -mem_fun(/**/ T_obj& _A_obj, T_return (T_obj2::*_A_func)(T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6,T_arg7) volatile) -{ return bound_volatile_mem_functor7(_A_obj, _A_func); } - -/** Creates a functor of type sigc::bound_const_volatile_mem_functor0 which encapsulates a method and an object instance. - * @param _A_obj Pointer to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes @e _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline bound_const_volatile_mem_functor0 -mem_fun(/*const*/ T_obj* _A_obj, T_return (T_obj2::*_A_func)() const volatile) -{ return bound_const_volatile_mem_functor0(_A_obj, _A_func); } - -/** Creates a functor of type sigc::bound_const_volatile_mem_functor0 which encapsulates a method and an object instance. - * @param _A_obj Reference to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes @e _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline bound_const_volatile_mem_functor0 -mem_fun(/*const*/ T_obj& _A_obj, T_return (T_obj2::*_A_func)() const volatile) -{ return bound_const_volatile_mem_functor0(_A_obj, _A_func); } - -/** Creates a functor of type sigc::bound_const_volatile_mem_functor1 which encapsulates a method and an object instance. - * @param _A_obj Pointer to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes @e _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline bound_const_volatile_mem_functor1 -mem_fun(/*const*/ T_obj* _A_obj, T_return (T_obj2::*_A_func)(T_arg1) const volatile) -{ return bound_const_volatile_mem_functor1(_A_obj, _A_func); } - -/** Creates a functor of type sigc::bound_const_volatile_mem_functor1 which encapsulates a method and an object instance. - * @param _A_obj Reference to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes @e _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline bound_const_volatile_mem_functor1 -mem_fun(/*const*/ T_obj& _A_obj, T_return (T_obj2::*_A_func)(T_arg1) const volatile) -{ return bound_const_volatile_mem_functor1(_A_obj, _A_func); } - -/** Creates a functor of type sigc::bound_const_volatile_mem_functor2 which encapsulates a method and an object instance. - * @param _A_obj Pointer to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes @e _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline bound_const_volatile_mem_functor2 -mem_fun(/*const*/ T_obj* _A_obj, T_return (T_obj2::*_A_func)(T_arg1,T_arg2) const volatile) -{ return bound_const_volatile_mem_functor2(_A_obj, _A_func); } - -/** Creates a functor of type sigc::bound_const_volatile_mem_functor2 which encapsulates a method and an object instance. - * @param _A_obj Reference to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes @e _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline bound_const_volatile_mem_functor2 -mem_fun(/*const*/ T_obj& _A_obj, T_return (T_obj2::*_A_func)(T_arg1,T_arg2) const volatile) -{ return bound_const_volatile_mem_functor2(_A_obj, _A_func); } - -/** Creates a functor of type sigc::bound_const_volatile_mem_functor3 which encapsulates a method and an object instance. - * @param _A_obj Pointer to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes @e _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline bound_const_volatile_mem_functor3 -mem_fun(/*const*/ T_obj* _A_obj, T_return (T_obj2::*_A_func)(T_arg1,T_arg2,T_arg3) const volatile) -{ return bound_const_volatile_mem_functor3(_A_obj, _A_func); } - -/** Creates a functor of type sigc::bound_const_volatile_mem_functor3 which encapsulates a method and an object instance. - * @param _A_obj Reference to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes @e _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline bound_const_volatile_mem_functor3 -mem_fun(/*const*/ T_obj& _A_obj, T_return (T_obj2::*_A_func)(T_arg1,T_arg2,T_arg3) const volatile) -{ return bound_const_volatile_mem_functor3(_A_obj, _A_func); } - -/** Creates a functor of type sigc::bound_const_volatile_mem_functor4 which encapsulates a method and an object instance. - * @param _A_obj Pointer to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes @e _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline bound_const_volatile_mem_functor4 -mem_fun(/*const*/ T_obj* _A_obj, T_return (T_obj2::*_A_func)(T_arg1,T_arg2,T_arg3,T_arg4) const volatile) -{ return bound_const_volatile_mem_functor4(_A_obj, _A_func); } - -/** Creates a functor of type sigc::bound_const_volatile_mem_functor4 which encapsulates a method and an object instance. - * @param _A_obj Reference to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes @e _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline bound_const_volatile_mem_functor4 -mem_fun(/*const*/ T_obj& _A_obj, T_return (T_obj2::*_A_func)(T_arg1,T_arg2,T_arg3,T_arg4) const volatile) -{ return bound_const_volatile_mem_functor4(_A_obj, _A_func); } - -/** Creates a functor of type sigc::bound_const_volatile_mem_functor5 which encapsulates a method and an object instance. - * @param _A_obj Pointer to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes @e _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline bound_const_volatile_mem_functor5 -mem_fun(/*const*/ T_obj* _A_obj, T_return (T_obj2::*_A_func)(T_arg1,T_arg2,T_arg3,T_arg4,T_arg5) const volatile) -{ return bound_const_volatile_mem_functor5(_A_obj, _A_func); } - -/** Creates a functor of type sigc::bound_const_volatile_mem_functor5 which encapsulates a method and an object instance. - * @param _A_obj Reference to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes @e _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline bound_const_volatile_mem_functor5 -mem_fun(/*const*/ T_obj& _A_obj, T_return (T_obj2::*_A_func)(T_arg1,T_arg2,T_arg3,T_arg4,T_arg5) const volatile) -{ return bound_const_volatile_mem_functor5(_A_obj, _A_func); } - -/** Creates a functor of type sigc::bound_const_volatile_mem_functor6 which encapsulates a method and an object instance. - * @param _A_obj Pointer to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes @e _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline bound_const_volatile_mem_functor6 -mem_fun(/*const*/ T_obj* _A_obj, T_return (T_obj2::*_A_func)(T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6) const volatile) -{ return bound_const_volatile_mem_functor6(_A_obj, _A_func); } - -/** Creates a functor of type sigc::bound_const_volatile_mem_functor6 which encapsulates a method and an object instance. - * @param _A_obj Reference to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes @e _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline bound_const_volatile_mem_functor6 -mem_fun(/*const*/ T_obj& _A_obj, T_return (T_obj2::*_A_func)(T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6) const volatile) -{ return bound_const_volatile_mem_functor6(_A_obj, _A_func); } - -/** Creates a functor of type sigc::bound_const_volatile_mem_functor7 which encapsulates a method and an object instance. - * @param _A_obj Pointer to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes @e _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline bound_const_volatile_mem_functor7 -mem_fun(/*const*/ T_obj* _A_obj, T_return (T_obj2::*_A_func)(T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6,T_arg7) const volatile) -{ return bound_const_volatile_mem_functor7(_A_obj, _A_func); } - -/** Creates a functor of type sigc::bound_const_volatile_mem_functor7 which encapsulates a method and an object instance. - * @param _A_obj Reference to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes @e _A_func on invokation. - * - * @ingroup mem_fun - */ -template -inline bound_const_volatile_mem_functor7 -mem_fun(/*const*/ T_obj& _A_obj, T_return (T_obj2::*_A_func)(T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6,T_arg7) const volatile) -{ return bound_const_volatile_mem_functor7(_A_obj, _A_func); } - - -} /* namespace sigc */ -#endif /* _SIGC_FUNCTORS_MACROS_MEM_FUNHM4_ */ diff --git a/libs/sigc++2/sigc++/functors/ptr_fun.h b/libs/sigc++2/sigc++/functors/ptr_fun.h deleted file mode 100644 index 5ab6b5ab96..0000000000 --- a/libs/sigc++2/sigc++/functors/ptr_fun.h +++ /dev/null @@ -1,542 +0,0 @@ -// -*- c++ -*- -/* Do not edit! -- generated file */ - -#ifndef _SIGC_FUNCTORS_MACROS_PTR_FUNHM4_ -#define _SIGC_FUNCTORS_MACROS_PTR_FUNHM4_ -#include -#include - -namespace sigc { - -/** @defgroup ptr_fun ptr_fun() - * ptr_fun() is used to convert a pointer to a function to a functor. - * If the function pointer is to an overloaded type, you must specify - * the types using template arguments starting with the first argument. - * It is not necessary to supply the return type. - * - * @par Example: - * @code - * void foo(int) {} - * sigc::slot sl = sigc::ptr_fun(&foo); - * @endcode - * - * Use ptr_fun#() if there is an abiguity as to the number of arguments. - * - * @par Example: - * @code - * void foo(int) {} // choose this one - * void foo(float) {} - * void foo(int, int) {} - * sigc::slot sl = sigc::ptr_fun1(&foo); - * @endcode - * - * ptr_fun() can also be used to convert a pointer to a static member - * function to a functor, like so: - * - * @par Example: - * @code - * struct foo - * { - * static void bar(int) {} - * }; - * sigc::slot sl = sigc::ptr_fun(&foo::bar); - * @endcode - * - * @ingroup functors - */ - -/** pointer_functor0 wraps existing non-member functions with 0 argument(s). - * Use the convenience function ptr_fun() to create an instance of pointer_functor0. - * - * The following template arguments are used: - * - @e T_return The return type of operator()(). - * - * @ingroup ptr_fun - */ -template -class pointer_functor0 : public functor_base -{ - typedef T_return (*function_type)(); -protected: - function_type func_ptr_; -public: - typedef T_return result_type; - - /// Constructs an invalid functor. - pointer_functor0() {} - - /** Constructs a pointer_functor0 object that wraps an existing function. - * @param _A_func Pointer to function that will be invoked from operator()(). - */ - explicit pointer_functor0(function_type _A_func): func_ptr_(_A_func) {} - - /** Execute the wrapped function. - * @return The return value of the function invocation. - */ - T_return operator()() const - { return func_ptr_(); } -}; - -/** pointer_functor1 wraps existing non-member functions with 1 argument(s). - * Use the convenience function ptr_fun() to create an instance of pointer_functor1. - * - * The following template arguments are used: - * - @e T_arg1 Argument type used in the definition of operator()(). - * - @e T_return The return type of operator()(). - * - * @ingroup ptr_fun - */ -template -class pointer_functor1 : public functor_base -{ - typedef T_return (*function_type)(T_arg1); -protected: - function_type func_ptr_; -public: - typedef T_return result_type; - - /// Constructs an invalid functor. - pointer_functor1() {} - - /** Constructs a pointer_functor1 object that wraps an existing function. - * @param _A_func Pointer to function that will be invoked from operator()(). - */ - explicit pointer_functor1(function_type _A_func): func_ptr_(_A_func) {} - - /** Execute the wrapped function. - * @param _A_a1 Argument to be passed on to the function. - * @return The return value of the function invocation. - */ - T_return operator()(typename type_trait::take _A_a1) const - { return func_ptr_(_A_a1); } -}; - -/** pointer_functor2 wraps existing non-member functions with 2 argument(s). - * Use the convenience function ptr_fun() to create an instance of pointer_functor2. - * - * The following template arguments are used: - * - @e T_arg1 Argument type used in the definition of operator()(). - * - @e T_arg2 Argument type used in the definition of operator()(). - * - @e T_return The return type of operator()(). - * - * @ingroup ptr_fun - */ -template -class pointer_functor2 : public functor_base -{ - typedef T_return (*function_type)(T_arg1,T_arg2); -protected: - function_type func_ptr_; -public: - typedef T_return result_type; - - /// Constructs an invalid functor. - pointer_functor2() {} - - /** Constructs a pointer_functor2 object that wraps an existing function. - * @param _A_func Pointer to function that will be invoked from operator()(). - */ - explicit pointer_functor2(function_type _A_func): func_ptr_(_A_func) {} - - /** Execute the wrapped function. - * @param _A_a1 Argument to be passed on to the function. - * @param _A_a2 Argument to be passed on to the function. - * @return The return value of the function invocation. - */ - T_return operator()(typename type_trait::take _A_a1,typename type_trait::take _A_a2) const - { return func_ptr_(_A_a1,_A_a2); } -}; - -/** pointer_functor3 wraps existing non-member functions with 3 argument(s). - * Use the convenience function ptr_fun() to create an instance of pointer_functor3. - * - * The following template arguments are used: - * - @e T_arg1 Argument type used in the definition of operator()(). - * - @e T_arg2 Argument type used in the definition of operator()(). - * - @e T_arg3 Argument type used in the definition of operator()(). - * - @e T_return The return type of operator()(). - * - * @ingroup ptr_fun - */ -template -class pointer_functor3 : public functor_base -{ - typedef T_return (*function_type)(T_arg1,T_arg2,T_arg3); -protected: - function_type func_ptr_; -public: - typedef T_return result_type; - - /// Constructs an invalid functor. - pointer_functor3() {} - - /** Constructs a pointer_functor3 object that wraps an existing function. - * @param _A_func Pointer to function that will be invoked from operator()(). - */ - explicit pointer_functor3(function_type _A_func): func_ptr_(_A_func) {} - - /** Execute the wrapped function. - * @param _A_a1 Argument to be passed on to the function. - * @param _A_a2 Argument to be passed on to the function. - * @param _A_a3 Argument to be passed on to the function. - * @return The return value of the function invocation. - */ - T_return operator()(typename type_trait::take _A_a1,typename type_trait::take _A_a2,typename type_trait::take _A_a3) const - { return func_ptr_(_A_a1,_A_a2,_A_a3); } -}; - -/** pointer_functor4 wraps existing non-member functions with 4 argument(s). - * Use the convenience function ptr_fun() to create an instance of pointer_functor4. - * - * The following template arguments are used: - * - @e T_arg1 Argument type used in the definition of operator()(). - * - @e T_arg2 Argument type used in the definition of operator()(). - * - @e T_arg3 Argument type used in the definition of operator()(). - * - @e T_arg4 Argument type used in the definition of operator()(). - * - @e T_return The return type of operator()(). - * - * @ingroup ptr_fun - */ -template -class pointer_functor4 : public functor_base -{ - typedef T_return (*function_type)(T_arg1,T_arg2,T_arg3,T_arg4); -protected: - function_type func_ptr_; -public: - typedef T_return result_type; - - /// Constructs an invalid functor. - pointer_functor4() {} - - /** Constructs a pointer_functor4 object that wraps an existing function. - * @param _A_func Pointer to function that will be invoked from operator()(). - */ - explicit pointer_functor4(function_type _A_func): func_ptr_(_A_func) {} - - /** Execute the wrapped function. - * @param _A_a1 Argument to be passed on to the function. - * @param _A_a2 Argument to be passed on to the function. - * @param _A_a3 Argument to be passed on to the function. - * @param _A_a4 Argument to be passed on to the function. - * @return The return value of the function invocation. - */ - T_return operator()(typename type_trait::take _A_a1,typename type_trait::take _A_a2,typename type_trait::take _A_a3,typename type_trait::take _A_a4) const - { return func_ptr_(_A_a1,_A_a2,_A_a3,_A_a4); } -}; - -/** pointer_functor5 wraps existing non-member functions with 5 argument(s). - * Use the convenience function ptr_fun() to create an instance of pointer_functor5. - * - * The following template arguments are used: - * - @e T_arg1 Argument type used in the definition of operator()(). - * - @e T_arg2 Argument type used in the definition of operator()(). - * - @e T_arg3 Argument type used in the definition of operator()(). - * - @e T_arg4 Argument type used in the definition of operator()(). - * - @e T_arg5 Argument type used in the definition of operator()(). - * - @e T_return The return type of operator()(). - * - * @ingroup ptr_fun - */ -template -class pointer_functor5 : public functor_base -{ - typedef T_return (*function_type)(T_arg1,T_arg2,T_arg3,T_arg4,T_arg5); -protected: - function_type func_ptr_; -public: - typedef T_return result_type; - - /// Constructs an invalid functor. - pointer_functor5() {} - - /** Constructs a pointer_functor5 object that wraps an existing function. - * @param _A_func Pointer to function that will be invoked from operator()(). - */ - explicit pointer_functor5(function_type _A_func): func_ptr_(_A_func) {} - - /** Execute the wrapped function. - * @param _A_a1 Argument to be passed on to the function. - * @param _A_a2 Argument to be passed on to the function. - * @param _A_a3 Argument to be passed on to the function. - * @param _A_a4 Argument to be passed on to the function. - * @param _A_a5 Argument to be passed on to the function. - * @return The return value of the function invocation. - */ - T_return operator()(typename type_trait::take _A_a1,typename type_trait::take _A_a2,typename type_trait::take _A_a3,typename type_trait::take _A_a4,typename type_trait::take _A_a5) const - { return func_ptr_(_A_a1,_A_a2,_A_a3,_A_a4,_A_a5); } -}; - -/** pointer_functor6 wraps existing non-member functions with 6 argument(s). - * Use the convenience function ptr_fun() to create an instance of pointer_functor6. - * - * The following template arguments are used: - * - @e T_arg1 Argument type used in the definition of operator()(). - * - @e T_arg2 Argument type used in the definition of operator()(). - * - @e T_arg3 Argument type used in the definition of operator()(). - * - @e T_arg4 Argument type used in the definition of operator()(). - * - @e T_arg5 Argument type used in the definition of operator()(). - * - @e T_arg6 Argument type used in the definition of operator()(). - * - @e T_return The return type of operator()(). - * - * @ingroup ptr_fun - */ -template -class pointer_functor6 : public functor_base -{ - typedef T_return (*function_type)(T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6); -protected: - function_type func_ptr_; -public: - typedef T_return result_type; - - /// Constructs an invalid functor. - pointer_functor6() {} - - /** Constructs a pointer_functor6 object that wraps an existing function. - * @param _A_func Pointer to function that will be invoked from operator()(). - */ - explicit pointer_functor6(function_type _A_func): func_ptr_(_A_func) {} - - /** Execute the wrapped function. - * @param _A_a1 Argument to be passed on to the function. - * @param _A_a2 Argument to be passed on to the function. - * @param _A_a3 Argument to be passed on to the function. - * @param _A_a4 Argument to be passed on to the function. - * @param _A_a5 Argument to be passed on to the function. - * @param _A_a6 Argument to be passed on to the function. - * @return The return value of the function invocation. - */ - T_return operator()(typename type_trait::take _A_a1,typename type_trait::take _A_a2,typename type_trait::take _A_a3,typename type_trait::take _A_a4,typename type_trait::take _A_a5,typename type_trait::take _A_a6) const - { return func_ptr_(_A_a1,_A_a2,_A_a3,_A_a4,_A_a5,_A_a6); } -}; - -/** pointer_functor7 wraps existing non-member functions with 7 argument(s). - * Use the convenience function ptr_fun() to create an instance of pointer_functor7. - * - * The following template arguments are used: - * - @e T_arg1 Argument type used in the definition of operator()(). - * - @e T_arg2 Argument type used in the definition of operator()(). - * - @e T_arg3 Argument type used in the definition of operator()(). - * - @e T_arg4 Argument type used in the definition of operator()(). - * - @e T_arg5 Argument type used in the definition of operator()(). - * - @e T_arg6 Argument type used in the definition of operator()(). - * - @e T_arg7 Argument type used in the definition of operator()(). - * - @e T_return The return type of operator()(). - * - * @ingroup ptr_fun - */ -template -class pointer_functor7 : public functor_base -{ - typedef T_return (*function_type)(T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6,T_arg7); -protected: - function_type func_ptr_; -public: - typedef T_return result_type; - - /// Constructs an invalid functor. - pointer_functor7() {} - - /** Constructs a pointer_functor7 object that wraps an existing function. - * @param _A_func Pointer to function that will be invoked from operator()(). - */ - explicit pointer_functor7(function_type _A_func): func_ptr_(_A_func) {} - - /** Execute the wrapped function. - * @param _A_a1 Argument to be passed on to the function. - * @param _A_a2 Argument to be passed on to the function. - * @param _A_a3 Argument to be passed on to the function. - * @param _A_a4 Argument to be passed on to the function. - * @param _A_a5 Argument to be passed on to the function. - * @param _A_a6 Argument to be passed on to the function. - * @param _A_a7 Argument to be passed on to the function. - * @return The return value of the function invocation. - */ - T_return operator()(typename type_trait::take _A_a1,typename type_trait::take _A_a2,typename type_trait::take _A_a3,typename type_trait::take _A_a4,typename type_trait::take _A_a5,typename type_trait::take _A_a6,typename type_trait::take _A_a7) const - { return func_ptr_(_A_a1,_A_a2,_A_a3,_A_a4,_A_a5,_A_a6,_A_a7); } -}; - - -// numbered ptr_fun -/** Creates a functor of type sigc::pointer_functor0 which wraps an existing non-member function. - * @param _A_func Pointer to function that should be wrapped. - * @return Functor that executes @e _A_func on invokation. - * - * @ingroup ptr_fun - */ -template -inline pointer_functor0 -ptr_fun0(T_return (*_A_func)()) -{ return pointer_functor0(_A_func); } - -/** Creates a functor of type sigc::pointer_functor1 which wraps an existing non-member function. - * @param _A_func Pointer to function that should be wrapped. - * @return Functor that executes @e _A_func on invokation. - * - * @ingroup ptr_fun - */ -template -inline pointer_functor1 -ptr_fun1(T_return (*_A_func)(T_arg1)) -{ return pointer_functor1(_A_func); } - -/** Creates a functor of type sigc::pointer_functor2 which wraps an existing non-member function. - * @param _A_func Pointer to function that should be wrapped. - * @return Functor that executes @e _A_func on invokation. - * - * @ingroup ptr_fun - */ -template -inline pointer_functor2 -ptr_fun2(T_return (*_A_func)(T_arg1,T_arg2)) -{ return pointer_functor2(_A_func); } - -/** Creates a functor of type sigc::pointer_functor3 which wraps an existing non-member function. - * @param _A_func Pointer to function that should be wrapped. - * @return Functor that executes @e _A_func on invokation. - * - * @ingroup ptr_fun - */ -template -inline pointer_functor3 -ptr_fun3(T_return (*_A_func)(T_arg1,T_arg2,T_arg3)) -{ return pointer_functor3(_A_func); } - -/** Creates a functor of type sigc::pointer_functor4 which wraps an existing non-member function. - * @param _A_func Pointer to function that should be wrapped. - * @return Functor that executes @e _A_func on invokation. - * - * @ingroup ptr_fun - */ -template -inline pointer_functor4 -ptr_fun4(T_return (*_A_func)(T_arg1,T_arg2,T_arg3,T_arg4)) -{ return pointer_functor4(_A_func); } - -/** Creates a functor of type sigc::pointer_functor5 which wraps an existing non-member function. - * @param _A_func Pointer to function that should be wrapped. - * @return Functor that executes @e _A_func on invokation. - * - * @ingroup ptr_fun - */ -template -inline pointer_functor5 -ptr_fun5(T_return (*_A_func)(T_arg1,T_arg2,T_arg3,T_arg4,T_arg5)) -{ return pointer_functor5(_A_func); } - -/** Creates a functor of type sigc::pointer_functor6 which wraps an existing non-member function. - * @param _A_func Pointer to function that should be wrapped. - * @return Functor that executes @e _A_func on invokation. - * - * @ingroup ptr_fun - */ -template -inline pointer_functor6 -ptr_fun6(T_return (*_A_func)(T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6)) -{ return pointer_functor6(_A_func); } - -/** Creates a functor of type sigc::pointer_functor7 which wraps an existing non-member function. - * @param _A_func Pointer to function that should be wrapped. - * @return Functor that executes @e _A_func on invokation. - * - * @ingroup ptr_fun - */ -template -inline pointer_functor7 -ptr_fun7(T_return (*_A_func)(T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6,T_arg7)) -{ return pointer_functor7(_A_func); } - - -// unnumbered ptr_fun -/** Creates a functor of type sigc::pointer_functor0 which wraps an existing non-member function. - * @param _A_func Pointer to function that should be wrapped. - * @return Functor that executes @e _A_func on invokation. - * - * @ingroup ptr_fun - */ -template -inline pointer_functor0 -ptr_fun(T_return (*_A_func)()) -{ return pointer_functor0(_A_func); } - -/** Creates a functor of type sigc::pointer_functor1 which wraps an existing non-member function. - * @param _A_func Pointer to function that should be wrapped. - * @return Functor that executes @e _A_func on invokation. - * - * @ingroup ptr_fun - */ -template -inline pointer_functor1 -ptr_fun(T_return (*_A_func)(T_arg1)) -{ return pointer_functor1(_A_func); } - -/** Creates a functor of type sigc::pointer_functor2 which wraps an existing non-member function. - * @param _A_func Pointer to function that should be wrapped. - * @return Functor that executes @e _A_func on invokation. - * - * @ingroup ptr_fun - */ -template -inline pointer_functor2 -ptr_fun(T_return (*_A_func)(T_arg1,T_arg2)) -{ return pointer_functor2(_A_func); } - -/** Creates a functor of type sigc::pointer_functor3 which wraps an existing non-member function. - * @param _A_func Pointer to function that should be wrapped. - * @return Functor that executes @e _A_func on invokation. - * - * @ingroup ptr_fun - */ -template -inline pointer_functor3 -ptr_fun(T_return (*_A_func)(T_arg1,T_arg2,T_arg3)) -{ return pointer_functor3(_A_func); } - -/** Creates a functor of type sigc::pointer_functor4 which wraps an existing non-member function. - * @param _A_func Pointer to function that should be wrapped. - * @return Functor that executes @e _A_func on invokation. - * - * @ingroup ptr_fun - */ -template -inline pointer_functor4 -ptr_fun(T_return (*_A_func)(T_arg1,T_arg2,T_arg3,T_arg4)) -{ return pointer_functor4(_A_func); } - -/** Creates a functor of type sigc::pointer_functor5 which wraps an existing non-member function. - * @param _A_func Pointer to function that should be wrapped. - * @return Functor that executes @e _A_func on invokation. - * - * @ingroup ptr_fun - */ -template -inline pointer_functor5 -ptr_fun(T_return (*_A_func)(T_arg1,T_arg2,T_arg3,T_arg4,T_arg5)) -{ return pointer_functor5(_A_func); } - -/** Creates a functor of type sigc::pointer_functor6 which wraps an existing non-member function. - * @param _A_func Pointer to function that should be wrapped. - * @return Functor that executes @e _A_func on invokation. - * - * @ingroup ptr_fun - */ -template -inline pointer_functor6 -ptr_fun(T_return (*_A_func)(T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6)) -{ return pointer_functor6(_A_func); } - -/** Creates a functor of type sigc::pointer_functor7 which wraps an existing non-member function. - * @param _A_func Pointer to function that should be wrapped. - * @return Functor that executes @e _A_func on invokation. - * - * @ingroup ptr_fun - */ -template -inline pointer_functor7 -ptr_fun(T_return (*_A_func)(T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6,T_arg7)) -{ return pointer_functor7(_A_func); } - - -} /* namespace sigc */ -#endif /* _SIGC_FUNCTORS_MACROS_PTR_FUNHM4_ */ diff --git a/libs/sigc++2/sigc++/functors/slot.cc b/libs/sigc++2/sigc++/functors/slot.cc deleted file mode 100644 index 5b9c92e201..0000000000 --- a/libs/sigc++2/sigc++/functors/slot.cc +++ /dev/null @@ -1,25 +0,0 @@ -// -*- c++ -*- -/* - * Copyright 2002, The libsigc++ Development Team - * - * 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.1 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 - * - */ -#include - -namespace sigc { - - -} /* namespace sigc */ diff --git a/libs/sigc++2/sigc++/functors/slot.h b/libs/sigc++2/sigc++/functors/slot.h deleted file mode 100644 index 48c192a3c3..0000000000 --- a/libs/sigc++2/sigc++/functors/slot.h +++ /dev/null @@ -1,1263 +0,0 @@ -// -*- c++ -*- -/* Do not edit! -- generated file */ -#ifndef _SIGC_FUNCTORS_MACROS_SLOTHM4_ -#define _SIGC_FUNCTORS_MACROS_SLOTHM4_ -#include -#include -#include -#include - -namespace sigc { - -namespace internal { - -/** A typed slot_rep. - * A typed slot_rep holds a functor that can be invoked from - * slot::operator()(). visit_each() is used to visit the functor's - * targets that inherit trackable recursively and register the - * notification callback. Consequently the slot_rep object will be - * notified when some referred object is destroyed or overwritten. - */ -template -struct typed_slot_rep : public slot_rep -{ - typedef typed_slot_rep self; - - /* Use an adaptor type so that arguments can be passed as const references - * through explicit template instantiation from slot_call#::call_it() */ - typedef typename adaptor_trait::adaptor_type adaptor_type; - - /** The functor contained by this slot_rep object. */ - adaptor_type functor_; - - /** Constructs an invalid typed slot_rep object. - * The notification callback is registered using visit_each(). - * @param functor The functor contained by the new slot_rep object. - */ - inline typed_slot_rep(const T_functor& functor) - : slot_rep(0, &destroy, &dup), functor_(functor) - { visit_each_type(slot_do_bind(this), functor_); } - - inline typed_slot_rep(const typed_slot_rep& cl) - : slot_rep(cl.call_, &destroy, &dup), functor_(cl.functor_) - { visit_each_type(slot_do_bind(this), functor_); } - - inline ~typed_slot_rep() - { - call_ = 0; - destroy_ = 0; - visit_each_type(slot_do_unbind(this), functor_); - } - - /** Detaches the stored functor from the other referred trackables and destroys it. - * This does not destroy the base slot_rep object. - */ - static void* destroy(void* data) - { - self* self_ = static_cast((slot_rep*)data); - self_->call_ = 0; - self_->destroy_ = 0; - visit_each_type(slot_do_unbind(self_), self_->functor_); - self_->functor_.~adaptor_type(); - /* don't call disconnect() here: destroy() is either called - * a) from the parent itself (in which case disconnect() leads to a segfault) or - * b) from a parentless slot (in which case disconnect() does nothing) - */ - return 0; - } - - /** Makes a deep copy of the slot_rep object. - * Deep copy means that the notification callback of the new - * slot_rep object is registered in the referred trackables. - * @return A deep copy of the slot_rep object. - */ - static void* dup(void* data) - { - slot_rep* rep_ = (slot_rep*)data; - return static_cast(new self(*static_cast(rep_))); - } -}; - - -/** Abstracts functor execution. - * call_it() invokes a functor of type @e T_functor with a list of - * parameters whose types are given by the template arguments. - * address() forms a function pointer from call_it(). - * - * The following template arguments are used: - * - @e T_functor The functor type. - * - @e T_return The return type of call_it(). - * - */ -template -struct slot_call0 -{ - /** Invokes a functor of type @p T_functor. - * @param rep slot_rep object that holds a functor of type @p T_functor. - * @return The return values of the functor invocation. - */ - static T_return call_it(slot_rep* rep) - { - typedef typed_slot_rep typed_slot; - typed_slot *typed_rep = static_cast(rep); - return (typed_rep->functor_)(); - } - - /** Forms a function pointer from call_it(). - * @return A function pointer formed from call_it(). - */ - static hook address() - { return reinterpret_cast(&call_it); } -}; - -/** Abstracts functor execution. - * call_it() invokes a functor of type @e T_functor with a list of - * parameters whose types are given by the template arguments. - * address() forms a function pointer from call_it(). - * - * The following template arguments are used: - * - @e T_functor The functor type. - * - @e T_return The return type of call_it(). - * - @e T_arg1 Argument type used in the definition of call_it(). - * - */ -template -struct slot_call1 -{ - /** Invokes a functor of type @p T_functor. - * @param rep slot_rep object that holds a functor of type @p T_functor. - * @param _A_a1 Argument to be passed on to the functor. - * @return The return values of the functor invocation. - */ - static T_return call_it(slot_rep* rep, typename type_trait::take a_1) - { - typedef typed_slot_rep typed_slot; - typed_slot *typed_rep = static_cast(rep); - return (typed_rep->functor_).SIGC_WORKAROUND_OPERATOR_PARENTHESES::take> - (a_1); - } - - /** Forms a function pointer from call_it(). - * @return A function pointer formed from call_it(). - */ - static hook address() - { return reinterpret_cast(&call_it); } -}; - -/** Abstracts functor execution. - * call_it() invokes a functor of type @e T_functor with a list of - * parameters whose types are given by the template arguments. - * address() forms a function pointer from call_it(). - * - * The following template arguments are used: - * - @e T_functor The functor type. - * - @e T_return The return type of call_it(). - * - @e T_arg1 Argument type used in the definition of call_it(). - * - @e T_arg2 Argument type used in the definition of call_it(). - * - */ -template -struct slot_call2 -{ - /** Invokes a functor of type @p T_functor. - * @param rep slot_rep object that holds a functor of type @p T_functor. - * @param _A_a1 Argument to be passed on to the functor. - * @param _A_a2 Argument to be passed on to the functor. - * @return The return values of the functor invocation. - */ - static T_return call_it(slot_rep* rep, typename type_trait::take a_1,typename type_trait::take a_2) - { - typedef typed_slot_rep typed_slot; - typed_slot *typed_rep = static_cast(rep); - return (typed_rep->functor_).SIGC_WORKAROUND_OPERATOR_PARENTHESES::take,typename type_trait::take> - (a_1,a_2); - } - - /** Forms a function pointer from call_it(). - * @return A function pointer formed from call_it(). - */ - static hook address() - { return reinterpret_cast(&call_it); } -}; - -/** Abstracts functor execution. - * call_it() invokes a functor of type @e T_functor with a list of - * parameters whose types are given by the template arguments. - * address() forms a function pointer from call_it(). - * - * The following template arguments are used: - * - @e T_functor The functor type. - * - @e T_return The return type of call_it(). - * - @e T_arg1 Argument type used in the definition of call_it(). - * - @e T_arg2 Argument type used in the definition of call_it(). - * - @e T_arg3 Argument type used in the definition of call_it(). - * - */ -template -struct slot_call3 -{ - /** Invokes a functor of type @p T_functor. - * @param rep slot_rep object that holds a functor of type @p T_functor. - * @param _A_a1 Argument to be passed on to the functor. - * @param _A_a2 Argument to be passed on to the functor. - * @param _A_a3 Argument to be passed on to the functor. - * @return The return values of the functor invocation. - */ - static T_return call_it(slot_rep* rep, typename type_trait::take a_1,typename type_trait::take a_2,typename type_trait::take a_3) - { - typedef typed_slot_rep typed_slot; - typed_slot *typed_rep = static_cast(rep); - return (typed_rep->functor_).SIGC_WORKAROUND_OPERATOR_PARENTHESES::take,typename type_trait::take,typename type_trait::take> - (a_1,a_2,a_3); - } - - /** Forms a function pointer from call_it(). - * @return A function pointer formed from call_it(). - */ - static hook address() - { return reinterpret_cast(&call_it); } -}; - -/** Abstracts functor execution. - * call_it() invokes a functor of type @e T_functor with a list of - * parameters whose types are given by the template arguments. - * address() forms a function pointer from call_it(). - * - * The following template arguments are used: - * - @e T_functor The functor type. - * - @e T_return The return type of call_it(). - * - @e T_arg1 Argument type used in the definition of call_it(). - * - @e T_arg2 Argument type used in the definition of call_it(). - * - @e T_arg3 Argument type used in the definition of call_it(). - * - @e T_arg4 Argument type used in the definition of call_it(). - * - */ -template -struct slot_call4 -{ - /** Invokes a functor of type @p T_functor. - * @param rep slot_rep object that holds a functor of type @p T_functor. - * @param _A_a1 Argument to be passed on to the functor. - * @param _A_a2 Argument to be passed on to the functor. - * @param _A_a3 Argument to be passed on to the functor. - * @param _A_a4 Argument to be passed on to the functor. - * @return The return values of the functor invocation. - */ - static T_return call_it(slot_rep* rep, typename type_trait::take a_1,typename type_trait::take a_2,typename type_trait::take a_3,typename type_trait::take a_4) - { - typedef typed_slot_rep typed_slot; - typed_slot *typed_rep = static_cast(rep); - return (typed_rep->functor_).SIGC_WORKAROUND_OPERATOR_PARENTHESES::take,typename type_trait::take,typename type_trait::take,typename type_trait::take> - (a_1,a_2,a_3,a_4); - } - - /** Forms a function pointer from call_it(). - * @return A function pointer formed from call_it(). - */ - static hook address() - { return reinterpret_cast(&call_it); } -}; - -/** Abstracts functor execution. - * call_it() invokes a functor of type @e T_functor with a list of - * parameters whose types are given by the template arguments. - * address() forms a function pointer from call_it(). - * - * The following template arguments are used: - * - @e T_functor The functor type. - * - @e T_return The return type of call_it(). - * - @e T_arg1 Argument type used in the definition of call_it(). - * - @e T_arg2 Argument type used in the definition of call_it(). - * - @e T_arg3 Argument type used in the definition of call_it(). - * - @e T_arg4 Argument type used in the definition of call_it(). - * - @e T_arg5 Argument type used in the definition of call_it(). - * - */ -template -struct slot_call5 -{ - /** Invokes a functor of type @p T_functor. - * @param rep slot_rep object that holds a functor of type @p T_functor. - * @param _A_a1 Argument to be passed on to the functor. - * @param _A_a2 Argument to be passed on to the functor. - * @param _A_a3 Argument to be passed on to the functor. - * @param _A_a4 Argument to be passed on to the functor. - * @param _A_a5 Argument to be passed on to the functor. - * @return The return values of the functor invocation. - */ - static T_return call_it(slot_rep* rep, typename type_trait::take a_1,typename type_trait::take a_2,typename type_trait::take a_3,typename type_trait::take a_4,typename type_trait::take a_5) - { - typedef typed_slot_rep typed_slot; - typed_slot *typed_rep = static_cast(rep); - return (typed_rep->functor_).SIGC_WORKAROUND_OPERATOR_PARENTHESES::take,typename type_trait::take,typename type_trait::take,typename type_trait::take,typename type_trait::take> - (a_1,a_2,a_3,a_4,a_5); - } - - /** Forms a function pointer from call_it(). - * @return A function pointer formed from call_it(). - */ - static hook address() - { return reinterpret_cast(&call_it); } -}; - -/** Abstracts functor execution. - * call_it() invokes a functor of type @e T_functor with a list of - * parameters whose types are given by the template arguments. - * address() forms a function pointer from call_it(). - * - * The following template arguments are used: - * - @e T_functor The functor type. - * - @e T_return The return type of call_it(). - * - @e T_arg1 Argument type used in the definition of call_it(). - * - @e T_arg2 Argument type used in the definition of call_it(). - * - @e T_arg3 Argument type used in the definition of call_it(). - * - @e T_arg4 Argument type used in the definition of call_it(). - * - @e T_arg5 Argument type used in the definition of call_it(). - * - @e T_arg6 Argument type used in the definition of call_it(). - * - */ -template -struct slot_call6 -{ - /** Invokes a functor of type @p T_functor. - * @param rep slot_rep object that holds a functor of type @p T_functor. - * @param _A_a1 Argument to be passed on to the functor. - * @param _A_a2 Argument to be passed on to the functor. - * @param _A_a3 Argument to be passed on to the functor. - * @param _A_a4 Argument to be passed on to the functor. - * @param _A_a5 Argument to be passed on to the functor. - * @param _A_a6 Argument to be passed on to the functor. - * @return The return values of the functor invocation. - */ - static T_return call_it(slot_rep* rep, typename type_trait::take a_1,typename type_trait::take a_2,typename type_trait::take a_3,typename type_trait::take a_4,typename type_trait::take a_5,typename type_trait::take a_6) - { - typedef typed_slot_rep typed_slot; - typed_slot *typed_rep = static_cast(rep); - return (typed_rep->functor_).SIGC_WORKAROUND_OPERATOR_PARENTHESES::take,typename type_trait::take,typename type_trait::take,typename type_trait::take,typename type_trait::take,typename type_trait::take> - (a_1,a_2,a_3,a_4,a_5,a_6); - } - - /** Forms a function pointer from call_it(). - * @return A function pointer formed from call_it(). - */ - static hook address() - { return reinterpret_cast(&call_it); } -}; - -/** Abstracts functor execution. - * call_it() invokes a functor of type @e T_functor with a list of - * parameters whose types are given by the template arguments. - * address() forms a function pointer from call_it(). - * - * The following template arguments are used: - * - @e T_functor The functor type. - * - @e T_return The return type of call_it(). - * - @e T_arg1 Argument type used in the definition of call_it(). - * - @e T_arg2 Argument type used in the definition of call_it(). - * - @e T_arg3 Argument type used in the definition of call_it(). - * - @e T_arg4 Argument type used in the definition of call_it(). - * - @e T_arg5 Argument type used in the definition of call_it(). - * - @e T_arg6 Argument type used in the definition of call_it(). - * - @e T_arg7 Argument type used in the definition of call_it(). - * - */ -template -struct slot_call7 -{ - /** Invokes a functor of type @p T_functor. - * @param rep slot_rep object that holds a functor of type @p T_functor. - * @param _A_a1 Argument to be passed on to the functor. - * @param _A_a2 Argument to be passed on to the functor. - * @param _A_a3 Argument to be passed on to the functor. - * @param _A_a4 Argument to be passed on to the functor. - * @param _A_a5 Argument to be passed on to the functor. - * @param _A_a6 Argument to be passed on to the functor. - * @param _A_a7 Argument to be passed on to the functor. - * @return The return values of the functor invocation. - */ - static T_return call_it(slot_rep* rep, typename type_trait::take a_1,typename type_trait::take a_2,typename type_trait::take a_3,typename type_trait::take a_4,typename type_trait::take a_5,typename type_trait::take a_6,typename type_trait::take a_7) - { - typedef typed_slot_rep typed_slot; - typed_slot *typed_rep = static_cast(rep); - return (typed_rep->functor_).SIGC_WORKAROUND_OPERATOR_PARENTHESES::take,typename type_trait::take,typename type_trait::take,typename type_trait::take,typename type_trait::take,typename type_trait::take,typename type_trait::take> - (a_1,a_2,a_3,a_4,a_5,a_6,a_7); - } - - /** Forms a function pointer from call_it(). - * @return A function pointer formed from call_it(). - */ - static hook address() - { return reinterpret_cast(&call_it); } -}; - -} /* namespace internal */ - - -/** Converts an arbitrary functor to a unified type which is opaque. - * sigc::slot itself is a functor or to be more precise a closure. It contains - * a single, arbitrary functor (or closure) that is executed in operator()(). - * - * The template arguments determine the function signature of operator()(): - * - @e T_return The return type of operator()(). - * - * To use simply assign the slot to the desired functor. If the functor - * is not compatible with the parameter list defined with the template - * arguments compiler errors are triggered. When called the slot - * will invoke the functor with minimal copies. - * block() and unblock() can be used to block the functor's invocation - * from operator()() temporarily. - * - * You should use the more convenient unnumbered sigc::slot template. - * - * @ingroup slot - */ -/* TODO: Where put the following bit of information? I can't make any - * sense of the "because", by the way! - * - * Because slot is opaque, visit_each() will not visit its internal members. - */ -template -class slot0 - : public slot_base -{ -public: - typedef T_return result_type; - - -#ifndef DOXYGEN_SHOULD_SKIP_THIS -private: - typedef internal::slot_rep rep_type; -public: - typedef T_return (*call_type)(rep_type*); -#endif - - /** Invoke the contained functor unless slot is in blocking state. - * @return The return value of the functor invocation. - */ - inline T_return operator()() const - { - if (!empty() && !blocked()) - return (reinterpret_cast(rep_->call_))(rep_); - return T_return(); - } - - inline slot0() {} - - /** Constructs a slot from an arbitrary functor. - * @param _A_func The desirer functor the new slot should be assigned to. - */ - template - slot0(const T_functor& _A_func) - : slot_base(new internal::typed_slot_rep(_A_func)) - { rep_->call_ = internal::slot_call0::address(); } - - slot0(const slot0& src) - : slot_base(src) {} - - /** Overrides this slot making a copy from another slot. - * @param src The slot from which to make a copy. - * @return @p this. - */ - slot0& operator=(const slot0& src) - { slot_base::operator=(src); return *this; } -}; - -/** Converts an arbitrary functor to a unified type which is opaque. - * sigc::slot itself is a functor or to be more precise a closure. It contains - * a single, arbitrary functor (or closure) that is executed in operator()(). - * - * The template arguments determine the function signature of operator()(): - * - @e T_return The return type of operator()(). - * - @e T_arg1 Argument type used in the definition of operator()(). The default @p nil_ means no argument. - * - * To use simply assign the slot to the desired functor. If the functor - * is not compatible with the parameter list defined with the template - * arguments compiler errors are triggered. When called the slot - * will invoke the functor with minimal copies. - * block() and unblock() can be used to block the functor's invocation - * from operator()() temporarily. - * - * You should use the more convenient unnumbered sigc::slot template. - * - * @ingroup slot - */ -/* TODO: Where put the following bit of information? I can't make any - * sense of the "because", by the way! - * - * Because slot is opaque, visit_each() will not visit its internal members. - */ -template -class slot1 - : public slot_base -{ -public: - typedef T_return result_type; - typedef typename type_trait::take arg1_type_; - - -#ifndef DOXYGEN_SHOULD_SKIP_THIS -private: - typedef internal::slot_rep rep_type; -public: - typedef T_return (*call_type)(rep_type*, arg1_type_); -#endif - - /** Invoke the contained functor unless slot is in blocking state. - * @param _A_a1 Argument to be passed on to the functor. - * @return The return value of the functor invocation. - */ - inline T_return operator()(arg1_type_ _A_a1) const - { - if (!empty() && !blocked()) - return (reinterpret_cast(rep_->call_))(rep_, _A_a1); - return T_return(); - } - - inline slot1() {} - - /** Constructs a slot from an arbitrary functor. - * @param _A_func The desirer functor the new slot should be assigned to. - */ - template - slot1(const T_functor& _A_func) - : slot_base(new internal::typed_slot_rep(_A_func)) - { rep_->call_ = internal::slot_call1::address(); } - - slot1(const slot1& src) - : slot_base(src) {} - - /** Overrides this slot making a copy from another slot. - * @param src The slot from which to make a copy. - * @return @p this. - */ - slot1& operator=(const slot1& src) - { slot_base::operator=(src); return *this; } -}; - -/** Converts an arbitrary functor to a unified type which is opaque. - * sigc::slot itself is a functor or to be more precise a closure. It contains - * a single, arbitrary functor (or closure) that is executed in operator()(). - * - * The template arguments determine the function signature of operator()(): - * - @e T_return The return type of operator()(). - * - @e T_arg1 Argument type used in the definition of operator()(). The default @p nil_ means no argument. - * - @e T_arg2 Argument type used in the definition of operator()(). The default @p nil_ means no argument. - * - * To use simply assign the slot to the desired functor. If the functor - * is not compatible with the parameter list defined with the template - * arguments compiler errors are triggered. When called the slot - * will invoke the functor with minimal copies. - * block() and unblock() can be used to block the functor's invocation - * from operator()() temporarily. - * - * You should use the more convenient unnumbered sigc::slot template. - * - * @ingroup slot - */ -/* TODO: Where put the following bit of information? I can't make any - * sense of the "because", by the way! - * - * Because slot is opaque, visit_each() will not visit its internal members. - */ -template -class slot2 - : public slot_base -{ -public: - typedef T_return result_type; - typedef typename type_trait::take arg1_type_; - typedef typename type_trait::take arg2_type_; - - -#ifndef DOXYGEN_SHOULD_SKIP_THIS -private: - typedef internal::slot_rep rep_type; -public: - typedef T_return (*call_type)(rep_type*, arg1_type_,arg2_type_); -#endif - - /** Invoke the contained functor unless slot is in blocking state. - * @param _A_a1 Argument to be passed on to the functor. - * @param _A_a2 Argument to be passed on to the functor. - * @return The return value of the functor invocation. - */ - inline T_return operator()(arg1_type_ _A_a1,arg2_type_ _A_a2) const - { - if (!empty() && !blocked()) - return (reinterpret_cast(rep_->call_))(rep_, _A_a1,_A_a2); - return T_return(); - } - - inline slot2() {} - - /** Constructs a slot from an arbitrary functor. - * @param _A_func The desirer functor the new slot should be assigned to. - */ - template - slot2(const T_functor& _A_func) - : slot_base(new internal::typed_slot_rep(_A_func)) - { rep_->call_ = internal::slot_call2::address(); } - - slot2(const slot2& src) - : slot_base(src) {} - - /** Overrides this slot making a copy from another slot. - * @param src The slot from which to make a copy. - * @return @p this. - */ - slot2& operator=(const slot2& src) - { slot_base::operator=(src); return *this; } -}; - -/** Converts an arbitrary functor to a unified type which is opaque. - * sigc::slot itself is a functor or to be more precise a closure. It contains - * a single, arbitrary functor (or closure) that is executed in operator()(). - * - * The template arguments determine the function signature of operator()(): - * - @e T_return The return type of operator()(). - * - @e T_arg1 Argument type used in the definition of operator()(). The default @p nil_ means no argument. - * - @e T_arg2 Argument type used in the definition of operator()(). The default @p nil_ means no argument. - * - @e T_arg3 Argument type used in the definition of operator()(). The default @p nil_ means no argument. - * - * To use simply assign the slot to the desired functor. If the functor - * is not compatible with the parameter list defined with the template - * arguments compiler errors are triggered. When called the slot - * will invoke the functor with minimal copies. - * block() and unblock() can be used to block the functor's invocation - * from operator()() temporarily. - * - * You should use the more convenient unnumbered sigc::slot template. - * - * @ingroup slot - */ -/* TODO: Where put the following bit of information? I can't make any - * sense of the "because", by the way! - * - * Because slot is opaque, visit_each() will not visit its internal members. - */ -template -class slot3 - : public slot_base -{ -public: - typedef T_return result_type; - typedef typename type_trait::take arg1_type_; - typedef typename type_trait::take arg2_type_; - typedef typename type_trait::take arg3_type_; - - -#ifndef DOXYGEN_SHOULD_SKIP_THIS -private: - typedef internal::slot_rep rep_type; -public: - typedef T_return (*call_type)(rep_type*, arg1_type_,arg2_type_,arg3_type_); -#endif - - /** Invoke the contained functor unless slot is in blocking state. - * @param _A_a1 Argument to be passed on to the functor. - * @param _A_a2 Argument to be passed on to the functor. - * @param _A_a3 Argument to be passed on to the functor. - * @return The return value of the functor invocation. - */ - inline T_return operator()(arg1_type_ _A_a1,arg2_type_ _A_a2,arg3_type_ _A_a3) const - { - if (!empty() && !blocked()) - return (reinterpret_cast(rep_->call_))(rep_, _A_a1,_A_a2,_A_a3); - return T_return(); - } - - inline slot3() {} - - /** Constructs a slot from an arbitrary functor. - * @param _A_func The desirer functor the new slot should be assigned to. - */ - template - slot3(const T_functor& _A_func) - : slot_base(new internal::typed_slot_rep(_A_func)) - { rep_->call_ = internal::slot_call3::address(); } - - slot3(const slot3& src) - : slot_base(src) {} - - /** Overrides this slot making a copy from another slot. - * @param src The slot from which to make a copy. - * @return @p this. - */ - slot3& operator=(const slot3& src) - { slot_base::operator=(src); return *this; } -}; - -/** Converts an arbitrary functor to a unified type which is opaque. - * sigc::slot itself is a functor or to be more precise a closure. It contains - * a single, arbitrary functor (or closure) that is executed in operator()(). - * - * The template arguments determine the function signature of operator()(): - * - @e T_return The return type of operator()(). - * - @e T_arg1 Argument type used in the definition of operator()(). The default @p nil_ means no argument. - * - @e T_arg2 Argument type used in the definition of operator()(). The default @p nil_ means no argument. - * - @e T_arg3 Argument type used in the definition of operator()(). The default @p nil_ means no argument. - * - @e T_arg4 Argument type used in the definition of operator()(). The default @p nil_ means no argument. - * - * To use simply assign the slot to the desired functor. If the functor - * is not compatible with the parameter list defined with the template - * arguments compiler errors are triggered. When called the slot - * will invoke the functor with minimal copies. - * block() and unblock() can be used to block the functor's invocation - * from operator()() temporarily. - * - * You should use the more convenient unnumbered sigc::slot template. - * - * @ingroup slot - */ -/* TODO: Where put the following bit of information? I can't make any - * sense of the "because", by the way! - * - * Because slot is opaque, visit_each() will not visit its internal members. - */ -template -class slot4 - : public slot_base -{ -public: - typedef T_return result_type; - typedef typename type_trait::take arg1_type_; - typedef typename type_trait::take arg2_type_; - typedef typename type_trait::take arg3_type_; - typedef typename type_trait::take arg4_type_; - - -#ifndef DOXYGEN_SHOULD_SKIP_THIS -private: - typedef internal::slot_rep rep_type; -public: - typedef T_return (*call_type)(rep_type*, arg1_type_,arg2_type_,arg3_type_,arg4_type_); -#endif - - /** Invoke the contained functor unless slot is in blocking state. - * @param _A_a1 Argument to be passed on to the functor. - * @param _A_a2 Argument to be passed on to the functor. - * @param _A_a3 Argument to be passed on to the functor. - * @param _A_a4 Argument to be passed on to the functor. - * @return The return value of the functor invocation. - */ - inline T_return operator()(arg1_type_ _A_a1,arg2_type_ _A_a2,arg3_type_ _A_a3,arg4_type_ _A_a4) const - { - if (!empty() && !blocked()) - return (reinterpret_cast(rep_->call_))(rep_, _A_a1,_A_a2,_A_a3,_A_a4); - return T_return(); - } - - inline slot4() {} - - /** Constructs a slot from an arbitrary functor. - * @param _A_func The desirer functor the new slot should be assigned to. - */ - template - slot4(const T_functor& _A_func) - : slot_base(new internal::typed_slot_rep(_A_func)) - { rep_->call_ = internal::slot_call4::address(); } - - slot4(const slot4& src) - : slot_base(src) {} - - /** Overrides this slot making a copy from another slot. - * @param src The slot from which to make a copy. - * @return @p this. - */ - slot4& operator=(const slot4& src) - { slot_base::operator=(src); return *this; } -}; - -/** Converts an arbitrary functor to a unified type which is opaque. - * sigc::slot itself is a functor or to be more precise a closure. It contains - * a single, arbitrary functor (or closure) that is executed in operator()(). - * - * The template arguments determine the function signature of operator()(): - * - @e T_return The return type of operator()(). - * - @e T_arg1 Argument type used in the definition of operator()(). The default @p nil_ means no argument. - * - @e T_arg2 Argument type used in the definition of operator()(). The default @p nil_ means no argument. - * - @e T_arg3 Argument type used in the definition of operator()(). The default @p nil_ means no argument. - * - @e T_arg4 Argument type used in the definition of operator()(). The default @p nil_ means no argument. - * - @e T_arg5 Argument type used in the definition of operator()(). The default @p nil_ means no argument. - * - * To use simply assign the slot to the desired functor. If the functor - * is not compatible with the parameter list defined with the template - * arguments compiler errors are triggered. When called the slot - * will invoke the functor with minimal copies. - * block() and unblock() can be used to block the functor's invocation - * from operator()() temporarily. - * - * You should use the more convenient unnumbered sigc::slot template. - * - * @ingroup slot - */ -/* TODO: Where put the following bit of information? I can't make any - * sense of the "because", by the way! - * - * Because slot is opaque, visit_each() will not visit its internal members. - */ -template -class slot5 - : public slot_base -{ -public: - typedef T_return result_type; - typedef typename type_trait::take arg1_type_; - typedef typename type_trait::take arg2_type_; - typedef typename type_trait::take arg3_type_; - typedef typename type_trait::take arg4_type_; - typedef typename type_trait::take arg5_type_; - - -#ifndef DOXYGEN_SHOULD_SKIP_THIS -private: - typedef internal::slot_rep rep_type; -public: - typedef T_return (*call_type)(rep_type*, arg1_type_,arg2_type_,arg3_type_,arg4_type_,arg5_type_); -#endif - - /** Invoke the contained functor unless slot is in blocking state. - * @param _A_a1 Argument to be passed on to the functor. - * @param _A_a2 Argument to be passed on to the functor. - * @param _A_a3 Argument to be passed on to the functor. - * @param _A_a4 Argument to be passed on to the functor. - * @param _A_a5 Argument to be passed on to the functor. - * @return The return value of the functor invocation. - */ - inline T_return operator()(arg1_type_ _A_a1,arg2_type_ _A_a2,arg3_type_ _A_a3,arg4_type_ _A_a4,arg5_type_ _A_a5) const - { - if (!empty() && !blocked()) - return (reinterpret_cast(rep_->call_))(rep_, _A_a1,_A_a2,_A_a3,_A_a4,_A_a5); - return T_return(); - } - - inline slot5() {} - - /** Constructs a slot from an arbitrary functor. - * @param _A_func The desirer functor the new slot should be assigned to. - */ - template - slot5(const T_functor& _A_func) - : slot_base(new internal::typed_slot_rep(_A_func)) - { rep_->call_ = internal::slot_call5::address(); } - - slot5(const slot5& src) - : slot_base(src) {} - - /** Overrides this slot making a copy from another slot. - * @param src The slot from which to make a copy. - * @return @p this. - */ - slot5& operator=(const slot5& src) - { slot_base::operator=(src); return *this; } -}; - -/** Converts an arbitrary functor to a unified type which is opaque. - * sigc::slot itself is a functor or to be more precise a closure. It contains - * a single, arbitrary functor (or closure) that is executed in operator()(). - * - * The template arguments determine the function signature of operator()(): - * - @e T_return The return type of operator()(). - * - @e T_arg1 Argument type used in the definition of operator()(). The default @p nil_ means no argument. - * - @e T_arg2 Argument type used in the definition of operator()(). The default @p nil_ means no argument. - * - @e T_arg3 Argument type used in the definition of operator()(). The default @p nil_ means no argument. - * - @e T_arg4 Argument type used in the definition of operator()(). The default @p nil_ means no argument. - * - @e T_arg5 Argument type used in the definition of operator()(). The default @p nil_ means no argument. - * - @e T_arg6 Argument type used in the definition of operator()(). The default @p nil_ means no argument. - * - * To use simply assign the slot to the desired functor. If the functor - * is not compatible with the parameter list defined with the template - * arguments compiler errors are triggered. When called the slot - * will invoke the functor with minimal copies. - * block() and unblock() can be used to block the functor's invocation - * from operator()() temporarily. - * - * You should use the more convenient unnumbered sigc::slot template. - * - * @ingroup slot - */ -/* TODO: Where put the following bit of information? I can't make any - * sense of the "because", by the way! - * - * Because slot is opaque, visit_each() will not visit its internal members. - */ -template -class slot6 - : public slot_base -{ -public: - typedef T_return result_type; - typedef typename type_trait::take arg1_type_; - typedef typename type_trait::take arg2_type_; - typedef typename type_trait::take arg3_type_; - typedef typename type_trait::take arg4_type_; - typedef typename type_trait::take arg5_type_; - typedef typename type_trait::take arg6_type_; - - -#ifndef DOXYGEN_SHOULD_SKIP_THIS -private: - typedef internal::slot_rep rep_type; -public: - typedef T_return (*call_type)(rep_type*, arg1_type_,arg2_type_,arg3_type_,arg4_type_,arg5_type_,arg6_type_); -#endif - - /** Invoke the contained functor unless slot is in blocking state. - * @param _A_a1 Argument to be passed on to the functor. - * @param _A_a2 Argument to be passed on to the functor. - * @param _A_a3 Argument to be passed on to the functor. - * @param _A_a4 Argument to be passed on to the functor. - * @param _A_a5 Argument to be passed on to the functor. - * @param _A_a6 Argument to be passed on to the functor. - * @return The return value of the functor invocation. - */ - inline T_return operator()(arg1_type_ _A_a1,arg2_type_ _A_a2,arg3_type_ _A_a3,arg4_type_ _A_a4,arg5_type_ _A_a5,arg6_type_ _A_a6) const - { - if (!empty() && !blocked()) - return (reinterpret_cast(rep_->call_))(rep_, _A_a1,_A_a2,_A_a3,_A_a4,_A_a5,_A_a6); - return T_return(); - } - - inline slot6() {} - - /** Constructs a slot from an arbitrary functor. - * @param _A_func The desirer functor the new slot should be assigned to. - */ - template - slot6(const T_functor& _A_func) - : slot_base(new internal::typed_slot_rep(_A_func)) - { rep_->call_ = internal::slot_call6::address(); } - - slot6(const slot6& src) - : slot_base(src) {} - - /** Overrides this slot making a copy from another slot. - * @param src The slot from which to make a copy. - * @return @p this. - */ - slot6& operator=(const slot6& src) - { slot_base::operator=(src); return *this; } -}; - -/** Converts an arbitrary functor to a unified type which is opaque. - * sigc::slot itself is a functor or to be more precise a closure. It contains - * a single, arbitrary functor (or closure) that is executed in operator()(). - * - * The template arguments determine the function signature of operator()(): - * - @e T_return The return type of operator()(). - * - @e T_arg1 Argument type used in the definition of operator()(). The default @p nil_ means no argument. - * - @e T_arg2 Argument type used in the definition of operator()(). The default @p nil_ means no argument. - * - @e T_arg3 Argument type used in the definition of operator()(). The default @p nil_ means no argument. - * - @e T_arg4 Argument type used in the definition of operator()(). The default @p nil_ means no argument. - * - @e T_arg5 Argument type used in the definition of operator()(). The default @p nil_ means no argument. - * - @e T_arg6 Argument type used in the definition of operator()(). The default @p nil_ means no argument. - * - @e T_arg7 Argument type used in the definition of operator()(). The default @p nil_ means no argument. - * - * To use simply assign the slot to the desired functor. If the functor - * is not compatible with the parameter list defined with the template - * arguments compiler errors are triggered. When called the slot - * will invoke the functor with minimal copies. - * block() and unblock() can be used to block the functor's invocation - * from operator()() temporarily. - * - * You should use the more convenient unnumbered sigc::slot template. - * - * @ingroup slot - */ -/* TODO: Where put the following bit of information? I can't make any - * sense of the "because", by the way! - * - * Because slot is opaque, visit_each() will not visit its internal members. - */ -template -class slot7 - : public slot_base -{ -public: - typedef T_return result_type; - typedef typename type_trait::take arg1_type_; - typedef typename type_trait::take arg2_type_; - typedef typename type_trait::take arg3_type_; - typedef typename type_trait::take arg4_type_; - typedef typename type_trait::take arg5_type_; - typedef typename type_trait::take arg6_type_; - typedef typename type_trait::take arg7_type_; - - -#ifndef DOXYGEN_SHOULD_SKIP_THIS -private: - typedef internal::slot_rep rep_type; -public: - typedef T_return (*call_type)(rep_type*, arg1_type_,arg2_type_,arg3_type_,arg4_type_,arg5_type_,arg6_type_,arg7_type_); -#endif - - /** Invoke the contained functor unless slot is in blocking state. - * @param _A_a1 Argument to be passed on to the functor. - * @param _A_a2 Argument to be passed on to the functor. - * @param _A_a3 Argument to be passed on to the functor. - * @param _A_a4 Argument to be passed on to the functor. - * @param _A_a5 Argument to be passed on to the functor. - * @param _A_a6 Argument to be passed on to the functor. - * @param _A_a7 Argument to be passed on to the functor. - * @return The return value of the functor invocation. - */ - inline T_return operator()(arg1_type_ _A_a1,arg2_type_ _A_a2,arg3_type_ _A_a3,arg4_type_ _A_a4,arg5_type_ _A_a5,arg6_type_ _A_a6,arg7_type_ _A_a7) const - { - if (!empty() && !blocked()) - return (reinterpret_cast(rep_->call_))(rep_, _A_a1,_A_a2,_A_a3,_A_a4,_A_a5,_A_a6,_A_a7); - return T_return(); - } - - inline slot7() {} - - /** Constructs a slot from an arbitrary functor. - * @param _A_func The desirer functor the new slot should be assigned to. - */ - template - slot7(const T_functor& _A_func) - : slot_base(new internal::typed_slot_rep(_A_func)) - { rep_->call_ = internal::slot_call7::address(); } - - slot7(const slot7& src) - : slot_base(src) {} - - /** Overrides this slot making a copy from another slot. - * @param src The slot from which to make a copy. - * @return @p this. - */ - slot7& operator=(const slot7& src) - { slot_base::operator=(src); return *this; } -}; - - -/** Convenience wrapper for the numbered sigc::slot# templates. - * Slots convert arbitrary functors to unified types which are opaque. - * sigc::slot itself is a functor or to be more precise a closure. It contains - * a single, arbitrary functor (or closure) that is executed in operator()(). - * - * The template arguments determine the function signature of operator()(): - * - @e T_return The return type of operator()(). - * - @e T_arg1 Argument type used in the definition of operator()(). The default @p nil_ means no argument. - * - @e T_arg2 Argument type used in the definition of operator()(). The default @p nil_ means no argument. - * - @e T_arg3 Argument type used in the definition of operator()(). The default @p nil_ means no argument. - * - @e T_arg4 Argument type used in the definition of operator()(). The default @p nil_ means no argument. - * - @e T_arg5 Argument type used in the definition of operator()(). The default @p nil_ means no argument. - * - @e T_arg6 Argument type used in the definition of operator()(). The default @p nil_ means no argument. - * - @e T_arg7 Argument type used in the definition of operator()(). The default @p nil_ means no argument. - * - * To use simply assign the slot to the desired functor. If the functor - * is not compatible with the parameter list defined with the template - * arguments compiler errors are triggered. When called the slot - * will invoke the functor with minimal copies. - * block() and unblock() can be used to block the functor's invocation - * from operator()() temporarily. - * - * @par Example: - * @code - * void foo(int) {} - * sigc::slot s = sigc::ptr_fun(&foo); - * s(19); - * @endcode - * - * @ingroup slot - */ -template -class slot - : public slot7 -{ -public: - typedef slot7 parent_type; - - inline slot() {} - - /** Constructs a slot from an arbitrary functor. - * @param _A_func The desirer functor the new slot should be assigned to. - */ - template - slot(const T_functor& _A_func) - : parent_type(_A_func) {} - - slot(const slot& src) - : parent_type((const parent_type&)src) {} -}; - - -/** Convenience wrapper for the numbered sigc::slot0 template. - * See the base class for useful methods. - * This is the template specialization of the unnumbered sigc::slot - * template for 0 argument(s). - */ -template -class slot - : public slot0 -{ -public: - typedef slot0 parent_type; - - inline slot() {} - - /** Constructs a slot from an arbitrary functor. - * @param _A_func The desirer functor the new slot should be assigned to. - */ - template - slot(const T_functor& _A_func) - : parent_type(_A_func) {} - - slot(const slot& src) - : parent_type((const parent_type&)src) {} -}; - -/** Convenience wrapper for the numbered sigc::slot1 template. - * See the base class for useful methods. - * This is the template specialization of the unnumbered sigc::slot - * template for 1 argument(s). - */ -template -class slot - : public slot1 -{ -public: - typedef slot1 parent_type; - - inline slot() {} - - /** Constructs a slot from an arbitrary functor. - * @param _A_func The desirer functor the new slot should be assigned to. - */ - template - slot(const T_functor& _A_func) - : parent_type(_A_func) {} - - slot(const slot& src) - : parent_type((const parent_type&)src) {} -}; - -/** Convenience wrapper for the numbered sigc::slot2 template. - * See the base class for useful methods. - * This is the template specialization of the unnumbered sigc::slot - * template for 2 argument(s). - */ -template -class slot - : public slot2 -{ -public: - typedef slot2 parent_type; - - inline slot() {} - - /** Constructs a slot from an arbitrary functor. - * @param _A_func The desirer functor the new slot should be assigned to. - */ - template - slot(const T_functor& _A_func) - : parent_type(_A_func) {} - - slot(const slot& src) - : parent_type((const parent_type&)src) {} -}; - -/** Convenience wrapper for the numbered sigc::slot3 template. - * See the base class for useful methods. - * This is the template specialization of the unnumbered sigc::slot - * template for 3 argument(s). - */ -template -class slot - : public slot3 -{ -public: - typedef slot3 parent_type; - - inline slot() {} - - /** Constructs a slot from an arbitrary functor. - * @param _A_func The desirer functor the new slot should be assigned to. - */ - template - slot(const T_functor& _A_func) - : parent_type(_A_func) {} - - slot(const slot& src) - : parent_type((const parent_type&)src) {} -}; - -/** Convenience wrapper for the numbered sigc::slot4 template. - * See the base class for useful methods. - * This is the template specialization of the unnumbered sigc::slot - * template for 4 argument(s). - */ -template -class slot - : public slot4 -{ -public: - typedef slot4 parent_type; - - inline slot() {} - - /** Constructs a slot from an arbitrary functor. - * @param _A_func The desirer functor the new slot should be assigned to. - */ - template - slot(const T_functor& _A_func) - : parent_type(_A_func) {} - - slot(const slot& src) - : parent_type((const parent_type&)src) {} -}; - -/** Convenience wrapper for the numbered sigc::slot5 template. - * See the base class for useful methods. - * This is the template specialization of the unnumbered sigc::slot - * template for 5 argument(s). - */ -template -class slot - : public slot5 -{ -public: - typedef slot5 parent_type; - - inline slot() {} - - /** Constructs a slot from an arbitrary functor. - * @param _A_func The desirer functor the new slot should be assigned to. - */ - template - slot(const T_functor& _A_func) - : parent_type(_A_func) {} - - slot(const slot& src) - : parent_type((const parent_type&)src) {} -}; - -/** Convenience wrapper for the numbered sigc::slot6 template. - * See the base class for useful methods. - * This is the template specialization of the unnumbered sigc::slot - * template for 6 argument(s). - */ -template -class slot - : public slot6 -{ -public: - typedef slot6 parent_type; - - inline slot() {} - - /** Constructs a slot from an arbitrary functor. - * @param _A_func The desirer functor the new slot should be assigned to. - */ - template - slot(const T_functor& _A_func) - : parent_type(_A_func) {} - - slot(const slot& src) - : parent_type((const parent_type&)src) {} -}; - - - -} /* namespace sigc */ -#endif /* _SIGC_FUNCTORS_MACROS_SLOTHM4_ */ diff --git a/libs/sigc++2/sigc++/functors/slot_base.cc b/libs/sigc++2/sigc++/functors/slot_base.cc deleted file mode 100644 index bc0f173f22..0000000000 --- a/libs/sigc++2/sigc++/functors/slot_base.cc +++ /dev/null @@ -1,165 +0,0 @@ -// -*- c++ -*- -/* - * Copyright 2003, The libsigc++ Development Team - * - * 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.1 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 - * - */ - -#include - -namespace sigc -{ - -namespace internal { - -// only MSVC needs this to guarantee that all new/delete are executed from the DLL module -#ifdef SIGC_NEW_DELETE_IN_LIBRARY_ONLY -void* slot_rep::operator new(size_t size_) -{ - return malloc(size_); -} - -void slot_rep::operator delete(void* p) -{ - free(p); -} -#endif - -void slot_rep::disconnect() -{ - if (parent_) - { - call_ = 0; // Invalidate the slot. - // _Must_ be done here because parent_ might defer the actual - // destruction of the slot_rep and try to invoke it before that point. - void* data_ = parent_; - parent_ = 0; // Just a precaution. - (cleanup_)(data_); // Notify the parent (might lead to destruction of this!). - } -} - -//static -void* slot_rep::notify(void* data) -{ - slot_rep* self_ = (slot_rep*)data; - self_->call_ = 0; // Invalidate the slot. - self_->destroy(); // Detach the stored functor from the other referred trackables and destroy it. - self_->disconnect(); // Disconnect the slot (might lead to deletion of self_!). - return 0; -} - -} // namespace internal - -slot_base::slot_base() -: rep_(0), - blocked_(false) -{} - -slot_base::slot_base(rep_type* rep) -: rep_(rep), - blocked_(false) -{} - -slot_base::slot_base(const slot_base& src) -: rep_(0), - blocked_(src.blocked_) -{ - if (src.rep_) - rep_ = src.rep_->dup(); -} - -slot_base::~slot_base() -{ - if (rep_) - delete rep_; -} - -slot_base::operator bool() const -{ - return rep_ != 0; -} - -slot_base& slot_base::operator=(const slot_base& src) -{ - if (src.rep_ == rep_) return *this; - - if (src.empty()) - { - disconnect(); - return *this; - } - - internal::slot_rep* new_rep_ = src.rep_->dup(); - - if (rep_) // Silently exchange the slot_rep. - { - new_rep_->set_parent(rep_->parent_, rep_->cleanup_); - delete rep_; - } - - rep_ = new_rep_; - - return *this; -} - -void slot_base::set_parent(void* parent, void* (*cleanup)(void*)) const -{ - if (rep_) - rep_->set_parent(parent, cleanup); -} - -void slot_base::add_destroy_notify_callback(void* data, func_destroy_notify func) const -{ - if (rep_) - rep_->add_destroy_notify_callback(data, func); -} - -void slot_base::remove_destroy_notify_callback(void* data) const -{ - if (rep_) - rep_->remove_destroy_notify_callback(data); -} - -bool slot_base::block(bool should_block) -{ - bool old = blocked_; - blocked_ = should_block; - return old; -} - -bool slot_base::unblock() -{ - return block(false); -} - -void slot_base::disconnect() -{ - if (rep_) - rep_->disconnect(); -} - - -/*bool slot_base::empty() const // having this function not inline is killing performance !!! -{ - if (rep_ && !rep_->call_) - { - delete rep_; // This is not strictly necessary here. I'm convinced that it is - rep_ = 0; // safe to wait for the destructor to delete the slot_rep. Martin. - } - return (rep_ == 0); -}*/ - -} //namespace sigc diff --git a/libs/sigc++2/sigc++/functors/slot_base.h b/libs/sigc++2/sigc++/functors/slot_base.h deleted file mode 100644 index bb2ed343f3..0000000000 --- a/libs/sigc++2/sigc++/functors/slot_base.h +++ /dev/null @@ -1,319 +0,0 @@ -/* - * Copyright 2003, The libsigc++ Development Team - * - * 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.1 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 - * - */ -#ifndef _SIGC_SLOT_BASE_HPP_ -#define _SIGC_SLOT_BASE_HPP_ - -#include -#include -#include - -namespace sigc -{ - -namespace internal { - -typedef void* (*hook)(void*); - -/** Internal representation of a slot. - * Derivations of this class can be considered as a link - * between a slot and the functor that the slot should - * execute in operator(). This link is needed because in - * libsigc++2 the slot doesn't necessarily have exactly the - * same function signature as the functor thus allowing for - * implicit conversions. - * The base class slot_rep serves the purpose to - * - form a common pointer type (slot_rep*), - * - offer the possibility to create duplicates (dup()), - * - offer a notification callback (notify()), - * - implement some of slot_base's interface that depends - * on the notification callback, i.e. - * -# the possibility to set a single parent with a callback - * (set_parent()) that is executed from notify(), - * -# a generic function pointer, call_, that is simply - * set to zero in notify() to invalidate the slot. - * slot_rep inherits trackable so that connection objects can - * refer to the slot and are notified when the slot is destroyed. - */ -struct SIGC_API slot_rep : public trackable -{ - /* NB: Instead of slot_rep we could inherit slot_base from trackable. - * However, a simple benchmark seems to indicate that this slows - * down dereferencing of slot list iterators. Martin. */ - - /// Callback that invokes the contained functor. - /* This can't be a virtual function since number of arguments - * must be flexible. We use function pointers to slot_call::call_it() - * instead. call_ is set to zero to indicate that the slot is invalid. - */ - hook call_; - - /// Callback that detaches the slot_rep object from referred trackables and destroys it. - /* This could be a replaced by a virtual dtor. However since this struct is - * crucual for the efficiency of the whole library we want to avoid this. - */ - hook destroy_; - - /** Callback that makes a deep copy of the slot_rep object. - * @return A deep copy of the slot_rep object. - */ - hook dup_; - - /** Callback of parent_. */ - hook cleanup_; - - /** Parent object whose callback cleanup_ is executed on notification. */ - void* parent_; - - inline slot_rep(hook call__, hook destroy__, hook dup__) - : call_(call__), destroy_(destroy__), dup_(dup__), cleanup_(0), parent_(0) {} - - inline ~slot_rep() - { destroy(); } - - // only MSVC needs this to guarantee that all new/delete are executed from the DLL module -#ifdef SIGC_NEW_DELETE_IN_LIBRARY_ONLY - void* operator new(size_t size_); - void operator delete(void* p); -#endif - - /** Destroys the slot_rep object (but doesn't delete it). - */ - inline void destroy() - { if (destroy_) (*destroy_)(this); } - - /** Makes a deep copy of the slot_rep object. - * @return A deep copy of the slot_rep object. - */ - inline slot_rep* dup() const - { return (slot_rep*)(*dup_)(const_cast(this)); } - - /** Set the parent with a callback. - * slots have one parent exclusively. - * @param parent The new parent. - * @param cleanup The callback to execute from notify(). - */ - inline void set_parent(void* parent, hook cleanup) - { - parent_ = parent; - cleanup_ = cleanup; - } - - /// Invalidates the slot and executes the parent's cleanup callback. - void disconnect(); - - /** Callback that invalidates the slot. - * This callback is registered in every object of a trackable - * inherited type that is referred by this slot_rep object. - * It is executed when the slot becomes invalid because of some - * referred object dying. - * @param data The slot_rep object that is becoming invalid (@p this). - */ - static void* notify(void* data); -}; - -/** Functor used to add a dependency to a trackable. - * Consequently slot_rep::notify() gets executed when the - * trackable is destroyed or overwritten. - */ -struct SIGC_API slot_do_bind -{ - /** The slot_rep object trackables should notify on destruction. */ - slot_rep* rep_; - - /** Construct a slot_do_bind functor. - * @param rep The slot_rep object trackables should notify on destruction. - */ - inline slot_do_bind(slot_rep* rep) : rep_(rep) {} - - /** Adds a dependency to @p t. - * @param t The trackable object to add a callback to. - */ - inline void operator()(const trackable* t) const - { t->add_destroy_notify_callback(rep_, &slot_rep::notify); } -}; - -/// Functor used to remove a dependency from a trackable. -struct SIGC_API slot_do_unbind -{ - /** The slot_rep object trackables don't need to notify on destruction any more. */ - slot_rep* rep_; - - /** Construct a slot_do_unbind functor. - * @param rep The slot_rep object trackables don't need to notify on destruction any more. - */ - inline slot_do_unbind(slot_rep* rep) : rep_(rep) {} - - /** Removes a dependency from @p t. - * @param t The trackable object to remove the callback from. - */ - inline void operator()(const trackable* t) const - { t->remove_destroy_notify_callback(rep_); } -}; - -} //namespace internal - - -/** @defgroup slot Slots - * Slots are type-safe representations of callback methods and functions. - * A Slot can be constructed from any function, regardless of whether it is a global function, - * a member method, static, or virtual. - * - * Use the sigc::mem_fun() and sigc::ptr_fun() template functions to get a sigc::slot, like so: - * - * @code - * sigc::slot sl = sigc::mem_fun(someobj,& SomeClass::somemethod); - * @endcode - * - * or - * - * @code - * sigc::slot sl = sigc::ptr_fun(&somefunction); - * @endcode - * - * or - * - * @code - * m_Button.signal_clicked().connect( sigc::mem_fun(*this, &MyWindow::on_button_clicked) ); - * @endcode - * - * The compiler will complain if SomeClass::somemethod, etc. have the wrong signature. - * - * You can also pass slots as method parameters where you might normally pass a function pointer. - * - * @ingroup functors - */ - -/** Base type for slots. - * slot_base integrates most of the interface of the derived - * sigc::slot templates. slots - * can be connected to signals, be disconnected at some later point - * (disconnect()) and temporarily be blocked (block(), unblock()). - * The validity of a slot can be tested with empty(). - * - * The internal representation of a sigc::internal::slot_rep derived - * type is built from slot_base's derivations. set_parent() is used to - * register a notification callback that is executed when the slot gets - * invalid. add_destroy_notify_callback() is used by connection objects - * to add a notification callback that is executed on destruction. - * - * @ingroup slot - */ -class SIGC_API slot_base : public functor_base -{ - typedef internal::slot_rep rep_type; - -public: - /// Constructs an empty slot. - slot_base(); - - /** Constructs a slot from an existing slot_rep object. - * @param rep The slot_rep object this slot should contain. - */ - explicit slot_base(rep_type* rep); - - /** Constructs a slot, copying an existing one. - * @param src The existing slot to copy. - */ - slot_base(const slot_base& src); - - ~slot_base(); - - /** Tests whether a slot is null, because the default constructor was used. - * Test a slot for null like so: - * @code - * if(slot) - * do_something() - * @endcode - */ - operator bool() const; - - /** Sets the parent of this slot. - * This function is used by signals to register a notification callback. - * This notification callback is executed when the slot becomes invalid - * because of some referred object dying. - * @param parent The new parent. - * @param cleanup The notification callback. - */ - void set_parent(void* parent, void* (*cleanup)(void*)) const; - - typedef trackable::func_destroy_notify func_destroy_notify; - /** Add a callback that is executed (notified) when the slot is detroyed. - * This function is used internally by connection objects. - * @param data Passed into func upon notification. - * @param func Callback executed upon destruction of the object. - */ - void add_destroy_notify_callback(void* data, func_destroy_notify func) const; - - /** Remove a callback previously installed with add_destroy_notify_callback(). - * The callback is not executed. - * @param data Parameter passed into previous call to add_destroy_notify_callback(). - */ - void remove_destroy_notify_callback(void* data) const; - - /** Returns whether the slot is invalid. - * @return @p true if the slot is invalid (empty). - */ - inline bool empty() const - { return (!rep_ || !rep_->call_); } - - /** Returns whether the slot is blocked. - * @return @p true if the slot is blocked. - */ - inline bool blocked() const - { return blocked_; } - - /** Sets the blocking state. - * If @e should_block is @p true then the blocking state is set. - * Subsequent calls to slot::operator()() don't invoke the functor - * contained by this slot until unblock() or block() with - * @e should_block = @p false is called. - * @param should_block Indicates whether the blocking state should be set or unset. - * @return @p true if the slot was in blocking state before. - */ - bool block(bool should_block = true); - - /** Unsets the blocking state. - * @return @p true if the slot was in blocking state before. - */ - bool unblock(); - - /** Disconnects the slot. - * Invalidates the slot and notifies the parent. - */ - void disconnect(); - -protected: - /** Overrides this slot making a copy from another slot. - * @param src The slot from which to make a copy. - * @return @p this. - */ - slot_base& operator=(const slot_base& src); - -public: // public to avoid template friend declarations - /** Typed slot_rep object that contains a functor. */ - mutable rep_type *rep_; - - /** Indicates whether the slot is blocked. */ - bool blocked_; -}; - -} //namespace sigc - -#endif //_SIGC_SLOT_BASE_HPP_ - diff --git a/libs/sigc++2/sigc++/hide.h b/libs/sigc++2/sigc++/hide.h deleted file mode 100644 index c4852b7b42..0000000000 --- a/libs/sigc++2/sigc++/hide.h +++ /dev/null @@ -1,105 +0,0 @@ -// -*- c++ -*- -/* Do not edit! -- generated file */ - -#ifndef _SIGC_MACROS_HIDEHM4_ -#define _SIGC_MACROS_HIDEHM4_ - -#include -#include - - -#ifndef LIBSIGC_DISABLE_DEPRECATED - -namespace SigC { - -template -inline SigC::Slot1 -hide(const SigC::Slot0& _A_slot) -{ return ::sigc::hide_functor<0, SigC::Slot0 > - (_A_slot); } - -template -inline SigC::Slot2 -hide(const SigC::Slot1& _A_slot) -{ return ::sigc::hide_functor<0, SigC::Slot1 > - (_A_slot); } - -template -inline SigC::Slot3 -hide(const SigC::Slot2& _A_slot) -{ return ::sigc::hide_functor<0, SigC::Slot2 > - (_A_slot); } - -template -inline SigC::Slot4 -hide(const SigC::Slot3& _A_slot) -{ return ::sigc::hide_functor<0, SigC::Slot3 > - (_A_slot); } - -template -inline SigC::Slot5 -hide(const SigC::Slot4& _A_slot) -{ return ::sigc::hide_functor<0, SigC::Slot4 > - (_A_slot); } - -template -inline SigC::Slot6 -hide(const SigC::Slot5& _A_slot) -{ return ::sigc::hide_functor<0, SigC::Slot5 > - (_A_slot); } - -template -inline SigC::Slot7 -hide(const SigC::Slot6& _A_slot) -{ return ::sigc::hide_functor<0, SigC::Slot6 > - (_A_slot); } - - -template -inline SigC::Slot2 -hide(const SigC::Slot0& _A_slot) -{ return ::sigc::hide<0>( - ::sigc::hide_functor<0, SigC::Slot0 > - (_A_slot)); } - -template -inline SigC::Slot3 -hide(const SigC::Slot1& _A_slot) -{ return ::sigc::hide<0>( - ::sigc::hide_functor<0, SigC::Slot1 > - (_A_slot)); } - -template -inline SigC::Slot4 -hide(const SigC::Slot2& _A_slot) -{ return ::sigc::hide<0>( - ::sigc::hide_functor<0, SigC::Slot2 > - (_A_slot)); } - -template -inline SigC::Slot5 -hide(const SigC::Slot3& _A_slot) -{ return ::sigc::hide<0>( - ::sigc::hide_functor<0, SigC::Slot3 > - (_A_slot)); } - -template -inline SigC::Slot6 -hide(const SigC::Slot4& _A_slot) -{ return ::sigc::hide<0>( - ::sigc::hide_functor<0, SigC::Slot4 > - (_A_slot)); } - -template -inline SigC::Slot7 -hide(const SigC::Slot5& _A_slot) -{ return ::sigc::hide<0>( - ::sigc::hide_functor<0, SigC::Slot5 > - (_A_slot)); } - - - -} /* namespace SigC */ - -#endif /* LIBSIGC_DISABLE_DEPRECATED */ -#endif /* _SIGC_MACROS_HIDEHM4_ */ diff --git a/libs/sigc++2/sigc++/method_slot.h b/libs/sigc++2/sigc++/method_slot.h deleted file mode 100644 index d92781633b..0000000000 --- a/libs/sigc++2/sigc++/method_slot.h +++ /dev/null @@ -1,387 +0,0 @@ -// -*- c++ -*- -/* Do not edit! -- generated file */ - - -#ifndef _SIGC_MACROS_METHOD_SLOTHM4_ -#define _SIGC_MACROS_METHOD_SLOTHM4_ - -#include -#include - -#ifndef LIBSIGC_DISABLE_DEPRECATED - -namespace SigC { - -/** Creates a functor of type Sigc::Slot1 that wraps a method. - * - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes _A_func on invokation. - * - * @deprecated Use sigc::mem_fun() instead. - * @ingroup compat - */ -template -inline Slot1 -slot(T_return (T_obj::*_A_func)() ) -{ return ::sigc::mem_functor0(_A_func); } - -/** Creates a functor of type Sigc::Slot2 that wraps a method. - * - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes _A_func on invokation. - * - * @deprecated Use sigc::mem_fun() instead. - * @ingroup compat - */ -template -inline Slot2 -slot(T_return (T_obj::*_A_func)(T_arg1) ) -{ return ::sigc::mem_functor1(_A_func); } - -/** Creates a functor of type Sigc::Slot3 that wraps a method. - * - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes _A_func on invokation. - * - * @deprecated Use sigc::mem_fun() instead. - * @ingroup compat - */ -template -inline Slot3 -slot(T_return (T_obj::*_A_func)(T_arg1,T_arg2) ) -{ return ::sigc::mem_functor2(_A_func); } - -/** Creates a functor of type Sigc::Slot4 that wraps a method. - * - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes _A_func on invokation. - * - * @deprecated Use sigc::mem_fun() instead. - * @ingroup compat - */ -template -inline Slot4 -slot(T_return (T_obj::*_A_func)(T_arg1,T_arg2,T_arg3) ) -{ return ::sigc::mem_functor3(_A_func); } - -/** Creates a functor of type Sigc::Slot5 that wraps a method. - * - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes _A_func on invokation. - * - * @deprecated Use sigc::mem_fun() instead. - * @ingroup compat - */ -template -inline Slot5 -slot(T_return (T_obj::*_A_func)(T_arg1,T_arg2,T_arg3,T_arg4) ) -{ return ::sigc::mem_functor4(_A_func); } - -/** Creates a functor of type Sigc::Slot6 that wraps a method. - * - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes _A_func on invokation. - * - * @deprecated Use sigc::mem_fun() instead. - * @ingroup compat - */ -template -inline Slot6 -slot(T_return (T_obj::*_A_func)(T_arg1,T_arg2,T_arg3,T_arg4,T_arg5) ) -{ return ::sigc::mem_functor5(_A_func); } - -/** Creates a functor of type Sigc::Slot7 that wraps a method. - * - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes _A_func on invokation. - * - * @deprecated Use sigc::mem_fun() instead. - * @ingroup compat - */ -template -inline Slot7 -slot(T_return (T_obj::*_A_func)(T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6) ) -{ return ::sigc::mem_functor6(_A_func); } - - -/** Creates a functor of type Sigc::Slot1 that wraps a const method. - * - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes _A_func on invokation. - * - * @deprecated Use sigc::mem_fun() instead. - * @ingroup compat - */ -template -inline Slot1 -slot(T_return (T_obj::*_A_func)() const) -{ return ::sigc::const_mem_functor0(_A_func); } - -/** Creates a functor of type Sigc::Slot2 that wraps a const method. - * - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes _A_func on invokation. - * - * @deprecated Use sigc::mem_fun() instead. - * @ingroup compat - */ -template -inline Slot2 -slot(T_return (T_obj::*_A_func)(T_arg1) const) -{ return ::sigc::const_mem_functor1(_A_func); } - -/** Creates a functor of type Sigc::Slot3 that wraps a const method. - * - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes _A_func on invokation. - * - * @deprecated Use sigc::mem_fun() instead. - * @ingroup compat - */ -template -inline Slot3 -slot(T_return (T_obj::*_A_func)(T_arg1,T_arg2) const) -{ return ::sigc::const_mem_functor2(_A_func); } - -/** Creates a functor of type Sigc::Slot4 that wraps a const method. - * - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes _A_func on invokation. - * - * @deprecated Use sigc::mem_fun() instead. - * @ingroup compat - */ -template -inline Slot4 -slot(T_return (T_obj::*_A_func)(T_arg1,T_arg2,T_arg3) const) -{ return ::sigc::const_mem_functor3(_A_func); } - -/** Creates a functor of type Sigc::Slot5 that wraps a const method. - * - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes _A_func on invokation. - * - * @deprecated Use sigc::mem_fun() instead. - * @ingroup compat - */ -template -inline Slot5 -slot(T_return (T_obj::*_A_func)(T_arg1,T_arg2,T_arg3,T_arg4) const) -{ return ::sigc::const_mem_functor4(_A_func); } - -/** Creates a functor of type Sigc::Slot6 that wraps a const method. - * - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes _A_func on invokation. - * - * @deprecated Use sigc::mem_fun() instead. - * @ingroup compat - */ -template -inline Slot6 -slot(T_return (T_obj::*_A_func)(T_arg1,T_arg2,T_arg3,T_arg4,T_arg5) const) -{ return ::sigc::const_mem_functor5(_A_func); } - -/** Creates a functor of type Sigc::Slot7 that wraps a const method. - * - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes _A_func on invokation. - * - * @deprecated Use sigc::mem_fun() instead. - * @ingroup compat - */ -template -inline Slot7 -slot(T_return (T_obj::*_A_func)(T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6) const) -{ return ::sigc::const_mem_functor6(_A_func); } - - -/** Creates a functor of type Sigc::Slot1 that wraps a volatile method. - * - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes _A_func on invokation. - * - * @deprecated Use sigc::mem_fun() instead. - * @ingroup compat - */ -template -inline Slot1 -slot(T_return (T_obj::*_A_func)() volatile) -{ return ::sigc::volatile_mem_functor0(_A_func); } - -/** Creates a functor of type Sigc::Slot2 that wraps a volatile method. - * - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes _A_func on invokation. - * - * @deprecated Use sigc::mem_fun() instead. - * @ingroup compat - */ -template -inline Slot2 -slot(T_return (T_obj::*_A_func)(T_arg1) volatile) -{ return ::sigc::volatile_mem_functor1(_A_func); } - -/** Creates a functor of type Sigc::Slot3 that wraps a volatile method. - * - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes _A_func on invokation. - * - * @deprecated Use sigc::mem_fun() instead. - * @ingroup compat - */ -template -inline Slot3 -slot(T_return (T_obj::*_A_func)(T_arg1,T_arg2) volatile) -{ return ::sigc::volatile_mem_functor2(_A_func); } - -/** Creates a functor of type Sigc::Slot4 that wraps a volatile method. - * - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes _A_func on invokation. - * - * @deprecated Use sigc::mem_fun() instead. - * @ingroup compat - */ -template -inline Slot4 -slot(T_return (T_obj::*_A_func)(T_arg1,T_arg2,T_arg3) volatile) -{ return ::sigc::volatile_mem_functor3(_A_func); } - -/** Creates a functor of type Sigc::Slot5 that wraps a volatile method. - * - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes _A_func on invokation. - * - * @deprecated Use sigc::mem_fun() instead. - * @ingroup compat - */ -template -inline Slot5 -slot(T_return (T_obj::*_A_func)(T_arg1,T_arg2,T_arg3,T_arg4) volatile) -{ return ::sigc::volatile_mem_functor4(_A_func); } - -/** Creates a functor of type Sigc::Slot6 that wraps a volatile method. - * - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes _A_func on invokation. - * - * @deprecated Use sigc::mem_fun() instead. - * @ingroup compat - */ -template -inline Slot6 -slot(T_return (T_obj::*_A_func)(T_arg1,T_arg2,T_arg3,T_arg4,T_arg5) volatile) -{ return ::sigc::volatile_mem_functor5(_A_func); } - -/** Creates a functor of type Sigc::Slot7 that wraps a volatile method. - * - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes _A_func on invokation. - * - * @deprecated Use sigc::mem_fun() instead. - * @ingroup compat - */ -template -inline Slot7 -slot(T_return (T_obj::*_A_func)(T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6) volatile) -{ return ::sigc::volatile_mem_functor6(_A_func); } - - -/** Creates a functor of type Sigc::Slot1 that wraps a const volatile method. - * - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes _A_func on invokation. - * - * @deprecated Use sigc::mem_fun() instead. - * @ingroup compat - */ -template -inline Slot1 -slot(T_return (T_obj::*_A_func)() const volatile) -{ return ::sigc::const_volatile_mem_functor0(_A_func); } - -/** Creates a functor of type Sigc::Slot2 that wraps a const volatile method. - * - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes _A_func on invokation. - * - * @deprecated Use sigc::mem_fun() instead. - * @ingroup compat - */ -template -inline Slot2 -slot(T_return (T_obj::*_A_func)(T_arg1) const volatile) -{ return ::sigc::const_volatile_mem_functor1(_A_func); } - -/** Creates a functor of type Sigc::Slot3 that wraps a const volatile method. - * - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes _A_func on invokation. - * - * @deprecated Use sigc::mem_fun() instead. - * @ingroup compat - */ -template -inline Slot3 -slot(T_return (T_obj::*_A_func)(T_arg1,T_arg2) const volatile) -{ return ::sigc::const_volatile_mem_functor2(_A_func); } - -/** Creates a functor of type Sigc::Slot4 that wraps a const volatile method. - * - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes _A_func on invokation. - * - * @deprecated Use sigc::mem_fun() instead. - * @ingroup compat - */ -template -inline Slot4 -slot(T_return (T_obj::*_A_func)(T_arg1,T_arg2,T_arg3) const volatile) -{ return ::sigc::const_volatile_mem_functor3(_A_func); } - -/** Creates a functor of type Sigc::Slot5 that wraps a const volatile method. - * - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes _A_func on invokation. - * - * @deprecated Use sigc::mem_fun() instead. - * @ingroup compat - */ -template -inline Slot5 -slot(T_return (T_obj::*_A_func)(T_arg1,T_arg2,T_arg3,T_arg4) const volatile) -{ return ::sigc::const_volatile_mem_functor4(_A_func); } - -/** Creates a functor of type Sigc::Slot6 that wraps a const volatile method. - * - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes _A_func on invokation. - * - * @deprecated Use sigc::mem_fun() instead. - * @ingroup compat - */ -template -inline Slot6 -slot(T_return (T_obj::*_A_func)(T_arg1,T_arg2,T_arg3,T_arg4,T_arg5) const volatile) -{ return ::sigc::const_volatile_mem_functor5(_A_func); } - -/** Creates a functor of type Sigc::Slot7 that wraps a const volatile method. - * - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes _A_func on invokation. - * - * @deprecated Use sigc::mem_fun() instead. - * @ingroup compat - */ -template -inline Slot7 -slot(T_return (T_obj::*_A_func)(T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6) const volatile) -{ return ::sigc::const_volatile_mem_functor6(_A_func); } - - - -} - -#endif -#endif /* _SIGC_MACROS_METHOD_SLOTHM4_ */ diff --git a/libs/sigc++2/sigc++/object.h b/libs/sigc++2/sigc++/object.h deleted file mode 100644 index 0ddefa02b2..0000000000 --- a/libs/sigc++2/sigc++/object.h +++ /dev/null @@ -1,35 +0,0 @@ -/* - * Copyright 2002, The libsigc++ Development Team - * - * 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.1 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 - * - */ -#ifndef _SIGC_OBJECT_HPP_ -#define _SIGC_OBJECT_HPP_ - -#include - -#ifndef LIBSIGC_DISABLE_DEPRECATED - -namespace SigC { - -// Object -typedef ::sigc::trackable Object; - -} - -#endif /* LIBSIGC_DISABLE_DEPRECATED */ - -#endif /* _SIGC_OBJECT_HPP_ */ diff --git a/libs/sigc++2/sigc++/object_slot.h b/libs/sigc++2/sigc++/object_slot.h deleted file mode 100644 index e9d031ed50..0000000000 --- a/libs/sigc++2/sigc++/object_slot.h +++ /dev/null @@ -1,536 +0,0 @@ -// -*- c++ -*- -/* Do not edit! -- generated file */ - - -#ifndef _SIGC_MACROS_OBJECT_SLOTHM4_ -#define _SIGC_MACROS_OBJECT_SLOTHM4_ - -#include -#include -#include - -#ifndef LIBSIGC_DISABLE_DEPRECATED - -namespace SigC { - -/** Creates a functor of type SigC::Slot0 that encapsulates a method and an object instance. - * @e _A_obj must be of a type that inherits from SigC::Object. - * - * @param _A_obj Reference to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes _A_func on invokation. - * - * @deprecated Use sigc::mem_fun() instead. - * @ingroup compat - */ -template -inline Slot0 -slot( T_obj1& _A_obj, T_return (T_obj2::*_A_func)() ) -{ (void)dynamic_cast< Object&>(_A_obj); // trigger compiler error if T_obj1 does not derive from SigC::Object - return ::sigc::bound_mem_functor0(_A_obj, _A_func); } - -/** Creates a functor of type SigC::Slot1 that encapsulates a method and an object instance. - * @e _A_obj must be of a type that inherits from SigC::Object. - * - * @param _A_obj Reference to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes _A_func on invokation. - * - * @deprecated Use sigc::mem_fun() instead. - * @ingroup compat - */ -template -inline Slot1 -slot( T_obj1& _A_obj, T_return (T_obj2::*_A_func)(T_arg1) ) -{ (void)dynamic_cast< Object&>(_A_obj); // trigger compiler error if T_obj1 does not derive from SigC::Object - return ::sigc::bound_mem_functor1(_A_obj, _A_func); } - -/** Creates a functor of type SigC::Slot2 that encapsulates a method and an object instance. - * @e _A_obj must be of a type that inherits from SigC::Object. - * - * @param _A_obj Reference to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes _A_func on invokation. - * - * @deprecated Use sigc::mem_fun() instead. - * @ingroup compat - */ -template -inline Slot2 -slot( T_obj1& _A_obj, T_return (T_obj2::*_A_func)(T_arg1,T_arg2) ) -{ (void)dynamic_cast< Object&>(_A_obj); // trigger compiler error if T_obj1 does not derive from SigC::Object - return ::sigc::bound_mem_functor2(_A_obj, _A_func); } - -/** Creates a functor of type SigC::Slot3 that encapsulates a method and an object instance. - * @e _A_obj must be of a type that inherits from SigC::Object. - * - * @param _A_obj Reference to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes _A_func on invokation. - * - * @deprecated Use sigc::mem_fun() instead. - * @ingroup compat - */ -template -inline Slot3 -slot( T_obj1& _A_obj, T_return (T_obj2::*_A_func)(T_arg1,T_arg2,T_arg3) ) -{ (void)dynamic_cast< Object&>(_A_obj); // trigger compiler error if T_obj1 does not derive from SigC::Object - return ::sigc::bound_mem_functor3(_A_obj, _A_func); } - -/** Creates a functor of type SigC::Slot4 that encapsulates a method and an object instance. - * @e _A_obj must be of a type that inherits from SigC::Object. - * - * @param _A_obj Reference to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes _A_func on invokation. - * - * @deprecated Use sigc::mem_fun() instead. - * @ingroup compat - */ -template -inline Slot4 -slot( T_obj1& _A_obj, T_return (T_obj2::*_A_func)(T_arg1,T_arg2,T_arg3,T_arg4) ) -{ (void)dynamic_cast< Object&>(_A_obj); // trigger compiler error if T_obj1 does not derive from SigC::Object - return ::sigc::bound_mem_functor4(_A_obj, _A_func); } - -/** Creates a functor of type SigC::Slot5 that encapsulates a method and an object instance. - * @e _A_obj must be of a type that inherits from SigC::Object. - * - * @param _A_obj Reference to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes _A_func on invokation. - * - * @deprecated Use sigc::mem_fun() instead. - * @ingroup compat - */ -template -inline Slot5 -slot( T_obj1& _A_obj, T_return (T_obj2::*_A_func)(T_arg1,T_arg2,T_arg3,T_arg4,T_arg5) ) -{ (void)dynamic_cast< Object&>(_A_obj); // trigger compiler error if T_obj1 does not derive from SigC::Object - return ::sigc::bound_mem_functor5(_A_obj, _A_func); } - -/** Creates a functor of type SigC::Slot6 that encapsulates a method and an object instance. - * @e _A_obj must be of a type that inherits from SigC::Object. - * - * @param _A_obj Reference to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes _A_func on invokation. - * - * @deprecated Use sigc::mem_fun() instead. - * @ingroup compat - */ -template -inline Slot6 -slot( T_obj1& _A_obj, T_return (T_obj2::*_A_func)(T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6) ) -{ (void)dynamic_cast< Object&>(_A_obj); // trigger compiler error if T_obj1 does not derive from SigC::Object - return ::sigc::bound_mem_functor6(_A_obj, _A_func); } - -/** Creates a functor of type SigC::Slot7 that encapsulates a method and an object instance. - * @e _A_obj must be of a type that inherits from SigC::Object. - * - * @param _A_obj Reference to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes _A_func on invokation. - * - * @deprecated Use sigc::mem_fun() instead. - * @ingroup compat - */ -template -inline Slot7 -slot( T_obj1& _A_obj, T_return (T_obj2::*_A_func)(T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6,T_arg7) ) -{ (void)dynamic_cast< Object&>(_A_obj); // trigger compiler error if T_obj1 does not derive from SigC::Object - return ::sigc::bound_mem_functor7(_A_obj, _A_func); } - - -/** Creates a functor of type SigC::Slot0 that encapsulates a const method and an object instance. - * @e _A_obj must be of a type that inherits from SigC::Object. - * - * @param _A_obj Reference to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes _A_func on invokation. - * - * @deprecated Use sigc::mem_fun() instead. - * @ingroup compat - */ -template -inline Slot0 -slot(const T_obj1& _A_obj, T_return (T_obj2::*_A_func)() const) -{ (void)dynamic_cast(_A_obj); // trigger compiler error if T_obj1 does not derive from SigC::Object - return ::sigc::bound_const_mem_functor0(_A_obj, _A_func); } - -/** Creates a functor of type SigC::Slot1 that encapsulates a const method and an object instance. - * @e _A_obj must be of a type that inherits from SigC::Object. - * - * @param _A_obj Reference to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes _A_func on invokation. - * - * @deprecated Use sigc::mem_fun() instead. - * @ingroup compat - */ -template -inline Slot1 -slot(const T_obj1& _A_obj, T_return (T_obj2::*_A_func)(T_arg1) const) -{ (void)dynamic_cast(_A_obj); // trigger compiler error if T_obj1 does not derive from SigC::Object - return ::sigc::bound_const_mem_functor1(_A_obj, _A_func); } - -/** Creates a functor of type SigC::Slot2 that encapsulates a const method and an object instance. - * @e _A_obj must be of a type that inherits from SigC::Object. - * - * @param _A_obj Reference to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes _A_func on invokation. - * - * @deprecated Use sigc::mem_fun() instead. - * @ingroup compat - */ -template -inline Slot2 -slot(const T_obj1& _A_obj, T_return (T_obj2::*_A_func)(T_arg1,T_arg2) const) -{ (void)dynamic_cast(_A_obj); // trigger compiler error if T_obj1 does not derive from SigC::Object - return ::sigc::bound_const_mem_functor2(_A_obj, _A_func); } - -/** Creates a functor of type SigC::Slot3 that encapsulates a const method and an object instance. - * @e _A_obj must be of a type that inherits from SigC::Object. - * - * @param _A_obj Reference to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes _A_func on invokation. - * - * @deprecated Use sigc::mem_fun() instead. - * @ingroup compat - */ -template -inline Slot3 -slot(const T_obj1& _A_obj, T_return (T_obj2::*_A_func)(T_arg1,T_arg2,T_arg3) const) -{ (void)dynamic_cast(_A_obj); // trigger compiler error if T_obj1 does not derive from SigC::Object - return ::sigc::bound_const_mem_functor3(_A_obj, _A_func); } - -/** Creates a functor of type SigC::Slot4 that encapsulates a const method and an object instance. - * @e _A_obj must be of a type that inherits from SigC::Object. - * - * @param _A_obj Reference to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes _A_func on invokation. - * - * @deprecated Use sigc::mem_fun() instead. - * @ingroup compat - */ -template -inline Slot4 -slot(const T_obj1& _A_obj, T_return (T_obj2::*_A_func)(T_arg1,T_arg2,T_arg3,T_arg4) const) -{ (void)dynamic_cast(_A_obj); // trigger compiler error if T_obj1 does not derive from SigC::Object - return ::sigc::bound_const_mem_functor4(_A_obj, _A_func); } - -/** Creates a functor of type SigC::Slot5 that encapsulates a const method and an object instance. - * @e _A_obj must be of a type that inherits from SigC::Object. - * - * @param _A_obj Reference to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes _A_func on invokation. - * - * @deprecated Use sigc::mem_fun() instead. - * @ingroup compat - */ -template -inline Slot5 -slot(const T_obj1& _A_obj, T_return (T_obj2::*_A_func)(T_arg1,T_arg2,T_arg3,T_arg4,T_arg5) const) -{ (void)dynamic_cast(_A_obj); // trigger compiler error if T_obj1 does not derive from SigC::Object - return ::sigc::bound_const_mem_functor5(_A_obj, _A_func); } - -/** Creates a functor of type SigC::Slot6 that encapsulates a const method and an object instance. - * @e _A_obj must be of a type that inherits from SigC::Object. - * - * @param _A_obj Reference to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes _A_func on invokation. - * - * @deprecated Use sigc::mem_fun() instead. - * @ingroup compat - */ -template -inline Slot6 -slot(const T_obj1& _A_obj, T_return (T_obj2::*_A_func)(T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6) const) -{ (void)dynamic_cast(_A_obj); // trigger compiler error if T_obj1 does not derive from SigC::Object - return ::sigc::bound_const_mem_functor6(_A_obj, _A_func); } - -/** Creates a functor of type SigC::Slot7 that encapsulates a const method and an object instance. - * @e _A_obj must be of a type that inherits from SigC::Object. - * - * @param _A_obj Reference to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes _A_func on invokation. - * - * @deprecated Use sigc::mem_fun() instead. - * @ingroup compat - */ -template -inline Slot7 -slot(const T_obj1& _A_obj, T_return (T_obj2::*_A_func)(T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6,T_arg7) const) -{ (void)dynamic_cast(_A_obj); // trigger compiler error if T_obj1 does not derive from SigC::Object - return ::sigc::bound_const_mem_functor7(_A_obj, _A_func); } - - -/** Creates a functor of type SigC::Slot0 that encapsulates a volatile method and an object instance. - * @e _A_obj must be of a type that inherits from SigC::Object. - * - * @param _A_obj Reference to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes _A_func on invokation. - * - * @deprecated Use sigc::mem_fun() instead. - * @ingroup compat - */ -template -inline Slot0 -slot( T_obj1& _A_obj, T_return (T_obj2::*_A_func)() volatile) -{ (void)dynamic_cast< Object&>(_A_obj); // trigger compiler error if T_obj1 does not derive from SigC::Object - return ::sigc::bound_volatile_mem_functor0(_A_obj, _A_func); } - -/** Creates a functor of type SigC::Slot1 that encapsulates a volatile method and an object instance. - * @e _A_obj must be of a type that inherits from SigC::Object. - * - * @param _A_obj Reference to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes _A_func on invokation. - * - * @deprecated Use sigc::mem_fun() instead. - * @ingroup compat - */ -template -inline Slot1 -slot( T_obj1& _A_obj, T_return (T_obj2::*_A_func)(T_arg1) volatile) -{ (void)dynamic_cast< Object&>(_A_obj); // trigger compiler error if T_obj1 does not derive from SigC::Object - return ::sigc::bound_volatile_mem_functor1(_A_obj, _A_func); } - -/** Creates a functor of type SigC::Slot2 that encapsulates a volatile method and an object instance. - * @e _A_obj must be of a type that inherits from SigC::Object. - * - * @param _A_obj Reference to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes _A_func on invokation. - * - * @deprecated Use sigc::mem_fun() instead. - * @ingroup compat - */ -template -inline Slot2 -slot( T_obj1& _A_obj, T_return (T_obj2::*_A_func)(T_arg1,T_arg2) volatile) -{ (void)dynamic_cast< Object&>(_A_obj); // trigger compiler error if T_obj1 does not derive from SigC::Object - return ::sigc::bound_volatile_mem_functor2(_A_obj, _A_func); } - -/** Creates a functor of type SigC::Slot3 that encapsulates a volatile method and an object instance. - * @e _A_obj must be of a type that inherits from SigC::Object. - * - * @param _A_obj Reference to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes _A_func on invokation. - * - * @deprecated Use sigc::mem_fun() instead. - * @ingroup compat - */ -template -inline Slot3 -slot( T_obj1& _A_obj, T_return (T_obj2::*_A_func)(T_arg1,T_arg2,T_arg3) volatile) -{ (void)dynamic_cast< Object&>(_A_obj); // trigger compiler error if T_obj1 does not derive from SigC::Object - return ::sigc::bound_volatile_mem_functor3(_A_obj, _A_func); } - -/** Creates a functor of type SigC::Slot4 that encapsulates a volatile method and an object instance. - * @e _A_obj must be of a type that inherits from SigC::Object. - * - * @param _A_obj Reference to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes _A_func on invokation. - * - * @deprecated Use sigc::mem_fun() instead. - * @ingroup compat - */ -template -inline Slot4 -slot( T_obj1& _A_obj, T_return (T_obj2::*_A_func)(T_arg1,T_arg2,T_arg3,T_arg4) volatile) -{ (void)dynamic_cast< Object&>(_A_obj); // trigger compiler error if T_obj1 does not derive from SigC::Object - return ::sigc::bound_volatile_mem_functor4(_A_obj, _A_func); } - -/** Creates a functor of type SigC::Slot5 that encapsulates a volatile method and an object instance. - * @e _A_obj must be of a type that inherits from SigC::Object. - * - * @param _A_obj Reference to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes _A_func on invokation. - * - * @deprecated Use sigc::mem_fun() instead. - * @ingroup compat - */ -template -inline Slot5 -slot( T_obj1& _A_obj, T_return (T_obj2::*_A_func)(T_arg1,T_arg2,T_arg3,T_arg4,T_arg5) volatile) -{ (void)dynamic_cast< Object&>(_A_obj); // trigger compiler error if T_obj1 does not derive from SigC::Object - return ::sigc::bound_volatile_mem_functor5(_A_obj, _A_func); } - -/** Creates a functor of type SigC::Slot6 that encapsulates a volatile method and an object instance. - * @e _A_obj must be of a type that inherits from SigC::Object. - * - * @param _A_obj Reference to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes _A_func on invokation. - * - * @deprecated Use sigc::mem_fun() instead. - * @ingroup compat - */ -template -inline Slot6 -slot( T_obj1& _A_obj, T_return (T_obj2::*_A_func)(T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6) volatile) -{ (void)dynamic_cast< Object&>(_A_obj); // trigger compiler error if T_obj1 does not derive from SigC::Object - return ::sigc::bound_volatile_mem_functor6(_A_obj, _A_func); } - -/** Creates a functor of type SigC::Slot7 that encapsulates a volatile method and an object instance. - * @e _A_obj must be of a type that inherits from SigC::Object. - * - * @param _A_obj Reference to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes _A_func on invokation. - * - * @deprecated Use sigc::mem_fun() instead. - * @ingroup compat - */ -template -inline Slot7 -slot( T_obj1& _A_obj, T_return (T_obj2::*_A_func)(T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6,T_arg7) volatile) -{ (void)dynamic_cast< Object&>(_A_obj); // trigger compiler error if T_obj1 does not derive from SigC::Object - return ::sigc::bound_volatile_mem_functor7(_A_obj, _A_func); } - - -/** Creates a functor of type SigC::Slot0 that encapsulates a const volatile method and an object instance. - * @e _A_obj must be of a type that inherits from SigC::Object. - * - * @param _A_obj Reference to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes _A_func on invokation. - * - * @deprecated Use sigc::mem_fun() instead. - * @ingroup compat - */ -template -inline Slot0 -slot(const T_obj1& _A_obj, T_return (T_obj2::*_A_func)() const volatile) -{ (void)dynamic_cast(_A_obj); // trigger compiler error if T_obj1 does not derive from SigC::Object - return ::sigc::bound_const_volatile_mem_functor0(_A_obj, _A_func); } - -/** Creates a functor of type SigC::Slot1 that encapsulates a const volatile method and an object instance. - * @e _A_obj must be of a type that inherits from SigC::Object. - * - * @param _A_obj Reference to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes _A_func on invokation. - * - * @deprecated Use sigc::mem_fun() instead. - * @ingroup compat - */ -template -inline Slot1 -slot(const T_obj1& _A_obj, T_return (T_obj2::*_A_func)(T_arg1) const volatile) -{ (void)dynamic_cast(_A_obj); // trigger compiler error if T_obj1 does not derive from SigC::Object - return ::sigc::bound_const_volatile_mem_functor1(_A_obj, _A_func); } - -/** Creates a functor of type SigC::Slot2 that encapsulates a const volatile method and an object instance. - * @e _A_obj must be of a type that inherits from SigC::Object. - * - * @param _A_obj Reference to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes _A_func on invokation. - * - * @deprecated Use sigc::mem_fun() instead. - * @ingroup compat - */ -template -inline Slot2 -slot(const T_obj1& _A_obj, T_return (T_obj2::*_A_func)(T_arg1,T_arg2) const volatile) -{ (void)dynamic_cast(_A_obj); // trigger compiler error if T_obj1 does not derive from SigC::Object - return ::sigc::bound_const_volatile_mem_functor2(_A_obj, _A_func); } - -/** Creates a functor of type SigC::Slot3 that encapsulates a const volatile method and an object instance. - * @e _A_obj must be of a type that inherits from SigC::Object. - * - * @param _A_obj Reference to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes _A_func on invokation. - * - * @deprecated Use sigc::mem_fun() instead. - * @ingroup compat - */ -template -inline Slot3 -slot(const T_obj1& _A_obj, T_return (T_obj2::*_A_func)(T_arg1,T_arg2,T_arg3) const volatile) -{ (void)dynamic_cast(_A_obj); // trigger compiler error if T_obj1 does not derive from SigC::Object - return ::sigc::bound_const_volatile_mem_functor3(_A_obj, _A_func); } - -/** Creates a functor of type SigC::Slot4 that encapsulates a const volatile method and an object instance. - * @e _A_obj must be of a type that inherits from SigC::Object. - * - * @param _A_obj Reference to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes _A_func on invokation. - * - * @deprecated Use sigc::mem_fun() instead. - * @ingroup compat - */ -template -inline Slot4 -slot(const T_obj1& _A_obj, T_return (T_obj2::*_A_func)(T_arg1,T_arg2,T_arg3,T_arg4) const volatile) -{ (void)dynamic_cast(_A_obj); // trigger compiler error if T_obj1 does not derive from SigC::Object - return ::sigc::bound_const_volatile_mem_functor4(_A_obj, _A_func); } - -/** Creates a functor of type SigC::Slot5 that encapsulates a const volatile method and an object instance. - * @e _A_obj must be of a type that inherits from SigC::Object. - * - * @param _A_obj Reference to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes _A_func on invokation. - * - * @deprecated Use sigc::mem_fun() instead. - * @ingroup compat - */ -template -inline Slot5 -slot(const T_obj1& _A_obj, T_return (T_obj2::*_A_func)(T_arg1,T_arg2,T_arg3,T_arg4,T_arg5) const volatile) -{ (void)dynamic_cast(_A_obj); // trigger compiler error if T_obj1 does not derive from SigC::Object - return ::sigc::bound_const_volatile_mem_functor5(_A_obj, _A_func); } - -/** Creates a functor of type SigC::Slot6 that encapsulates a const volatile method and an object instance. - * @e _A_obj must be of a type that inherits from SigC::Object. - * - * @param _A_obj Reference to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes _A_func on invokation. - * - * @deprecated Use sigc::mem_fun() instead. - * @ingroup compat - */ -template -inline Slot6 -slot(const T_obj1& _A_obj, T_return (T_obj2::*_A_func)(T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6) const volatile) -{ (void)dynamic_cast(_A_obj); // trigger compiler error if T_obj1 does not derive from SigC::Object - return ::sigc::bound_const_volatile_mem_functor6(_A_obj, _A_func); } - -/** Creates a functor of type SigC::Slot7 that encapsulates a const volatile method and an object instance. - * @e _A_obj must be of a type that inherits from SigC::Object. - * - * @param _A_obj Reference to object instance the functor should operate on. - * @param _A_func Pointer to method that should be wrapped. - * @return Functor that executes _A_func on invokation. - * - * @deprecated Use sigc::mem_fun() instead. - * @ingroup compat - */ -template -inline Slot7 -slot(const T_obj1& _A_obj, T_return (T_obj2::*_A_func)(T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6,T_arg7) const volatile) -{ (void)dynamic_cast(_A_obj); // trigger compiler error if T_obj1 does not derive from SigC::Object - return ::sigc::bound_const_volatile_mem_functor7(_A_obj, _A_func); } - - - -} - -#endif -#endif /* _SIGC_MACROS_OBJECT_SLOTHM4_ */ diff --git a/libs/sigc++2/sigc++/reference_wrapper.h b/libs/sigc++2/sigc++/reference_wrapper.h deleted file mode 100644 index 436e02f9bb..0000000000 --- a/libs/sigc++2/sigc++/reference_wrapper.h +++ /dev/null @@ -1,118 +0,0 @@ -/* - * Copyright 2002, The libsigc++ Development Team - * - * 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.1 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 - * - */ -#ifndef _SIGC_REFERENCE_WRAPPER_H_ -#define _SIGC_REFERENCE_WRAPPER_H_ - -namespace sigc { - -/** Reference wrapper. - * Use sigc::ref() to create a reference wrapper. - */ -template -struct reference_wrapper -{ - explicit reference_wrapper(T_type& v) - : value_(v) {} - - operator T_type& () const - { return value_; } - - T_type& value_; -}; - -/** Const reference wrapper. - * Use sigc::ref() to create a const reference wrapper. - */ -template -struct const_reference_wrapper -{ - explicit const_reference_wrapper(const T_type& v) - : value_(v) {} - - operator const T_type& () const - { return value_; } - - const T_type& value_; -}; - -/** Creates a reference wrapper. - * Passing an object throught sigc::ref() makes libsigc++ adaptors - * like, e.g., sigc::bind store references to the object instead of copies. - * If the object type inherits from sigc::trackable this will ensure - * automatic invalidation of the adaptors when the object is deleted - * or overwritten. - * - * @param v Reference to store. - * @return A reference wrapper. - */ -template -reference_wrapper ref(T_type& v) -{ return reference_wrapper(v); } - -/** Creates a const reference wrapper. - * Passing an object throught sigc::ref() makes libsigc++ adaptors - * like, e.g., sigc::bind store references to the object instead of copies. - * If the object type inherits from sigc::trackable this will ensure - * automatic invalidation of the adaptors when the object is deleted - * or overwritten. - * - * @param v Reference to store. - * @return A reference wrapper. - */ -template -const_reference_wrapper ref(const T_type& v) -{ return const_reference_wrapper(v); } - -template -struct unwrap_reference -{ - typedef T_type type; -}; - -template -struct unwrap_reference > -{ - typedef T_type& type; -}; - -template -struct unwrap_reference > -{ - typedef const T_type& type; -}; - -template -T_type& unwrap(T_type& v) -{ return v; } - -template -const T_type& unwrap(const T_type& v) -{ return v; } - -template -T_type& unwrap(const reference_wrapper& v) -{ return v; } - -template -const T_type& unwrap(const const_reference_wrapper& v) -{ return v; } - -} /* namespace sigc */ - -#endif /* _SIGC_REFERENCE_WRAPPER_H_ */ diff --git a/libs/sigc++2/sigc++/retype.h b/libs/sigc++2/sigc++/retype.h deleted file mode 100644 index 069313573b..0000000000 --- a/libs/sigc++2/sigc++/retype.h +++ /dev/null @@ -1,321 +0,0 @@ -// -*- c++ -*- -/* Do not edit! -- generated file */ -#ifndef _SIGC_MACROS_RETYPEHM4_ -#define _SIGC_MACROS_RETYPEHM4_ -#include -#include - -#ifndef LIBSIGC_DISABLE_DEPRECATED - -namespace SigC { - -template -struct retype_slot_functor - : public ::sigc::adapts -{ - template - struct deduce_result_type - { typedef T_return type; }; - typedef T_return result_type; - - T_return operator()(); - - template - inline T_return operator()(T_arg1 _A_a1) - { return T_return(this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::take> - ((T_type1)_A_a1)); - } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - inline T_return sun_forte_workaround(T_arg1 _A_a1) - { return T_return(this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::take> - ((T_type1)_A_a1)); - } - #endif - - template - inline T_return operator()(T_arg1 _A_a1,T_arg2 _A_a2) - { return T_return(this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::take,typename ::sigc::type_trait::take> - ((T_type1)_A_a1,(T_type2)_A_a2)); - } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - inline T_return sun_forte_workaround(T_arg1 _A_a1,T_arg2 _A_a2) - { return T_return(this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::take,typename ::sigc::type_trait::take> - ((T_type1)_A_a1,(T_type2)_A_a2)); - } - #endif - - template - inline T_return operator()(T_arg1 _A_a1,T_arg2 _A_a2,T_arg3 _A_a3) - { return T_return(this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::take,typename ::sigc::type_trait::take,typename ::sigc::type_trait::take> - ((T_type1)_A_a1,(T_type2)_A_a2,(T_type3)_A_a3)); - } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - inline T_return sun_forte_workaround(T_arg1 _A_a1,T_arg2 _A_a2,T_arg3 _A_a3) - { return T_return(this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::take,typename ::sigc::type_trait::take,typename ::sigc::type_trait::take> - ((T_type1)_A_a1,(T_type2)_A_a2,(T_type3)_A_a3)); - } - #endif - - template - inline T_return operator()(T_arg1 _A_a1,T_arg2 _A_a2,T_arg3 _A_a3,T_arg4 _A_a4) - { return T_return(this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::take,typename ::sigc::type_trait::take,typename ::sigc::type_trait::take,typename ::sigc::type_trait::take> - ((T_type1)_A_a1,(T_type2)_A_a2,(T_type3)_A_a3,(T_type4)_A_a4)); - } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - inline T_return sun_forte_workaround(T_arg1 _A_a1,T_arg2 _A_a2,T_arg3 _A_a3,T_arg4 _A_a4) - { return T_return(this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::take,typename ::sigc::type_trait::take,typename ::sigc::type_trait::take,typename ::sigc::type_trait::take> - ((T_type1)_A_a1,(T_type2)_A_a2,(T_type3)_A_a3,(T_type4)_A_a4)); - } - #endif - - template - inline T_return operator()(T_arg1 _A_a1,T_arg2 _A_a2,T_arg3 _A_a3,T_arg4 _A_a4,T_arg5 _A_a5) - { return T_return(this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::take,typename ::sigc::type_trait::take,typename ::sigc::type_trait::take,typename ::sigc::type_trait::take,typename ::sigc::type_trait::take> - ((T_type1)_A_a1,(T_type2)_A_a2,(T_type3)_A_a3,(T_type4)_A_a4,(T_type5)_A_a5)); - } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - inline T_return sun_forte_workaround(T_arg1 _A_a1,T_arg2 _A_a2,T_arg3 _A_a3,T_arg4 _A_a4,T_arg5 _A_a5) - { return T_return(this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::take,typename ::sigc::type_trait::take,typename ::sigc::type_trait::take,typename ::sigc::type_trait::take,typename ::sigc::type_trait::take> - ((T_type1)_A_a1,(T_type2)_A_a2,(T_type3)_A_a3,(T_type4)_A_a4,(T_type5)_A_a5)); - } - #endif - - template - inline T_return operator()(T_arg1 _A_a1,T_arg2 _A_a2,T_arg3 _A_a3,T_arg4 _A_a4,T_arg5 _A_a5,T_arg6 _A_a6) - { return T_return(this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::take,typename ::sigc::type_trait::take,typename ::sigc::type_trait::take,typename ::sigc::type_trait::take,typename ::sigc::type_trait::take,typename ::sigc::type_trait::take> - ((T_type1)_A_a1,(T_type2)_A_a2,(T_type3)_A_a3,(T_type4)_A_a4,(T_type5)_A_a5,(T_type6)_A_a6)); - } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - inline T_return sun_forte_workaround(T_arg1 _A_a1,T_arg2 _A_a2,T_arg3 _A_a3,T_arg4 _A_a4,T_arg5 _A_a5,T_arg6 _A_a6) - { return T_return(this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::take,typename ::sigc::type_trait::take,typename ::sigc::type_trait::take,typename ::sigc::type_trait::take,typename ::sigc::type_trait::take,typename ::sigc::type_trait::take> - ((T_type1)_A_a1,(T_type2)_A_a2,(T_type3)_A_a3,(T_type4)_A_a4,(T_type5)_A_a5,(T_type6)_A_a6)); - } - #endif - - template - inline T_return operator()(T_arg1 _A_a1,T_arg2 _A_a2,T_arg3 _A_a3,T_arg4 _A_a4,T_arg5 _A_a5,T_arg6 _A_a6,T_arg7 _A_a7) - { return T_return(this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::take,typename ::sigc::type_trait::take,typename ::sigc::type_trait::take,typename ::sigc::type_trait::take,typename ::sigc::type_trait::take,typename ::sigc::type_trait::take,typename ::sigc::type_trait::take> - ((T_type1)_A_a1,(T_type2)_A_a2,(T_type3)_A_a3,(T_type4)_A_a4,(T_type5)_A_a5,(T_type6)_A_a6,(T_type7)_A_a7)); - } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - inline T_return sun_forte_workaround(T_arg1 _A_a1,T_arg2 _A_a2,T_arg3 _A_a3,T_arg4 _A_a4,T_arg5 _A_a5,T_arg6 _A_a6,T_arg7 _A_a7) - { return T_return(this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::take,typename ::sigc::type_trait::take,typename ::sigc::type_trait::take,typename ::sigc::type_trait::take,typename ::sigc::type_trait::take,typename ::sigc::type_trait::take,typename ::sigc::type_trait::take> - ((T_type1)_A_a1,(T_type2)_A_a2,(T_type3)_A_a3,(T_type4)_A_a4,(T_type5)_A_a5,(T_type6)_A_a6,(T_type7)_A_a7)); - } - #endif - - - retype_slot_functor(typename ::sigc::type_trait::take _A_functor) - : ::sigc::adapts(_A_functor) - {} -}; - -template -T_return retype_slot_functor::operator()() - { return T_return(this->functor_()); } - - -// void specialization needed because of explicit cast to T_return -template -struct retype_slot_functor - : public ::sigc::adapts -{ - template - struct deduce_result_type - { typedef void type; }; - typedef void result_type; - - void operator()(); - - template - inline void operator()(T_arg1 _A_a1) - { T_return(this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::take> - ((T_type1)_A_a1)); - } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - inline void sun_forte_workaround(T_arg1 _A_a1) - { T_return(this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::take> - ((T_type1)_A_a1)); - } - #endif - - template - inline void operator()(T_arg1 _A_a1,T_arg2 _A_a2) - { T_return(this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::take,typename ::sigc::type_trait::take> - ((T_type1)_A_a1,(T_type2)_A_a2)); - } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - inline void sun_forte_workaround(T_arg1 _A_a1,T_arg2 _A_a2) - { T_return(this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::take,typename ::sigc::type_trait::take> - ((T_type1)_A_a1,(T_type2)_A_a2)); - } - #endif - - template - inline void operator()(T_arg1 _A_a1,T_arg2 _A_a2,T_arg3 _A_a3) - { T_return(this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::take,typename ::sigc::type_trait::take,typename ::sigc::type_trait::take> - ((T_type1)_A_a1,(T_type2)_A_a2,(T_type3)_A_a3)); - } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - inline void sun_forte_workaround(T_arg1 _A_a1,T_arg2 _A_a2,T_arg3 _A_a3) - { T_return(this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::take,typename ::sigc::type_trait::take,typename ::sigc::type_trait::take> - ((T_type1)_A_a1,(T_type2)_A_a2,(T_type3)_A_a3)); - } - #endif - - template - inline void operator()(T_arg1 _A_a1,T_arg2 _A_a2,T_arg3 _A_a3,T_arg4 _A_a4) - { T_return(this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::take,typename ::sigc::type_trait::take,typename ::sigc::type_trait::take,typename ::sigc::type_trait::take> - ((T_type1)_A_a1,(T_type2)_A_a2,(T_type3)_A_a3,(T_type4)_A_a4)); - } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - inline void sun_forte_workaround(T_arg1 _A_a1,T_arg2 _A_a2,T_arg3 _A_a3,T_arg4 _A_a4) - { T_return(this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::take,typename ::sigc::type_trait::take,typename ::sigc::type_trait::take,typename ::sigc::type_trait::take> - ((T_type1)_A_a1,(T_type2)_A_a2,(T_type3)_A_a3,(T_type4)_A_a4)); - } - #endif - - template - inline void operator()(T_arg1 _A_a1,T_arg2 _A_a2,T_arg3 _A_a3,T_arg4 _A_a4,T_arg5 _A_a5) - { T_return(this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::take,typename ::sigc::type_trait::take,typename ::sigc::type_trait::take,typename ::sigc::type_trait::take,typename ::sigc::type_trait::take> - ((T_type1)_A_a1,(T_type2)_A_a2,(T_type3)_A_a3,(T_type4)_A_a4,(T_type5)_A_a5)); - } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - inline void sun_forte_workaround(T_arg1 _A_a1,T_arg2 _A_a2,T_arg3 _A_a3,T_arg4 _A_a4,T_arg5 _A_a5) - { T_return(this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::take,typename ::sigc::type_trait::take,typename ::sigc::type_trait::take,typename ::sigc::type_trait::take,typename ::sigc::type_trait::take> - ((T_type1)_A_a1,(T_type2)_A_a2,(T_type3)_A_a3,(T_type4)_A_a4,(T_type5)_A_a5)); - } - #endif - - template - inline void operator()(T_arg1 _A_a1,T_arg2 _A_a2,T_arg3 _A_a3,T_arg4 _A_a4,T_arg5 _A_a5,T_arg6 _A_a6) - { T_return(this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::take,typename ::sigc::type_trait::take,typename ::sigc::type_trait::take,typename ::sigc::type_trait::take,typename ::sigc::type_trait::take,typename ::sigc::type_trait::take> - ((T_type1)_A_a1,(T_type2)_A_a2,(T_type3)_A_a3,(T_type4)_A_a4,(T_type5)_A_a5,(T_type6)_A_a6)); - } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - inline void sun_forte_workaround(T_arg1 _A_a1,T_arg2 _A_a2,T_arg3 _A_a3,T_arg4 _A_a4,T_arg5 _A_a5,T_arg6 _A_a6) - { T_return(this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::take,typename ::sigc::type_trait::take,typename ::sigc::type_trait::take,typename ::sigc::type_trait::take,typename ::sigc::type_trait::take,typename ::sigc::type_trait::take> - ((T_type1)_A_a1,(T_type2)_A_a2,(T_type3)_A_a3,(T_type4)_A_a4,(T_type5)_A_a5,(T_type6)_A_a6)); - } - #endif - - template - inline void operator()(T_arg1 _A_a1,T_arg2 _A_a2,T_arg3 _A_a3,T_arg4 _A_a4,T_arg5 _A_a5,T_arg6 _A_a6,T_arg7 _A_a7) - { T_return(this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::take,typename ::sigc::type_trait::take,typename ::sigc::type_trait::take,typename ::sigc::type_trait::take,typename ::sigc::type_trait::take,typename ::sigc::type_trait::take,typename ::sigc::type_trait::take> - ((T_type1)_A_a1,(T_type2)_A_a2,(T_type3)_A_a3,(T_type4)_A_a4,(T_type5)_A_a5,(T_type6)_A_a6,(T_type7)_A_a7)); - } - - #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - template - inline void sun_forte_workaround(T_arg1 _A_a1,T_arg2 _A_a2,T_arg3 _A_a3,T_arg4 _A_a4,T_arg5 _A_a5,T_arg6 _A_a6,T_arg7 _A_a7) - { T_return(this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES::take,typename ::sigc::type_trait::take,typename ::sigc::type_trait::take,typename ::sigc::type_trait::take,typename ::sigc::type_trait::take,typename ::sigc::type_trait::take,typename ::sigc::type_trait::take> - ((T_type1)_A_a1,(T_type2)_A_a2,(T_type3)_A_a3,(T_type4)_A_a4,(T_type5)_A_a5,(T_type6)_A_a6,(T_type7)_A_a7)); - } - #endif - - - retype_slot_functor(typename ::sigc::type_trait::take _A_functor) - : ::sigc::adapts(_A_functor) - {} -}; - -template -void retype_slot_functor::operator()() - { this->functor_(); } - - -template -void visit_each(const T_action& _A_action, - const retype_slot_functor& _A_target) -{ - visit_each(_A_action, _A_target.functor_); -} - - -template -inline Slot0 -retype(const Slot0& _A_slot) -{ return Slot0 - (retype_slot_functor, T_return> - (_A_slot)); } - -template -inline Slot1 -retype(const Slot1& _A_slot) -{ return Slot1 - (retype_slot_functor, T_return, T_type1> - (_A_slot)); } - -template -inline Slot2 -retype(const Slot2& _A_slot) -{ return Slot2 - (retype_slot_functor, T_return, T_type1,T_type2> - (_A_slot)); } - -template -inline Slot3 -retype(const Slot3& _A_slot) -{ return Slot3 - (retype_slot_functor, T_return, T_type1,T_type2,T_type3> - (_A_slot)); } - -template -inline Slot4 -retype(const Slot4& _A_slot) -{ return Slot4 - (retype_slot_functor, T_return, T_type1,T_type2,T_type3,T_type4> - (_A_slot)); } - -template -inline Slot5 -retype(const Slot5& _A_slot) -{ return Slot5 - (retype_slot_functor, T_return, T_type1,T_type2,T_type3,T_type4,T_type5> - (_A_slot)); } - -template -inline Slot6 -retype(const Slot6& _A_slot) -{ return Slot6 - (retype_slot_functor, T_return, T_type1,T_type2,T_type3,T_type4,T_type5,T_type6> - (_A_slot)); } - -template -inline Slot7 -retype(const Slot7& _A_slot) -{ return Slot7 - (retype_slot_functor, T_return, T_type1,T_type2,T_type3,T_type4,T_type5,T_type6,T_type7> - (_A_slot)); } - - -} /* namespace SigC */ - -#endif /* LIBSIGC_DISABLE_DEPRECATED */ -#endif /* _SIGC_MACROS_RETYPEHM4_ */ diff --git a/libs/sigc++2/sigc++/retype_return.h b/libs/sigc++2/sigc++/retype_return.h deleted file mode 100644 index cc6c153394..0000000000 --- a/libs/sigc++2/sigc++/retype_return.h +++ /dev/null @@ -1,35 +0,0 @@ -/* - * Copyright 2002, The libsigc++ Development Team - * - * 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.1 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 - * - */ -#ifndef _SIGC_RETYPE_RETURN_HPP_ -#define _SIGC_RETYPE_RETURN_HPP_ - -#include - -#ifndef LIBSIGC_DISABLE_DEPRECATED - -namespace SigC { - -using ::sigc::retype_return; -using ::sigc::hide_return; - -} - -#endif /* LIBSIGC_DISABLE_DEPRECATED */ - -#endif /* _SIGC_RETYPE_RETURN_HPP_ */ diff --git a/libs/sigc++2/sigc++/sigc++.h b/libs/sigc++2/sigc++/sigc++.h deleted file mode 100644 index 90a9e6dd17..0000000000 --- a/libs/sigc++2/sigc++/sigc++.h +++ /dev/null @@ -1,30 +0,0 @@ -/* - * Copyright 2003, The libsigc++ Development Team - * - * 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.1 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 - * - */ - -#ifndef SIGCXX_SIGCXX_H -#define SIGCXX_SIGCXX_H - -#include -#include -#include -#include -#include - -#endif /* SIGCXX_SIGCXX_H */ - diff --git a/libs/sigc++2/sigc++/signal.cc b/libs/sigc++2/sigc++/signal.cc deleted file mode 100644 index 993eee4aca..0000000000 --- a/libs/sigc++2/sigc++/signal.cc +++ /dev/null @@ -1,25 +0,0 @@ -// -*- c++ -*- -/* - * Copyright 2002, The libsigc++ Development Team - * - * 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.1 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 - * - */ -#include - -namespace sigc { - - -} /* sigc */ diff --git a/libs/sigc++2/sigc++/signal.h b/libs/sigc++2/sigc++/signal.h deleted file mode 100644 index 9c4e35442a..0000000000 --- a/libs/sigc++2/sigc++/signal.h +++ /dev/null @@ -1,3188 +0,0 @@ -// -*- c++ -*- -/* Do not edit! -- generated file */ - -#ifndef _SIGC_SIGNAL_H_ -#define _SIGC_SIGNAL_H_ - -#include -#include -#include -#include -#include -#include - -// TODO: This should have its own test. -// I have just used this because there is a correlation between these two problems. -#ifdef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - //Compilers, such as SUN Forte C++, that do not allow this also often - //do not allow a typedef to have the same name as a class in the typedef's definition. - #define SIGC_TYPEDEF_REDEFINE_ALLOWED 1 -#endif - -namespace sigc { - -/** STL-style iterator for slot_list. - * - * @ingroup signal - */ -template -struct slot_iterator -{ - typedef size_t size_type; - typedef ptrdiff_t difference_type; - typedef std::bidirectional_iterator_tag iterator_category; - - typedef T_slot slot_type; - - typedef T_slot value_type; - typedef T_slot* pointer; - typedef T_slot& reference; - - typedef typename internal::signal_impl::iterator_type iterator_type; - - slot_iterator() - {} - - explicit slot_iterator(const iterator_type& i) - : i_(i) {} - - reference operator*() const - { return static_cast(*i_); } - - pointer operator->() const - { return &(operator*()); } - - slot_iterator& operator++() - { - ++i_; - return *this; - } - - slot_iterator operator++(int) - { - slot_iterator __tmp(*this); - ++i_; - return __tmp; - } - - slot_iterator& operator--() - { - --i_; - return *this; - } - - slot_iterator& operator--(int) - { - slot_iterator __tmp(*this); - --i_; - return __tmp; - } - - bool operator == (const slot_iterator& other) const - { return i_ == other.i_; } - - bool operator != (const slot_iterator& other) const - { return i_ != other.i_; } - - iterator_type i_; -}; - -/** STL-style const iterator for slot_list. - * - * @ingroup signal - */ -template -struct slot_const_iterator -{ - typedef size_t size_type; - typedef ptrdiff_t difference_type; - typedef std::bidirectional_iterator_tag iterator_category; - - typedef T_slot slot_type; - - typedef T_slot value_type; - typedef const T_slot* pointer; - typedef const T_slot& reference; - - typedef typename internal::signal_impl::const_iterator_type iterator_type; - - slot_const_iterator() - {} - - explicit slot_const_iterator(const iterator_type& i) - : i_(i) {} - - reference operator*() const - { return static_cast(*i_); } - - pointer operator->() const - { return &(operator*()); } - - slot_const_iterator& operator++() - { - ++i_; - return *this; - } - - slot_const_iterator operator++(int) - { - slot_const_iterator __tmp(*this); - ++i_; - return __tmp; - } - - slot_const_iterator& operator--() - { - --i_; - return *this; - } - - slot_const_iterator& operator--(int) - { - slot_const_iterator __tmp(*this); - --i_; - return __tmp; - } - - bool operator == (const slot_const_iterator& other) const - { return i_ == other.i_; } - - bool operator != (const slot_const_iterator& other) const - { return i_ != other.i_; } - - iterator_type i_; -}; - -/** STL-style list interface for sigc::signal#. - * slot_list can be used to iterate over the list of slots that - * is managed by a signal. Slots can be added or removed from - * the list while existing iterators stay valid. A slot_list - * object can be retrieved from the signal's slots() function. - * - * @ingroup signal - */ -template -struct slot_list -{ - typedef T_slot slot_type; - - typedef slot_type& reference; - typedef const slot_type& const_reference; - - typedef slot_iterator iterator; - typedef slot_const_iterator const_iterator; - typedef std::reverse_iterator reverse_iterator; - typedef std::reverse_iterator const_reverse_iterator; - - slot_list() - : list_(0) {} - - explicit slot_list(internal::signal_impl* __list) - : list_(__list) {} - - iterator begin() - { return iterator(list_->slots_.begin()); } - - const_iterator begin() const - { return const_iterator(list_->slots_.begin()); } - - iterator end() - { return iterator(list_->slots_.end()); } - - const_iterator end() const - { return const_iterator(list_->slots_.end()); } - - reverse_iterator rbegin() - { return reverse_iterator(end()); } - - const_reverse_iterator rbegin() const - { return const_reverse_iterator(end()); } - - reverse_iterator rend() - { return reverse_iterator(begin()); } - - const_reverse_iterator rend() const - { return const_reverse_iterator(begin()); } - - reference front() - { return *begin(); } - - const_reference front() const - { return *begin(); } - - reference back() - { return *(--end()); } - - const_reference back() const - { return *(--end()); } - - iterator insert(iterator i, const slot_type& slot_) - { return iterator(list_->insert(i.i_, static_cast(slot_))); } - - void push_front(const slot_type& c) - { insert(begin(), c); } - - void push_back(const slot_type& c) - { insert(end(), c); } - - iterator erase(iterator i) - { return iterator(list_->erase(i.i_)); } - - iterator erase(iterator first_, iterator last_) - { - while (first_ != last_) - first_ = erase(first_); - return last_; - } - - void pop_front() - { erase(begin()); } - - void pop_back() - { - iterator tmp_ = end(); - erase(--tmp_); - } - -protected: - internal::signal_impl* list_; -}; - - -namespace internal { - -/** Special iterator over sigc::internal::signal_impl's slot list that holds extra data. - * This iterators is for use in accumulators. operator*() executes - * the slot. The return value is buffered, so that in an expression - * like @code a = (*i) * (*i); @endcode the slot is executed only once. - */ -template -struct slot_iterator_buf -{ - typedef size_t size_type; - typedef ptrdiff_t difference_type; - typedef std::bidirectional_iterator_tag iterator_category; - - typedef T_emitter emitter_type; - typedef T_result result_type; - typedef typename T_emitter::slot_type slot_type; - - typedef signal_impl::const_iterator_type iterator_type; - - slot_iterator_buf() - : c_(0), invoked_(false) {} - - slot_iterator_buf(const iterator_type& i, const emitter_type* c) - : i_(i), c_(c), invoked_(false) {} - - result_type operator*() const - { - if (!i_->empty() && !i_->blocked() && !invoked_) - { - r_ = (*c_)(static_cast(*i_)); - invoked_ = true; - } - return r_; - } - - slot_iterator_buf& operator++() - { - ++i_; - invoked_ = false; - return *this; - } - - slot_iterator_buf operator++(int) - { - slot_iterator_buf __tmp(*this); - ++i_; - invoked_ = false; - return __tmp; - } - - slot_iterator_buf& operator--() - { - --i_; - invoked_ = false; - return *this; - } - - slot_iterator_buf& operator--(int) - { - slot_iterator_buf __tmp(*this); - --i_; - invoked_ = false; - return __tmp; - } - - bool operator == (const slot_iterator_buf& other) const - { return (!c_ || (i_ == other.i_)); } /* If '!c_' the iterators are empty. - * Unfortunately, empty stl iterators are not equal. - * We are forcing equality so that 'first==last' - * in the accumulator's emit function yields true. */ - - bool operator != (const slot_iterator_buf& other) const - { return (c_ && (i_ != other.i_)); } - -private: - iterator_type i_; - const emitter_type* c_; - mutable result_type r_; - mutable bool invoked_; -}; - -/** Template specialization of slot_iterator_buf for void return signals. - */ -template -struct slot_iterator_buf -{ - typedef size_t size_type; - typedef ptrdiff_t difference_type; - typedef std::bidirectional_iterator_tag iterator_category; - - typedef T_emitter emitter_type; - typedef void result_type; - typedef typename T_emitter::slot_type slot_type; - - typedef signal_impl::const_iterator_type iterator_type; - - slot_iterator_buf() - : c_(0), invoked_(false) {} - - slot_iterator_buf(const iterator_type& i, const emitter_type* c) - : i_(i), c_(c), invoked_(false) {} - - void operator*() const - { - if (!i_->empty() && !i_->blocked() && !invoked_) - { - (*c_)(static_cast(*i_)); - invoked_ = true; - } - } - - slot_iterator_buf& operator++() - { - ++i_; - invoked_ = false; - return *this; - } - - slot_iterator_buf operator++(int) - { - slot_iterator_buf __tmp(*this); - ++i_; - invoked_ = false; - return __tmp; - } - - slot_iterator_buf& operator--() - { - --i_; - invoked_ = false; - return *this; - } - - slot_iterator_buf& operator--(int) - { - slot_iterator_buf __tmp(*this); - --i_; - invoked_ = false; - return __tmp; - } - - bool operator == (const slot_iterator_buf& other) const - { return i_ == other.i_; } - - bool operator != (const slot_iterator_buf& other) const - { return i_ != other.i_; } - -private: - iterator_type i_; - const emitter_type* c_; - mutable bool invoked_; -}; - -/** Abstracts signal emission. - * This template implements the emit() function of signal0. - * Template specializations are available to optimize signal - * emission when no accumulator is used, i.e. the template - * argument @e T_accumulator is @p nil_. - */ -template -struct signal_emit0 -{ - typedef signal_emit0 self_type; - typedef typename T_accumulator::result_type result_type; - typedef slot slot_type; - typedef internal::slot_iterator_buf slot_iterator_buf_type; - typedef signal_impl::const_iterator_type iterator_type; - - signal_emit0() {} - - /** Invokes a slot. - * @param _A_slot Some slot to invoke. - * @return The slot's return value. - */ - T_return operator()(const slot_type& _A_slot) const - { return (reinterpret_cast(_A_slot.rep_->call_))(_A_slot.rep_); } - - /** Executes a list of slots using an accumulator of type @e T_accumulator. - - * @return The accumulated return values of the slot invocations as processed by the accumulator. - */ - static result_type emit(signal_impl* impl) - { - T_accumulator accumulator; - - if (!impl) - return accumulator(slot_iterator_buf_type(), slot_iterator_buf_type()); - - signal_exec exec(impl); - - self_type self ; - return accumulator(slot_iterator_buf_type(impl->slots_.begin(), &self), - slot_iterator_buf_type(impl->slots_.end(), &self)); - } - -}; - -/** Abstracts signal emission. - * This template specialization implements an optimized emit() - * function for the case that no accumulator is used. - */ -template -struct signal_emit0 -{ - typedef signal_emit0 self_type; - typedef T_return result_type; - typedef slot slot_type; - typedef signal_impl::const_iterator_type iterator_type; - typedef typename slot_type::call_type call_type; - - /** Executes a list of slots using an accumulator of type @e T_accumulator. - * The return value of the last slot invoked is returned. - * @param first An iterator pointing to the first slot in the list. - * @param last An iterator pointing to the last slot in the list. - * @return The return value of the last slot invoked. - */ - static result_type emit(signal_impl* impl) - { - if (!impl || impl->slots_.empty()) return T_return(); - iterator_type it = impl->slots_.begin(); - for (; it != impl->slots_.end(); ++it) - if (!it->empty() && !it->blocked()) break; - if (it == impl->slots_.end()) return T_return(); // note that 'T_return r_();' doesn't work => define 'r_' after this line and initialize as follows: - - signal_exec exec(impl); - - T_return r_ = (reinterpret_cast(it->rep_->call_))(it->rep_); - for (++it; it != impl->slots_.end(); ++it) - { - if (it->empty() || it->blocked()) - continue; - r_ = (reinterpret_cast(it->rep_->call_))(it->rep_); - } - return r_; - } -}; - -/** Abstracts signal emission. - * This template specialization implements an optimized emit() - * function for the case that no accumulator is used and the - * return type is @p void. - */ -template <> -struct signal_emit0 -{ - typedef signal_emit0 self_type; - typedef void result_type; - typedef slot slot_type; - typedef signal_impl::const_iterator_type iterator_type; - typedef void (*call_type)(slot_rep*); - - /** Executes a list of slots using an accumulator of type @e T_accumulator. - * @param first An iterator pointing to the first slot in the list. - * @param last An iterator pointing to the last slot in the list. - */ - static result_type emit(signal_impl* impl) - { - if (!impl || impl->slots_.empty()) return; - signal_exec exec(impl); - - for (iterator_type it = impl->slots_.begin(); it != impl->slots_.end(); ++it) - { - if (it->empty() || it->blocked()) - continue; - (reinterpret_cast(it->rep_->call_))(it->rep_); - } - } -}; - -/** Abstracts signal emission. - * This template implements the emit() function of signal1. - * Template specializations are available to optimize signal - * emission when no accumulator is used, i.e. the template - * argument @e T_accumulator is @p nil_. - */ -template -struct signal_emit1 -{ - typedef signal_emit1 self_type; - typedef typename T_accumulator::result_type result_type; - typedef slot slot_type; - typedef internal::slot_iterator_buf slot_iterator_buf_type; - typedef signal_impl::const_iterator_type iterator_type; - - /** Instantiates the class. - * The parameters are stored in member variables. operator()() passes - * the values on to some slot. - */ - signal_emit1(typename type_trait::take _A_a1) - : _A_a1_(_A_a1) {} - - - /** Invokes a slot using the buffered parameter values. - * @param _A_slot Some slot to invoke. - * @return The slot's return value. - */ - T_return operator()(const slot_type& _A_slot) const - { return (reinterpret_cast(_A_slot.rep_->call_))(_A_slot.rep_, _A_a1_); } - - /** Executes a list of slots using an accumulator of type @e T_accumulator. - * The arguments are buffered in a temporary instance of signal_emit1. - - * @param _A_a1 Argument to be passed on to the slots. - * @return The accumulated return values of the slot invocations as processed by the accumulator. - */ - static result_type emit(signal_impl* impl, typename type_trait::take _A_a1) - { - T_accumulator accumulator; - - if (!impl) - return accumulator(slot_iterator_buf_type(), slot_iterator_buf_type()); - - signal_exec exec(impl); - - self_type self (_A_a1); - return accumulator(slot_iterator_buf_type(impl->slots_.begin(), &self), - slot_iterator_buf_type(impl->slots_.end(), &self)); - } - - typename type_trait::take _A_a1_; -}; - -/** Abstracts signal emission. - * This template specialization implements an optimized emit() - * function for the case that no accumulator is used. - */ -template -struct signal_emit1 -{ - typedef signal_emit1 self_type; - typedef T_return result_type; - typedef slot slot_type; - typedef signal_impl::const_iterator_type iterator_type; - typedef typename slot_type::call_type call_type; - - /** Executes a list of slots using an accumulator of type @e T_accumulator. - * The arguments are passed directly on to the slots. - * The return value of the last slot invoked is returned. - * @param first An iterator pointing to the first slot in the list. - * @param last An iterator pointing to the last slot in the list. - * @param _A_a1 Argument to be passed on to the slots. - * @return The return value of the last slot invoked. - */ - static result_type emit(signal_impl* impl, typename type_trait::take _A_a1) - { - if (!impl || impl->slots_.empty()) return T_return(); - iterator_type it = impl->slots_.begin(); - for (; it != impl->slots_.end(); ++it) - if (!it->empty() && !it->blocked()) break; - if (it == impl->slots_.end()) return T_return(); // note that 'T_return r_();' doesn't work => define 'r_' after this line and initialize as follows: - - signal_exec exec(impl); - - T_return r_ = (reinterpret_cast(it->rep_->call_))(it->rep_, _A_a1); - for (++it; it != impl->slots_.end(); ++it) - { - if (it->empty() || it->blocked()) - continue; - r_ = (reinterpret_cast(it->rep_->call_))(it->rep_, _A_a1); - } - return r_; - } -}; - -/** Abstracts signal emission. - * This template specialization implements an optimized emit() - * function for the case that no accumulator is used and the - * return type is @p void. - */ -template -struct signal_emit1 -{ - typedef signal_emit1 self_type; - typedef void result_type; - typedef slot slot_type; - typedef signal_impl::const_iterator_type iterator_type; - typedef typename slot_type::call_type call_type; - - /** Executes a list of slots using an accumulator of type @e T_accumulator. - * The arguments are passed directly on to the slots. - * @param first An iterator pointing to the first slot in the list. - * @param last An iterator pointing to the last slot in the list. - * @param _A_a1 Argument to be passed on to the slots. - */ - static result_type emit(signal_impl* impl, typename type_trait::take _A_a1) - { - if (!impl || impl->slots_.empty()) return; - signal_exec exec(impl); - - for (iterator_type it = impl->slots_.begin(); it != impl->slots_.end(); ++it) - { - if (it->empty() || it->blocked()) - continue; - (reinterpret_cast(it->rep_->call_))(it->rep_, _A_a1); - } - } -}; - -/** Abstracts signal emission. - * This template implements the emit() function of signal2. - * Template specializations are available to optimize signal - * emission when no accumulator is used, i.e. the template - * argument @e T_accumulator is @p nil_. - */ -template -struct signal_emit2 -{ - typedef signal_emit2 self_type; - typedef typename T_accumulator::result_type result_type; - typedef slot slot_type; - typedef internal::slot_iterator_buf slot_iterator_buf_type; - typedef signal_impl::const_iterator_type iterator_type; - - /** Instantiates the class. - * The parameters are stored in member variables. operator()() passes - * the values on to some slot. - */ - signal_emit2(typename type_trait::take _A_a1,typename type_trait::take _A_a2) - : _A_a1_(_A_a1),_A_a2_(_A_a2) {} - - - /** Invokes a slot using the buffered parameter values. - * @param _A_slot Some slot to invoke. - * @return The slot's return value. - */ - T_return operator()(const slot_type& _A_slot) const - { return (reinterpret_cast(_A_slot.rep_->call_))(_A_slot.rep_, _A_a1_,_A_a2_); } - - /** Executes a list of slots using an accumulator of type @e T_accumulator. - * The arguments are buffered in a temporary instance of signal_emit2. - - * @param _A_a1 Argument to be passed on to the slots. - * @param _A_a2 Argument to be passed on to the slots. - * @return The accumulated return values of the slot invocations as processed by the accumulator. - */ - static result_type emit(signal_impl* impl, typename type_trait::take _A_a1,typename type_trait::take _A_a2) - { - T_accumulator accumulator; - - if (!impl) - return accumulator(slot_iterator_buf_type(), slot_iterator_buf_type()); - - signal_exec exec(impl); - - self_type self (_A_a1,_A_a2); - return accumulator(slot_iterator_buf_type(impl->slots_.begin(), &self), - slot_iterator_buf_type(impl->slots_.end(), &self)); - } - - typename type_trait::take _A_a1_; - typename type_trait::take _A_a2_; -}; - -/** Abstracts signal emission. - * This template specialization implements an optimized emit() - * function for the case that no accumulator is used. - */ -template -struct signal_emit2 -{ - typedef signal_emit2 self_type; - typedef T_return result_type; - typedef slot slot_type; - typedef signal_impl::const_iterator_type iterator_type; - typedef typename slot_type::call_type call_type; - - /** Executes a list of slots using an accumulator of type @e T_accumulator. - * The arguments are passed directly on to the slots. - * The return value of the last slot invoked is returned. - * @param first An iterator pointing to the first slot in the list. - * @param last An iterator pointing to the last slot in the list. - * @param _A_a1 Argument to be passed on to the slots. - * @param _A_a2 Argument to be passed on to the slots. - * @return The return value of the last slot invoked. - */ - static result_type emit(signal_impl* impl, typename type_trait::take _A_a1,typename type_trait::take _A_a2) - { - if (!impl || impl->slots_.empty()) return T_return(); - iterator_type it = impl->slots_.begin(); - for (; it != impl->slots_.end(); ++it) - if (!it->empty() && !it->blocked()) break; - if (it == impl->slots_.end()) return T_return(); // note that 'T_return r_();' doesn't work => define 'r_' after this line and initialize as follows: - - signal_exec exec(impl); - - T_return r_ = (reinterpret_cast(it->rep_->call_))(it->rep_, _A_a1,_A_a2); - for (++it; it != impl->slots_.end(); ++it) - { - if (it->empty() || it->blocked()) - continue; - r_ = (reinterpret_cast(it->rep_->call_))(it->rep_, _A_a1,_A_a2); - } - return r_; - } -}; - -/** Abstracts signal emission. - * This template specialization implements an optimized emit() - * function for the case that no accumulator is used and the - * return type is @p void. - */ -template -struct signal_emit2 -{ - typedef signal_emit2 self_type; - typedef void result_type; - typedef slot slot_type; - typedef signal_impl::const_iterator_type iterator_type; - typedef typename slot_type::call_type call_type; - - /** Executes a list of slots using an accumulator of type @e T_accumulator. - * The arguments are passed directly on to the slots. - * @param first An iterator pointing to the first slot in the list. - * @param last An iterator pointing to the last slot in the list. - * @param _A_a1 Argument to be passed on to the slots. - * @param _A_a2 Argument to be passed on to the slots. - */ - static result_type emit(signal_impl* impl, typename type_trait::take _A_a1,typename type_trait::take _A_a2) - { - if (!impl || impl->slots_.empty()) return; - signal_exec exec(impl); - - for (iterator_type it = impl->slots_.begin(); it != impl->slots_.end(); ++it) - { - if (it->empty() || it->blocked()) - continue; - (reinterpret_cast(it->rep_->call_))(it->rep_, _A_a1,_A_a2); - } - } -}; - -/** Abstracts signal emission. - * This template implements the emit() function of signal3. - * Template specializations are available to optimize signal - * emission when no accumulator is used, i.e. the template - * argument @e T_accumulator is @p nil_. - */ -template -struct signal_emit3 -{ - typedef signal_emit3 self_type; - typedef typename T_accumulator::result_type result_type; - typedef slot slot_type; - typedef internal::slot_iterator_buf slot_iterator_buf_type; - typedef signal_impl::const_iterator_type iterator_type; - - /** Instantiates the class. - * The parameters are stored in member variables. operator()() passes - * the values on to some slot. - */ - signal_emit3(typename type_trait::take _A_a1,typename type_trait::take _A_a2,typename type_trait::take _A_a3) - : _A_a1_(_A_a1),_A_a2_(_A_a2),_A_a3_(_A_a3) {} - - - /** Invokes a slot using the buffered parameter values. - * @param _A_slot Some slot to invoke. - * @return The slot's return value. - */ - T_return operator()(const slot_type& _A_slot) const - { return (reinterpret_cast(_A_slot.rep_->call_))(_A_slot.rep_, _A_a1_,_A_a2_,_A_a3_); } - - /** Executes a list of slots using an accumulator of type @e T_accumulator. - * The arguments are buffered in a temporary instance of signal_emit3. - - * @param _A_a1 Argument to be passed on to the slots. - * @param _A_a2 Argument to be passed on to the slots. - * @param _A_a3 Argument to be passed on to the slots. - * @return The accumulated return values of the slot invocations as processed by the accumulator. - */ - static result_type emit(signal_impl* impl, typename type_trait::take _A_a1,typename type_trait::take _A_a2,typename type_trait::take _A_a3) - { - T_accumulator accumulator; - - if (!impl) - return accumulator(slot_iterator_buf_type(), slot_iterator_buf_type()); - - signal_exec exec(impl); - - self_type self (_A_a1,_A_a2,_A_a3); - return accumulator(slot_iterator_buf_type(impl->slots_.begin(), &self), - slot_iterator_buf_type(impl->slots_.end(), &self)); - } - - typename type_trait::take _A_a1_; - typename type_trait::take _A_a2_; - typename type_trait::take _A_a3_; -}; - -/** Abstracts signal emission. - * This template specialization implements an optimized emit() - * function for the case that no accumulator is used. - */ -template -struct signal_emit3 -{ - typedef signal_emit3 self_type; - typedef T_return result_type; - typedef slot slot_type; - typedef signal_impl::const_iterator_type iterator_type; - typedef typename slot_type::call_type call_type; - - /** Executes a list of slots using an accumulator of type @e T_accumulator. - * The arguments are passed directly on to the slots. - * The return value of the last slot invoked is returned. - * @param first An iterator pointing to the first slot in the list. - * @param last An iterator pointing to the last slot in the list. - * @param _A_a1 Argument to be passed on to the slots. - * @param _A_a2 Argument to be passed on to the slots. - * @param _A_a3 Argument to be passed on to the slots. - * @return The return value of the last slot invoked. - */ - static result_type emit(signal_impl* impl, typename type_trait::take _A_a1,typename type_trait::take _A_a2,typename type_trait::take _A_a3) - { - if (!impl || impl->slots_.empty()) return T_return(); - iterator_type it = impl->slots_.begin(); - for (; it != impl->slots_.end(); ++it) - if (!it->empty() && !it->blocked()) break; - if (it == impl->slots_.end()) return T_return(); // note that 'T_return r_();' doesn't work => define 'r_' after this line and initialize as follows: - - signal_exec exec(impl); - - T_return r_ = (reinterpret_cast(it->rep_->call_))(it->rep_, _A_a1,_A_a2,_A_a3); - for (++it; it != impl->slots_.end(); ++it) - { - if (it->empty() || it->blocked()) - continue; - r_ = (reinterpret_cast(it->rep_->call_))(it->rep_, _A_a1,_A_a2,_A_a3); - } - return r_; - } -}; - -/** Abstracts signal emission. - * This template specialization implements an optimized emit() - * function for the case that no accumulator is used and the - * return type is @p void. - */ -template -struct signal_emit3 -{ - typedef signal_emit3 self_type; - typedef void result_type; - typedef slot slot_type; - typedef signal_impl::const_iterator_type iterator_type; - typedef typename slot_type::call_type call_type; - - /** Executes a list of slots using an accumulator of type @e T_accumulator. - * The arguments are passed directly on to the slots. - * @param first An iterator pointing to the first slot in the list. - * @param last An iterator pointing to the last slot in the list. - * @param _A_a1 Argument to be passed on to the slots. - * @param _A_a2 Argument to be passed on to the slots. - * @param _A_a3 Argument to be passed on to the slots. - */ - static result_type emit(signal_impl* impl, typename type_trait::take _A_a1,typename type_trait::take _A_a2,typename type_trait::take _A_a3) - { - if (!impl || impl->slots_.empty()) return; - signal_exec exec(impl); - - for (iterator_type it = impl->slots_.begin(); it != impl->slots_.end(); ++it) - { - if (it->empty() || it->blocked()) - continue; - (reinterpret_cast(it->rep_->call_))(it->rep_, _A_a1,_A_a2,_A_a3); - } - } -}; - -/** Abstracts signal emission. - * This template implements the emit() function of signal4. - * Template specializations are available to optimize signal - * emission when no accumulator is used, i.e. the template - * argument @e T_accumulator is @p nil_. - */ -template -struct signal_emit4 -{ - typedef signal_emit4 self_type; - typedef typename T_accumulator::result_type result_type; - typedef slot slot_type; - typedef internal::slot_iterator_buf slot_iterator_buf_type; - typedef signal_impl::const_iterator_type iterator_type; - - /** Instantiates the class. - * The parameters are stored in member variables. operator()() passes - * the values on to some slot. - */ - signal_emit4(typename type_trait::take _A_a1,typename type_trait::take _A_a2,typename type_trait::take _A_a3,typename type_trait::take _A_a4) - : _A_a1_(_A_a1),_A_a2_(_A_a2),_A_a3_(_A_a3),_A_a4_(_A_a4) {} - - - /** Invokes a slot using the buffered parameter values. - * @param _A_slot Some slot to invoke. - * @return The slot's return value. - */ - T_return operator()(const slot_type& _A_slot) const - { return (reinterpret_cast(_A_slot.rep_->call_))(_A_slot.rep_, _A_a1_,_A_a2_,_A_a3_,_A_a4_); } - - /** Executes a list of slots using an accumulator of type @e T_accumulator. - * The arguments are buffered in a temporary instance of signal_emit4. - - * @param _A_a1 Argument to be passed on to the slots. - * @param _A_a2 Argument to be passed on to the slots. - * @param _A_a3 Argument to be passed on to the slots. - * @param _A_a4 Argument to be passed on to the slots. - * @return The accumulated return values of the slot invocations as processed by the accumulator. - */ - static result_type emit(signal_impl* impl, typename type_trait::take _A_a1,typename type_trait::take _A_a2,typename type_trait::take _A_a3,typename type_trait::take _A_a4) - { - T_accumulator accumulator; - - if (!impl) - return accumulator(slot_iterator_buf_type(), slot_iterator_buf_type()); - - signal_exec exec(impl); - - self_type self (_A_a1,_A_a2,_A_a3,_A_a4); - return accumulator(slot_iterator_buf_type(impl->slots_.begin(), &self), - slot_iterator_buf_type(impl->slots_.end(), &self)); - } - - typename type_trait::take _A_a1_; - typename type_trait::take _A_a2_; - typename type_trait::take _A_a3_; - typename type_trait::take _A_a4_; -}; - -/** Abstracts signal emission. - * This template specialization implements an optimized emit() - * function for the case that no accumulator is used. - */ -template -struct signal_emit4 -{ - typedef signal_emit4 self_type; - typedef T_return result_type; - typedef slot slot_type; - typedef signal_impl::const_iterator_type iterator_type; - typedef typename slot_type::call_type call_type; - - /** Executes a list of slots using an accumulator of type @e T_accumulator. - * The arguments are passed directly on to the slots. - * The return value of the last slot invoked is returned. - * @param first An iterator pointing to the first slot in the list. - * @param last An iterator pointing to the last slot in the list. - * @param _A_a1 Argument to be passed on to the slots. - * @param _A_a2 Argument to be passed on to the slots. - * @param _A_a3 Argument to be passed on to the slots. - * @param _A_a4 Argument to be passed on to the slots. - * @return The return value of the last slot invoked. - */ - static result_type emit(signal_impl* impl, typename type_trait::take _A_a1,typename type_trait::take _A_a2,typename type_trait::take _A_a3,typename type_trait::take _A_a4) - { - if (!impl || impl->slots_.empty()) return T_return(); - iterator_type it = impl->slots_.begin(); - for (; it != impl->slots_.end(); ++it) - if (!it->empty() && !it->blocked()) break; - if (it == impl->slots_.end()) return T_return(); // note that 'T_return r_();' doesn't work => define 'r_' after this line and initialize as follows: - - signal_exec exec(impl); - - T_return r_ = (reinterpret_cast(it->rep_->call_))(it->rep_, _A_a1,_A_a2,_A_a3,_A_a4); - for (++it; it != impl->slots_.end(); ++it) - { - if (it->empty() || it->blocked()) - continue; - r_ = (reinterpret_cast(it->rep_->call_))(it->rep_, _A_a1,_A_a2,_A_a3,_A_a4); - } - return r_; - } -}; - -/** Abstracts signal emission. - * This template specialization implements an optimized emit() - * function for the case that no accumulator is used and the - * return type is @p void. - */ -template -struct signal_emit4 -{ - typedef signal_emit4 self_type; - typedef void result_type; - typedef slot slot_type; - typedef signal_impl::const_iterator_type iterator_type; - typedef typename slot_type::call_type call_type; - - /** Executes a list of slots using an accumulator of type @e T_accumulator. - * The arguments are passed directly on to the slots. - * @param first An iterator pointing to the first slot in the list. - * @param last An iterator pointing to the last slot in the list. - * @param _A_a1 Argument to be passed on to the slots. - * @param _A_a2 Argument to be passed on to the slots. - * @param _A_a3 Argument to be passed on to the slots. - * @param _A_a4 Argument to be passed on to the slots. - */ - static result_type emit(signal_impl* impl, typename type_trait::take _A_a1,typename type_trait::take _A_a2,typename type_trait::take _A_a3,typename type_trait::take _A_a4) - { - if (!impl || impl->slots_.empty()) return; - signal_exec exec(impl); - - for (iterator_type it = impl->slots_.begin(); it != impl->slots_.end(); ++it) - { - if (it->empty() || it->blocked()) - continue; - (reinterpret_cast(it->rep_->call_))(it->rep_, _A_a1,_A_a2,_A_a3,_A_a4); - } - } -}; - -/** Abstracts signal emission. - * This template implements the emit() function of signal5. - * Template specializations are available to optimize signal - * emission when no accumulator is used, i.e. the template - * argument @e T_accumulator is @p nil_. - */ -template -struct signal_emit5 -{ - typedef signal_emit5 self_type; - typedef typename T_accumulator::result_type result_type; - typedef slot slot_type; - typedef internal::slot_iterator_buf slot_iterator_buf_type; - typedef signal_impl::const_iterator_type iterator_type; - - /** Instantiates the class. - * The parameters are stored in member variables. operator()() passes - * the values on to some slot. - */ - signal_emit5(typename type_trait::take _A_a1,typename type_trait::take _A_a2,typename type_trait::take _A_a3,typename type_trait::take _A_a4,typename type_trait::take _A_a5) - : _A_a1_(_A_a1),_A_a2_(_A_a2),_A_a3_(_A_a3),_A_a4_(_A_a4),_A_a5_(_A_a5) {} - - - /** Invokes a slot using the buffered parameter values. - * @param _A_slot Some slot to invoke. - * @return The slot's return value. - */ - T_return operator()(const slot_type& _A_slot) const - { return (reinterpret_cast(_A_slot.rep_->call_))(_A_slot.rep_, _A_a1_,_A_a2_,_A_a3_,_A_a4_,_A_a5_); } - - /** Executes a list of slots using an accumulator of type @e T_accumulator. - * The arguments are buffered in a temporary instance of signal_emit5. - - * @param _A_a1 Argument to be passed on to the slots. - * @param _A_a2 Argument to be passed on to the slots. - * @param _A_a3 Argument to be passed on to the slots. - * @param _A_a4 Argument to be passed on to the slots. - * @param _A_a5 Argument to be passed on to the slots. - * @return The accumulated return values of the slot invocations as processed by the accumulator. - */ - static result_type emit(signal_impl* impl, typename type_trait::take _A_a1,typename type_trait::take _A_a2,typename type_trait::take _A_a3,typename type_trait::take _A_a4,typename type_trait::take _A_a5) - { - T_accumulator accumulator; - - if (!impl) - return accumulator(slot_iterator_buf_type(), slot_iterator_buf_type()); - - signal_exec exec(impl); - - self_type self (_A_a1,_A_a2,_A_a3,_A_a4,_A_a5); - return accumulator(slot_iterator_buf_type(impl->slots_.begin(), &self), - slot_iterator_buf_type(impl->slots_.end(), &self)); - } - - typename type_trait::take _A_a1_; - typename type_trait::take _A_a2_; - typename type_trait::take _A_a3_; - typename type_trait::take _A_a4_; - typename type_trait::take _A_a5_; -}; - -/** Abstracts signal emission. - * This template specialization implements an optimized emit() - * function for the case that no accumulator is used. - */ -template -struct signal_emit5 -{ - typedef signal_emit5 self_type; - typedef T_return result_type; - typedef slot slot_type; - typedef signal_impl::const_iterator_type iterator_type; - typedef typename slot_type::call_type call_type; - - /** Executes a list of slots using an accumulator of type @e T_accumulator. - * The arguments are passed directly on to the slots. - * The return value of the last slot invoked is returned. - * @param first An iterator pointing to the first slot in the list. - * @param last An iterator pointing to the last slot in the list. - * @param _A_a1 Argument to be passed on to the slots. - * @param _A_a2 Argument to be passed on to the slots. - * @param _A_a3 Argument to be passed on to the slots. - * @param _A_a4 Argument to be passed on to the slots. - * @param _A_a5 Argument to be passed on to the slots. - * @return The return value of the last slot invoked. - */ - static result_type emit(signal_impl* impl, typename type_trait::take _A_a1,typename type_trait::take _A_a2,typename type_trait::take _A_a3,typename type_trait::take _A_a4,typename type_trait::take _A_a5) - { - if (!impl || impl->slots_.empty()) return T_return(); - iterator_type it = impl->slots_.begin(); - for (; it != impl->slots_.end(); ++it) - if (!it->empty() && !it->blocked()) break; - if (it == impl->slots_.end()) return T_return(); // note that 'T_return r_();' doesn't work => define 'r_' after this line and initialize as follows: - - signal_exec exec(impl); - - T_return r_ = (reinterpret_cast(it->rep_->call_))(it->rep_, _A_a1,_A_a2,_A_a3,_A_a4,_A_a5); - for (++it; it != impl->slots_.end(); ++it) - { - if (it->empty() || it->blocked()) - continue; - r_ = (reinterpret_cast(it->rep_->call_))(it->rep_, _A_a1,_A_a2,_A_a3,_A_a4,_A_a5); - } - return r_; - } -}; - -/** Abstracts signal emission. - * This template specialization implements an optimized emit() - * function for the case that no accumulator is used and the - * return type is @p void. - */ -template -struct signal_emit5 -{ - typedef signal_emit5 self_type; - typedef void result_type; - typedef slot slot_type; - typedef signal_impl::const_iterator_type iterator_type; - typedef typename slot_type::call_type call_type; - - /** Executes a list of slots using an accumulator of type @e T_accumulator. - * The arguments are passed directly on to the slots. - * @param first An iterator pointing to the first slot in the list. - * @param last An iterator pointing to the last slot in the list. - * @param _A_a1 Argument to be passed on to the slots. - * @param _A_a2 Argument to be passed on to the slots. - * @param _A_a3 Argument to be passed on to the slots. - * @param _A_a4 Argument to be passed on to the slots. - * @param _A_a5 Argument to be passed on to the slots. - */ - static result_type emit(signal_impl* impl, typename type_trait::take _A_a1,typename type_trait::take _A_a2,typename type_trait::take _A_a3,typename type_trait::take _A_a4,typename type_trait::take _A_a5) - { - if (!impl || impl->slots_.empty()) return; - signal_exec exec(impl); - - for (iterator_type it = impl->slots_.begin(); it != impl->slots_.end(); ++it) - { - if (it->empty() || it->blocked()) - continue; - (reinterpret_cast(it->rep_->call_))(it->rep_, _A_a1,_A_a2,_A_a3,_A_a4,_A_a5); - } - } -}; - -/** Abstracts signal emission. - * This template implements the emit() function of signal6. - * Template specializations are available to optimize signal - * emission when no accumulator is used, i.e. the template - * argument @e T_accumulator is @p nil_. - */ -template -struct signal_emit6 -{ - typedef signal_emit6 self_type; - typedef typename T_accumulator::result_type result_type; - typedef slot slot_type; - typedef internal::slot_iterator_buf slot_iterator_buf_type; - typedef signal_impl::const_iterator_type iterator_type; - - /** Instantiates the class. - * The parameters are stored in member variables. operator()() passes - * the values on to some slot. - */ - signal_emit6(typename type_trait::take _A_a1,typename type_trait::take _A_a2,typename type_trait::take _A_a3,typename type_trait::take _A_a4,typename type_trait::take _A_a5,typename type_trait::take _A_a6) - : _A_a1_(_A_a1),_A_a2_(_A_a2),_A_a3_(_A_a3),_A_a4_(_A_a4),_A_a5_(_A_a5),_A_a6_(_A_a6) {} - - - /** Invokes a slot using the buffered parameter values. - * @param _A_slot Some slot to invoke. - * @return The slot's return value. - */ - T_return operator()(const slot_type& _A_slot) const - { return (reinterpret_cast(_A_slot.rep_->call_))(_A_slot.rep_, _A_a1_,_A_a2_,_A_a3_,_A_a4_,_A_a5_,_A_a6_); } - - /** Executes a list of slots using an accumulator of type @e T_accumulator. - * The arguments are buffered in a temporary instance of signal_emit6. - - * @param _A_a1 Argument to be passed on to the slots. - * @param _A_a2 Argument to be passed on to the slots. - * @param _A_a3 Argument to be passed on to the slots. - * @param _A_a4 Argument to be passed on to the slots. - * @param _A_a5 Argument to be passed on to the slots. - * @param _A_a6 Argument to be passed on to the slots. - * @return The accumulated return values of the slot invocations as processed by the accumulator. - */ - static result_type emit(signal_impl* impl, typename type_trait::take _A_a1,typename type_trait::take _A_a2,typename type_trait::take _A_a3,typename type_trait::take _A_a4,typename type_trait::take _A_a5,typename type_trait::take _A_a6) - { - T_accumulator accumulator; - - if (!impl) - return accumulator(slot_iterator_buf_type(), slot_iterator_buf_type()); - - signal_exec exec(impl); - - self_type self (_A_a1,_A_a2,_A_a3,_A_a4,_A_a5,_A_a6); - return accumulator(slot_iterator_buf_type(impl->slots_.begin(), &self), - slot_iterator_buf_type(impl->slots_.end(), &self)); - } - - typename type_trait::take _A_a1_; - typename type_trait::take _A_a2_; - typename type_trait::take _A_a3_; - typename type_trait::take _A_a4_; - typename type_trait::take _A_a5_; - typename type_trait::take _A_a6_; -}; - -/** Abstracts signal emission. - * This template specialization implements an optimized emit() - * function for the case that no accumulator is used. - */ -template -struct signal_emit6 -{ - typedef signal_emit6 self_type; - typedef T_return result_type; - typedef slot slot_type; - typedef signal_impl::const_iterator_type iterator_type; - typedef typename slot_type::call_type call_type; - - /** Executes a list of slots using an accumulator of type @e T_accumulator. - * The arguments are passed directly on to the slots. - * The return value of the last slot invoked is returned. - * @param first An iterator pointing to the first slot in the list. - * @param last An iterator pointing to the last slot in the list. - * @param _A_a1 Argument to be passed on to the slots. - * @param _A_a2 Argument to be passed on to the slots. - * @param _A_a3 Argument to be passed on to the slots. - * @param _A_a4 Argument to be passed on to the slots. - * @param _A_a5 Argument to be passed on to the slots. - * @param _A_a6 Argument to be passed on to the slots. - * @return The return value of the last slot invoked. - */ - static result_type emit(signal_impl* impl, typename type_trait::take _A_a1,typename type_trait::take _A_a2,typename type_trait::take _A_a3,typename type_trait::take _A_a4,typename type_trait::take _A_a5,typename type_trait::take _A_a6) - { - if (!impl || impl->slots_.empty()) return T_return(); - iterator_type it = impl->slots_.begin(); - for (; it != impl->slots_.end(); ++it) - if (!it->empty() && !it->blocked()) break; - if (it == impl->slots_.end()) return T_return(); // note that 'T_return r_();' doesn't work => define 'r_' after this line and initialize as follows: - - signal_exec exec(impl); - - T_return r_ = (reinterpret_cast(it->rep_->call_))(it->rep_, _A_a1,_A_a2,_A_a3,_A_a4,_A_a5,_A_a6); - for (++it; it != impl->slots_.end(); ++it) - { - if (it->empty() || it->blocked()) - continue; - r_ = (reinterpret_cast(it->rep_->call_))(it->rep_, _A_a1,_A_a2,_A_a3,_A_a4,_A_a5,_A_a6); - } - return r_; - } -}; - -/** Abstracts signal emission. - * This template specialization implements an optimized emit() - * function for the case that no accumulator is used and the - * return type is @p void. - */ -template -struct signal_emit6 -{ - typedef signal_emit6 self_type; - typedef void result_type; - typedef slot slot_type; - typedef signal_impl::const_iterator_type iterator_type; - typedef typename slot_type::call_type call_type; - - /** Executes a list of slots using an accumulator of type @e T_accumulator. - * The arguments are passed directly on to the slots. - * @param first An iterator pointing to the first slot in the list. - * @param last An iterator pointing to the last slot in the list. - * @param _A_a1 Argument to be passed on to the slots. - * @param _A_a2 Argument to be passed on to the slots. - * @param _A_a3 Argument to be passed on to the slots. - * @param _A_a4 Argument to be passed on to the slots. - * @param _A_a5 Argument to be passed on to the slots. - * @param _A_a6 Argument to be passed on to the slots. - */ - static result_type emit(signal_impl* impl, typename type_trait::take _A_a1,typename type_trait::take _A_a2,typename type_trait::take _A_a3,typename type_trait::take _A_a4,typename type_trait::take _A_a5,typename type_trait::take _A_a6) - { - if (!impl || impl->slots_.empty()) return; - signal_exec exec(impl); - - for (iterator_type it = impl->slots_.begin(); it != impl->slots_.end(); ++it) - { - if (it->empty() || it->blocked()) - continue; - (reinterpret_cast(it->rep_->call_))(it->rep_, _A_a1,_A_a2,_A_a3,_A_a4,_A_a5,_A_a6); - } - } -}; - -/** Abstracts signal emission. - * This template implements the emit() function of signal7. - * Template specializations are available to optimize signal - * emission when no accumulator is used, i.e. the template - * argument @e T_accumulator is @p nil_. - */ -template -struct signal_emit7 -{ - typedef signal_emit7 self_type; - typedef typename T_accumulator::result_type result_type; - typedef slot slot_type; - typedef internal::slot_iterator_buf slot_iterator_buf_type; - typedef signal_impl::const_iterator_type iterator_type; - - /** Instantiates the class. - * The parameters are stored in member variables. operator()() passes - * the values on to some slot. - */ - signal_emit7(typename type_trait::take _A_a1,typename type_trait::take _A_a2,typename type_trait::take _A_a3,typename type_trait::take _A_a4,typename type_trait::take _A_a5,typename type_trait::take _A_a6,typename type_trait::take _A_a7) - : _A_a1_(_A_a1),_A_a2_(_A_a2),_A_a3_(_A_a3),_A_a4_(_A_a4),_A_a5_(_A_a5),_A_a6_(_A_a6),_A_a7_(_A_a7) {} - - - /** Invokes a slot using the buffered parameter values. - * @param _A_slot Some slot to invoke. - * @return The slot's return value. - */ - T_return operator()(const slot_type& _A_slot) const - { return (reinterpret_cast(_A_slot.rep_->call_))(_A_slot.rep_, _A_a1_,_A_a2_,_A_a3_,_A_a4_,_A_a5_,_A_a6_,_A_a7_); } - - /** Executes a list of slots using an accumulator of type @e T_accumulator. - * The arguments are buffered in a temporary instance of signal_emit7. - - * @param _A_a1 Argument to be passed on to the slots. - * @param _A_a2 Argument to be passed on to the slots. - * @param _A_a3 Argument to be passed on to the slots. - * @param _A_a4 Argument to be passed on to the slots. - * @param _A_a5 Argument to be passed on to the slots. - * @param _A_a6 Argument to be passed on to the slots. - * @param _A_a7 Argument to be passed on to the slots. - * @return The accumulated return values of the slot invocations as processed by the accumulator. - */ - static result_type emit(signal_impl* impl, typename type_trait::take _A_a1,typename type_trait::take _A_a2,typename type_trait::take _A_a3,typename type_trait::take _A_a4,typename type_trait::take _A_a5,typename type_trait::take _A_a6,typename type_trait::take _A_a7) - { - T_accumulator accumulator; - - if (!impl) - return accumulator(slot_iterator_buf_type(), slot_iterator_buf_type()); - - signal_exec exec(impl); - - self_type self (_A_a1,_A_a2,_A_a3,_A_a4,_A_a5,_A_a6,_A_a7); - return accumulator(slot_iterator_buf_type(impl->slots_.begin(), &self), - slot_iterator_buf_type(impl->slots_.end(), &self)); - } - - typename type_trait::take _A_a1_; - typename type_trait::take _A_a2_; - typename type_trait::take _A_a3_; - typename type_trait::take _A_a4_; - typename type_trait::take _A_a5_; - typename type_trait::take _A_a6_; - typename type_trait::take _A_a7_; -}; - -/** Abstracts signal emission. - * This template specialization implements an optimized emit() - * function for the case that no accumulator is used. - */ -template -struct signal_emit7 -{ - typedef signal_emit7 self_type; - typedef T_return result_type; - typedef slot slot_type; - typedef signal_impl::const_iterator_type iterator_type; - typedef typename slot_type::call_type call_type; - - /** Executes a list of slots using an accumulator of type @e T_accumulator. - * The arguments are passed directly on to the slots. - * The return value of the last slot invoked is returned. - * @param first An iterator pointing to the first slot in the list. - * @param last An iterator pointing to the last slot in the list. - * @param _A_a1 Argument to be passed on to the slots. - * @param _A_a2 Argument to be passed on to the slots. - * @param _A_a3 Argument to be passed on to the slots. - * @param _A_a4 Argument to be passed on to the slots. - * @param _A_a5 Argument to be passed on to the slots. - * @param _A_a6 Argument to be passed on to the slots. - * @param _A_a7 Argument to be passed on to the slots. - * @return The return value of the last slot invoked. - */ - static result_type emit(signal_impl* impl, typename type_trait::take _A_a1,typename type_trait::take _A_a2,typename type_trait::take _A_a3,typename type_trait::take _A_a4,typename type_trait::take _A_a5,typename type_trait::take _A_a6,typename type_trait::take _A_a7) - { - if (!impl || impl->slots_.empty()) return T_return(); - iterator_type it = impl->slots_.begin(); - for (; it != impl->slots_.end(); ++it) - if (!it->empty() && !it->blocked()) break; - if (it == impl->slots_.end()) return T_return(); // note that 'T_return r_();' doesn't work => define 'r_' after this line and initialize as follows: - - signal_exec exec(impl); - - T_return r_ = (reinterpret_cast(it->rep_->call_))(it->rep_, _A_a1,_A_a2,_A_a3,_A_a4,_A_a5,_A_a6,_A_a7); - for (++it; it != impl->slots_.end(); ++it) - { - if (it->empty() || it->blocked()) - continue; - r_ = (reinterpret_cast(it->rep_->call_))(it->rep_, _A_a1,_A_a2,_A_a3,_A_a4,_A_a5,_A_a6,_A_a7); - } - return r_; - } -}; - -/** Abstracts signal emission. - * This template specialization implements an optimized emit() - * function for the case that no accumulator is used and the - * return type is @p void. - */ -template -struct signal_emit7 -{ - typedef signal_emit7 self_type; - typedef void result_type; - typedef slot slot_type; - typedef signal_impl::const_iterator_type iterator_type; - typedef typename slot_type::call_type call_type; - - /** Executes a list of slots using an accumulator of type @e T_accumulator. - * The arguments are passed directly on to the slots. - * @param first An iterator pointing to the first slot in the list. - * @param last An iterator pointing to the last slot in the list. - * @param _A_a1 Argument to be passed on to the slots. - * @param _A_a2 Argument to be passed on to the slots. - * @param _A_a3 Argument to be passed on to the slots. - * @param _A_a4 Argument to be passed on to the slots. - * @param _A_a5 Argument to be passed on to the slots. - * @param _A_a6 Argument to be passed on to the slots. - * @param _A_a7 Argument to be passed on to the slots. - */ - static result_type emit(signal_impl* impl, typename type_trait::take _A_a1,typename type_trait::take _A_a2,typename type_trait::take _A_a3,typename type_trait::take _A_a4,typename type_trait::take _A_a5,typename type_trait::take _A_a6,typename type_trait::take _A_a7) - { - if (!impl || impl->slots_.empty()) return; - signal_exec exec(impl); - - for (iterator_type it = impl->slots_.begin(); it != impl->slots_.end(); ++it) - { - if (it->empty() || it->blocked()) - continue; - (reinterpret_cast(it->rep_->call_))(it->rep_, _A_a1,_A_a2,_A_a3,_A_a4,_A_a5,_A_a6,_A_a7); - } - } -}; - - -} /* namespace internal */ - -/** Signal declaration. - * signal0 can be used to connect() slots that are invoked - * during subsequent calls to emit(). Any functor or slot - * can be passed into connect(). It is converted into a slot - * implicitely. - * - * If you want to connect one signal to another, use make_slot() - * to retrieve a functor that emits the signal when invoked. - * - * Be careful if you directly pass one signal into the connect() - * method of another: a shallow copy of the signal is made and - * the signal's slots are not disconnected until both the signal - * and its clone are destroyed which is probably not what you want! - * - * An STL-style list interface for the signal's list of slots - * can be retrieved with slots(). This interface supports - * iteration, insertion and removal of slots. - * - * The following template arguments are used: - * - @e T_return The desired return type for the emit() function (may be overridden by the accumulator). - * - @e T_accumulator The accumulator type used for emission. The default @p nil_ means that no accumulator should be used, i.e. signal emission returns the return value of the last slot invoked. - * - * You should use the more convenient unnumbered sigc::signal template. - * - * @ingroup signal - */ -template -class signal0 - : public signal_base -{ -public: - typedef internal::signal_emit0 emitter_type; - typedef typename emitter_type::result_type result_type; - typedef slot slot_type; - typedef slot_list slot_list_type; - typedef typename slot_list_type::iterator iterator; - typedef typename slot_list_type::const_iterator const_iterator; - typedef typename slot_list_type::reverse_iterator reverse_iterator; - typedef typename slot_list_type::const_reverse_iterator const_reverse_iterator; - -#ifdef SIGC_TYPEDEF_REDEFINE_ALLOWED - /** This typedef is only for backwards-compatibility. - * It is not available when using the SUN Forte compiler. - * @deprecated slot_list_type; - */ - typedef slot_list_type slot_list; -#endif - - /** Add a slot to the list of slots. - * Any functor or slot may be passed into connect(). - * It will be converted into a slot implicitely. - * The returned iterator may be stored for disconnection - * of the slot at some later point. It stays valid until - * the slot is removed from the list of slots. The iterator - * can also be implicitely converted into a sigc::connection object - * that may be used safely beyond the life time of the slot. - * @param slot_ The slot to add to the list of slots. - * @return An iterator pointing to the new slot in the list. - */ - iterator connect(const slot_type& slot_) - { return iterator(signal_base::connect(static_cast(slot_))); } - - /** Triggers the emission of the signal. - * During signal emission all slots that have been connected - * to the signal are invoked unless they are manually set into - * a blocking state. The parameters are passed on to the slots. - * If @e T_accumulated is not @p nil_, an accumulator of this type - * is used to process the return values of the slot invocations. - * Otherwise, the return value of the last slot invoked is returned. - * @return The accumulated return values of the slot invocations. - */ - result_type emit() const - { return emitter_type::emit(impl_); } - - /** Triggers the emission of the signal (see emit()). */ - result_type operator()() const - { return emit(); } - - /** Creates a functor that calls emit() on this signal. - * @code - * sigc::mem_fun(mysignal, &sigc::signal0::emit) - * @endcode - * yields the same result. - * @return A functor that calls emit() on this signal. - */ - bound_const_mem_functor0 make_slot() const - { return bound_const_mem_functor0(this, &signal0::emit); } - - /** Creates an STL-style interface for the signal's list of slots. - * This interface supports iteration, insertion and removal of slots. - * @return An STL-style interface for the signal's list of slots. - */ - slot_list_type slots() - { return slot_list_type(impl()); } - - /** Creates an STL-style interface for the signal's list of slots. - * This interface supports iteration, insertion and removal of slots. - * @return An STL-style interface for the signal's list of slots. - */ - const slot_list_type slots() const - { return slot_list_type(const_cast(this)->impl()); } - - signal0() {} - - signal0(const signal0& src) - : signal_base(src) {} -}; - -/** Signal declaration. - * signal1 can be used to connect() slots that are invoked - * during subsequent calls to emit(). Any functor or slot - * can be passed into connect(). It is converted into a slot - * implicitely. - * - * If you want to connect one signal to another, use make_slot() - * to retrieve a functor that emits the signal when invoked. - * - * Be careful if you directly pass one signal into the connect() - * method of another: a shallow copy of the signal is made and - * the signal's slots are not disconnected until both the signal - * and its clone are destroyed which is probably not what you want! - * - * An STL-style list interface for the signal's list of slots - * can be retrieved with slots(). This interface supports - * iteration, insertion and removal of slots. - * - * The following template arguments are used: - * - @e T_return The desired return type for the emit() function (may be overridden by the accumulator). - * - @e T_arg1 Argument type used in the definition of emit(). - * - @e T_accumulator The accumulator type used for emission. The default @p nil_ means that no accumulator should be used, i.e. signal emission returns the return value of the last slot invoked. - * - * You should use the more convenient unnumbered sigc::signal template. - * - * @ingroup signal - */ -template -class signal1 - : public signal_base -{ -public: - typedef internal::signal_emit1 emitter_type; - typedef typename emitter_type::result_type result_type; - typedef slot slot_type; - typedef slot_list slot_list_type; - typedef typename slot_list_type::iterator iterator; - typedef typename slot_list_type::const_iterator const_iterator; - typedef typename slot_list_type::reverse_iterator reverse_iterator; - typedef typename slot_list_type::const_reverse_iterator const_reverse_iterator; - -#ifdef SIGC_TYPEDEF_REDEFINE_ALLOWED - /** This typedef is only for backwards-compatibility. - * It is not available when using the SUN Forte compiler. - * @deprecated slot_list_type; - */ - typedef slot_list_type slot_list; -#endif - - /** Add a slot to the list of slots. - * Any functor or slot may be passed into connect(). - * It will be converted into a slot implicitely. - * The returned iterator may be stored for disconnection - * of the slot at some later point. It stays valid until - * the slot is removed from the list of slots. The iterator - * can also be implicitely converted into a sigc::connection object - * that may be used safely beyond the life time of the slot. - * @param slot_ The slot to add to the list of slots. - * @return An iterator pointing to the new slot in the list. - */ - iterator connect(const slot_type& slot_) - { return iterator(signal_base::connect(static_cast(slot_))); } - - /** Triggers the emission of the signal. - * During signal emission all slots that have been connected - * to the signal are invoked unless they are manually set into - * a blocking state. The parameters are passed on to the slots. - * If @e T_accumulated is not @p nil_, an accumulator of this type - * is used to process the return values of the slot invocations. - * Otherwise, the return value of the last slot invoked is returned. - * @param _A_a1 Argument to be passed on to the slots. - * @return The accumulated return values of the slot invocations. - */ - result_type emit(typename type_trait::take _A_a1) const - { return emitter_type::emit(impl_, _A_a1); } - - /** Triggers the emission of the signal (see emit()). */ - result_type operator()(typename type_trait::take _A_a1) const - { return emit(_A_a1); } - - /** Creates a functor that calls emit() on this signal. - * @code - * sigc::mem_fun(mysignal, &sigc::signal1::emit) - * @endcode - * yields the same result. - * @return A functor that calls emit() on this signal. - */ - bound_const_mem_functor1::take> make_slot() const - { return bound_const_mem_functor1::take>(this, &signal1::emit); } - - /** Creates an STL-style interface for the signal's list of slots. - * This interface supports iteration, insertion and removal of slots. - * @return An STL-style interface for the signal's list of slots. - */ - slot_list_type slots() - { return slot_list_type(impl()); } - - /** Creates an STL-style interface for the signal's list of slots. - * This interface supports iteration, insertion and removal of slots. - * @return An STL-style interface for the signal's list of slots. - */ - const slot_list_type slots() const - { return slot_list_type(const_cast(this)->impl()); } - - signal1() {} - - signal1(const signal1& src) - : signal_base(src) {} -}; - -/** Signal declaration. - * signal2 can be used to connect() slots that are invoked - * during subsequent calls to emit(). Any functor or slot - * can be passed into connect(). It is converted into a slot - * implicitely. - * - * If you want to connect one signal to another, use make_slot() - * to retrieve a functor that emits the signal when invoked. - * - * Be careful if you directly pass one signal into the connect() - * method of another: a shallow copy of the signal is made and - * the signal's slots are not disconnected until both the signal - * and its clone are destroyed which is probably not what you want! - * - * An STL-style list interface for the signal's list of slots - * can be retrieved with slots(). This interface supports - * iteration, insertion and removal of slots. - * - * The following template arguments are used: - * - @e T_return The desired return type for the emit() function (may be overridden by the accumulator). - * - @e T_arg1 Argument type used in the definition of emit(). - * - @e T_arg2 Argument type used in the definition of emit(). - * - @e T_accumulator The accumulator type used for emission. The default @p nil_ means that no accumulator should be used, i.e. signal emission returns the return value of the last slot invoked. - * - * You should use the more convenient unnumbered sigc::signal template. - * - * @ingroup signal - */ -template -class signal2 - : public signal_base -{ -public: - typedef internal::signal_emit2 emitter_type; - typedef typename emitter_type::result_type result_type; - typedef slot slot_type; - typedef slot_list slot_list_type; - typedef typename slot_list_type::iterator iterator; - typedef typename slot_list_type::const_iterator const_iterator; - typedef typename slot_list_type::reverse_iterator reverse_iterator; - typedef typename slot_list_type::const_reverse_iterator const_reverse_iterator; - -#ifdef SIGC_TYPEDEF_REDEFINE_ALLOWED - /** This typedef is only for backwards-compatibility. - * It is not available when using the SUN Forte compiler. - * @deprecated slot_list_type; - */ - typedef slot_list_type slot_list; -#endif - - /** Add a slot to the list of slots. - * Any functor or slot may be passed into connect(). - * It will be converted into a slot implicitely. - * The returned iterator may be stored for disconnection - * of the slot at some later point. It stays valid until - * the slot is removed from the list of slots. The iterator - * can also be implicitely converted into a sigc::connection object - * that may be used safely beyond the life time of the slot. - * @param slot_ The slot to add to the list of slots. - * @return An iterator pointing to the new slot in the list. - */ - iterator connect(const slot_type& slot_) - { return iterator(signal_base::connect(static_cast(slot_))); } - - /** Triggers the emission of the signal. - * During signal emission all slots that have been connected - * to the signal are invoked unless they are manually set into - * a blocking state. The parameters are passed on to the slots. - * If @e T_accumulated is not @p nil_, an accumulator of this type - * is used to process the return values of the slot invocations. - * Otherwise, the return value of the last slot invoked is returned. - * @param _A_a1 Argument to be passed on to the slots. - * @param _A_a2 Argument to be passed on to the slots. - * @return The accumulated return values of the slot invocations. - */ - result_type emit(typename type_trait::take _A_a1,typename type_trait::take _A_a2) const - { return emitter_type::emit(impl_, _A_a1,_A_a2); } - - /** Triggers the emission of the signal (see emit()). */ - result_type operator()(typename type_trait::take _A_a1,typename type_trait::take _A_a2) const - { return emit(_A_a1,_A_a2); } - - /** Creates a functor that calls emit() on this signal. - * @code - * sigc::mem_fun(mysignal, &sigc::signal2::emit) - * @endcode - * yields the same result. - * @return A functor that calls emit() on this signal. - */ - bound_const_mem_functor2::take,typename type_trait::take> make_slot() const - { return bound_const_mem_functor2::take,typename type_trait::take>(this, &signal2::emit); } - - /** Creates an STL-style interface for the signal's list of slots. - * This interface supports iteration, insertion and removal of slots. - * @return An STL-style interface for the signal's list of slots. - */ - slot_list_type slots() - { return slot_list_type(impl()); } - - /** Creates an STL-style interface for the signal's list of slots. - * This interface supports iteration, insertion and removal of slots. - * @return An STL-style interface for the signal's list of slots. - */ - const slot_list_type slots() const - { return slot_list_type(const_cast(this)->impl()); } - - signal2() {} - - signal2(const signal2& src) - : signal_base(src) {} -}; - -/** Signal declaration. - * signal3 can be used to connect() slots that are invoked - * during subsequent calls to emit(). Any functor or slot - * can be passed into connect(). It is converted into a slot - * implicitely. - * - * If you want to connect one signal to another, use make_slot() - * to retrieve a functor that emits the signal when invoked. - * - * Be careful if you directly pass one signal into the connect() - * method of another: a shallow copy of the signal is made and - * the signal's slots are not disconnected until both the signal - * and its clone are destroyed which is probably not what you want! - * - * An STL-style list interface for the signal's list of slots - * can be retrieved with slots(). This interface supports - * iteration, insertion and removal of slots. - * - * The following template arguments are used: - * - @e T_return The desired return type for the emit() function (may be overridden by the accumulator). - * - @e T_arg1 Argument type used in the definition of emit(). - * - @e T_arg2 Argument type used in the definition of emit(). - * - @e T_arg3 Argument type used in the definition of emit(). - * - @e T_accumulator The accumulator type used for emission. The default @p nil_ means that no accumulator should be used, i.e. signal emission returns the return value of the last slot invoked. - * - * You should use the more convenient unnumbered sigc::signal template. - * - * @ingroup signal - */ -template -class signal3 - : public signal_base -{ -public: - typedef internal::signal_emit3 emitter_type; - typedef typename emitter_type::result_type result_type; - typedef slot slot_type; - typedef slot_list slot_list_type; - typedef typename slot_list_type::iterator iterator; - typedef typename slot_list_type::const_iterator const_iterator; - typedef typename slot_list_type::reverse_iterator reverse_iterator; - typedef typename slot_list_type::const_reverse_iterator const_reverse_iterator; - -#ifdef SIGC_TYPEDEF_REDEFINE_ALLOWED - /** This typedef is only for backwards-compatibility. - * It is not available when using the SUN Forte compiler. - * @deprecated slot_list_type; - */ - typedef slot_list_type slot_list; -#endif - - /** Add a slot to the list of slots. - * Any functor or slot may be passed into connect(). - * It will be converted into a slot implicitely. - * The returned iterator may be stored for disconnection - * of the slot at some later point. It stays valid until - * the slot is removed from the list of slots. The iterator - * can also be implicitely converted into a sigc::connection object - * that may be used safely beyond the life time of the slot. - * @param slot_ The slot to add to the list of slots. - * @return An iterator pointing to the new slot in the list. - */ - iterator connect(const slot_type& slot_) - { return iterator(signal_base::connect(static_cast(slot_))); } - - /** Triggers the emission of the signal. - * During signal emission all slots that have been connected - * to the signal are invoked unless they are manually set into - * a blocking state. The parameters are passed on to the slots. - * If @e T_accumulated is not @p nil_, an accumulator of this type - * is used to process the return values of the slot invocations. - * Otherwise, the return value of the last slot invoked is returned. - * @param _A_a1 Argument to be passed on to the slots. - * @param _A_a2 Argument to be passed on to the slots. - * @param _A_a3 Argument to be passed on to the slots. - * @return The accumulated return values of the slot invocations. - */ - result_type emit(typename type_trait::take _A_a1,typename type_trait::take _A_a2,typename type_trait::take _A_a3) const - { return emitter_type::emit(impl_, _A_a1,_A_a2,_A_a3); } - - /** Triggers the emission of the signal (see emit()). */ - result_type operator()(typename type_trait::take _A_a1,typename type_trait::take _A_a2,typename type_trait::take _A_a3) const - { return emit(_A_a1,_A_a2,_A_a3); } - - /** Creates a functor that calls emit() on this signal. - * @code - * sigc::mem_fun(mysignal, &sigc::signal3::emit) - * @endcode - * yields the same result. - * @return A functor that calls emit() on this signal. - */ - bound_const_mem_functor3::take,typename type_trait::take,typename type_trait::take> make_slot() const - { return bound_const_mem_functor3::take,typename type_trait::take,typename type_trait::take>(this, &signal3::emit); } - - /** Creates an STL-style interface for the signal's list of slots. - * This interface supports iteration, insertion and removal of slots. - * @return An STL-style interface for the signal's list of slots. - */ - slot_list_type slots() - { return slot_list_type(impl()); } - - /** Creates an STL-style interface for the signal's list of slots. - * This interface supports iteration, insertion and removal of slots. - * @return An STL-style interface for the signal's list of slots. - */ - const slot_list_type slots() const - { return slot_list_type(const_cast(this)->impl()); } - - signal3() {} - - signal3(const signal3& src) - : signal_base(src) {} -}; - -/** Signal declaration. - * signal4 can be used to connect() slots that are invoked - * during subsequent calls to emit(). Any functor or slot - * can be passed into connect(). It is converted into a slot - * implicitely. - * - * If you want to connect one signal to another, use make_slot() - * to retrieve a functor that emits the signal when invoked. - * - * Be careful if you directly pass one signal into the connect() - * method of another: a shallow copy of the signal is made and - * the signal's slots are not disconnected until both the signal - * and its clone are destroyed which is probably not what you want! - * - * An STL-style list interface for the signal's list of slots - * can be retrieved with slots(). This interface supports - * iteration, insertion and removal of slots. - * - * The following template arguments are used: - * - @e T_return The desired return type for the emit() function (may be overridden by the accumulator). - * - @e T_arg1 Argument type used in the definition of emit(). - * - @e T_arg2 Argument type used in the definition of emit(). - * - @e T_arg3 Argument type used in the definition of emit(). - * - @e T_arg4 Argument type used in the definition of emit(). - * - @e T_accumulator The accumulator type used for emission. The default @p nil_ means that no accumulator should be used, i.e. signal emission returns the return value of the last slot invoked. - * - * You should use the more convenient unnumbered sigc::signal template. - * - * @ingroup signal - */ -template -class signal4 - : public signal_base -{ -public: - typedef internal::signal_emit4 emitter_type; - typedef typename emitter_type::result_type result_type; - typedef slot slot_type; - typedef slot_list slot_list_type; - typedef typename slot_list_type::iterator iterator; - typedef typename slot_list_type::const_iterator const_iterator; - typedef typename slot_list_type::reverse_iterator reverse_iterator; - typedef typename slot_list_type::const_reverse_iterator const_reverse_iterator; - -#ifdef SIGC_TYPEDEF_REDEFINE_ALLOWED - /** This typedef is only for backwards-compatibility. - * It is not available when using the SUN Forte compiler. - * @deprecated slot_list_type; - */ - typedef slot_list_type slot_list; -#endif - - /** Add a slot to the list of slots. - * Any functor or slot may be passed into connect(). - * It will be converted into a slot implicitely. - * The returned iterator may be stored for disconnection - * of the slot at some later point. It stays valid until - * the slot is removed from the list of slots. The iterator - * can also be implicitely converted into a sigc::connection object - * that may be used safely beyond the life time of the slot. - * @param slot_ The slot to add to the list of slots. - * @return An iterator pointing to the new slot in the list. - */ - iterator connect(const slot_type& slot_) - { return iterator(signal_base::connect(static_cast(slot_))); } - - /** Triggers the emission of the signal. - * During signal emission all slots that have been connected - * to the signal are invoked unless they are manually set into - * a blocking state. The parameters are passed on to the slots. - * If @e T_accumulated is not @p nil_, an accumulator of this type - * is used to process the return values of the slot invocations. - * Otherwise, the return value of the last slot invoked is returned. - * @param _A_a1 Argument to be passed on to the slots. - * @param _A_a2 Argument to be passed on to the slots. - * @param _A_a3 Argument to be passed on to the slots. - * @param _A_a4 Argument to be passed on to the slots. - * @return The accumulated return values of the slot invocations. - */ - result_type emit(typename type_trait::take _A_a1,typename type_trait::take _A_a2,typename type_trait::take _A_a3,typename type_trait::take _A_a4) const - { return emitter_type::emit(impl_, _A_a1,_A_a2,_A_a3,_A_a4); } - - /** Triggers the emission of the signal (see emit()). */ - result_type operator()(typename type_trait::take _A_a1,typename type_trait::take _A_a2,typename type_trait::take _A_a3,typename type_trait::take _A_a4) const - { return emit(_A_a1,_A_a2,_A_a3,_A_a4); } - - /** Creates a functor that calls emit() on this signal. - * @code - * sigc::mem_fun(mysignal, &sigc::signal4::emit) - * @endcode - * yields the same result. - * @return A functor that calls emit() on this signal. - */ - bound_const_mem_functor4::take,typename type_trait::take,typename type_trait::take,typename type_trait::take> make_slot() const - { return bound_const_mem_functor4::take,typename type_trait::take,typename type_trait::take,typename type_trait::take>(this, &signal4::emit); } - - /** Creates an STL-style interface for the signal's list of slots. - * This interface supports iteration, insertion and removal of slots. - * @return An STL-style interface for the signal's list of slots. - */ - slot_list_type slots() - { return slot_list_type(impl()); } - - /** Creates an STL-style interface for the signal's list of slots. - * This interface supports iteration, insertion and removal of slots. - * @return An STL-style interface for the signal's list of slots. - */ - const slot_list_type slots() const - { return slot_list_type(const_cast(this)->impl()); } - - signal4() {} - - signal4(const signal4& src) - : signal_base(src) {} -}; - -/** Signal declaration. - * signal5 can be used to connect() slots that are invoked - * during subsequent calls to emit(). Any functor or slot - * can be passed into connect(). It is converted into a slot - * implicitely. - * - * If you want to connect one signal to another, use make_slot() - * to retrieve a functor that emits the signal when invoked. - * - * Be careful if you directly pass one signal into the connect() - * method of another: a shallow copy of the signal is made and - * the signal's slots are not disconnected until both the signal - * and its clone are destroyed which is probably not what you want! - * - * An STL-style list interface for the signal's list of slots - * can be retrieved with slots(). This interface supports - * iteration, insertion and removal of slots. - * - * The following template arguments are used: - * - @e T_return The desired return type for the emit() function (may be overridden by the accumulator). - * - @e T_arg1 Argument type used in the definition of emit(). - * - @e T_arg2 Argument type used in the definition of emit(). - * - @e T_arg3 Argument type used in the definition of emit(). - * - @e T_arg4 Argument type used in the definition of emit(). - * - @e T_arg5 Argument type used in the definition of emit(). - * - @e T_accumulator The accumulator type used for emission. The default @p nil_ means that no accumulator should be used, i.e. signal emission returns the return value of the last slot invoked. - * - * You should use the more convenient unnumbered sigc::signal template. - * - * @ingroup signal - */ -template -class signal5 - : public signal_base -{ -public: - typedef internal::signal_emit5 emitter_type; - typedef typename emitter_type::result_type result_type; - typedef slot slot_type; - typedef slot_list slot_list_type; - typedef typename slot_list_type::iterator iterator; - typedef typename slot_list_type::const_iterator const_iterator; - typedef typename slot_list_type::reverse_iterator reverse_iterator; - typedef typename slot_list_type::const_reverse_iterator const_reverse_iterator; - -#ifdef SIGC_TYPEDEF_REDEFINE_ALLOWED - /** This typedef is only for backwards-compatibility. - * It is not available when using the SUN Forte compiler. - * @deprecated slot_list_type; - */ - typedef slot_list_type slot_list; -#endif - - /** Add a slot to the list of slots. - * Any functor or slot may be passed into connect(). - * It will be converted into a slot implicitely. - * The returned iterator may be stored for disconnection - * of the slot at some later point. It stays valid until - * the slot is removed from the list of slots. The iterator - * can also be implicitely converted into a sigc::connection object - * that may be used safely beyond the life time of the slot. - * @param slot_ The slot to add to the list of slots. - * @return An iterator pointing to the new slot in the list. - */ - iterator connect(const slot_type& slot_) - { return iterator(signal_base::connect(static_cast(slot_))); } - - /** Triggers the emission of the signal. - * During signal emission all slots that have been connected - * to the signal are invoked unless they are manually set into - * a blocking state. The parameters are passed on to the slots. - * If @e T_accumulated is not @p nil_, an accumulator of this type - * is used to process the return values of the slot invocations. - * Otherwise, the return value of the last slot invoked is returned. - * @param _A_a1 Argument to be passed on to the slots. - * @param _A_a2 Argument to be passed on to the slots. - * @param _A_a3 Argument to be passed on to the slots. - * @param _A_a4 Argument to be passed on to the slots. - * @param _A_a5 Argument to be passed on to the slots. - * @return The accumulated return values of the slot invocations. - */ - result_type emit(typename type_trait::take _A_a1,typename type_trait::take _A_a2,typename type_trait::take _A_a3,typename type_trait::take _A_a4,typename type_trait::take _A_a5) const - { return emitter_type::emit(impl_, _A_a1,_A_a2,_A_a3,_A_a4,_A_a5); } - - /** Triggers the emission of the signal (see emit()). */ - result_type operator()(typename type_trait::take _A_a1,typename type_trait::take _A_a2,typename type_trait::take _A_a3,typename type_trait::take _A_a4,typename type_trait::take _A_a5) const - { return emit(_A_a1,_A_a2,_A_a3,_A_a4,_A_a5); } - - /** Creates a functor that calls emit() on this signal. - * @code - * sigc::mem_fun(mysignal, &sigc::signal5::emit) - * @endcode - * yields the same result. - * @return A functor that calls emit() on this signal. - */ - bound_const_mem_functor5::take,typename type_trait::take,typename type_trait::take,typename type_trait::take,typename type_trait::take> make_slot() const - { return bound_const_mem_functor5::take,typename type_trait::take,typename type_trait::take,typename type_trait::take,typename type_trait::take>(this, &signal5::emit); } - - /** Creates an STL-style interface for the signal's list of slots. - * This interface supports iteration, insertion and removal of slots. - * @return An STL-style interface for the signal's list of slots. - */ - slot_list_type slots() - { return slot_list_type(impl()); } - - /** Creates an STL-style interface for the signal's list of slots. - * This interface supports iteration, insertion and removal of slots. - * @return An STL-style interface for the signal's list of slots. - */ - const slot_list_type slots() const - { return slot_list_type(const_cast(this)->impl()); } - - signal5() {} - - signal5(const signal5& src) - : signal_base(src) {} -}; - -/** Signal declaration. - * signal6 can be used to connect() slots that are invoked - * during subsequent calls to emit(). Any functor or slot - * can be passed into connect(). It is converted into a slot - * implicitely. - * - * If you want to connect one signal to another, use make_slot() - * to retrieve a functor that emits the signal when invoked. - * - * Be careful if you directly pass one signal into the connect() - * method of another: a shallow copy of the signal is made and - * the signal's slots are not disconnected until both the signal - * and its clone are destroyed which is probably not what you want! - * - * An STL-style list interface for the signal's list of slots - * can be retrieved with slots(). This interface supports - * iteration, insertion and removal of slots. - * - * The following template arguments are used: - * - @e T_return The desired return type for the emit() function (may be overridden by the accumulator). - * - @e T_arg1 Argument type used in the definition of emit(). - * - @e T_arg2 Argument type used in the definition of emit(). - * - @e T_arg3 Argument type used in the definition of emit(). - * - @e T_arg4 Argument type used in the definition of emit(). - * - @e T_arg5 Argument type used in the definition of emit(). - * - @e T_arg6 Argument type used in the definition of emit(). - * - @e T_accumulator The accumulator type used for emission. The default @p nil_ means that no accumulator should be used, i.e. signal emission returns the return value of the last slot invoked. - * - * You should use the more convenient unnumbered sigc::signal template. - * - * @ingroup signal - */ -template -class signal6 - : public signal_base -{ -public: - typedef internal::signal_emit6 emitter_type; - typedef typename emitter_type::result_type result_type; - typedef slot slot_type; - typedef slot_list slot_list_type; - typedef typename slot_list_type::iterator iterator; - typedef typename slot_list_type::const_iterator const_iterator; - typedef typename slot_list_type::reverse_iterator reverse_iterator; - typedef typename slot_list_type::const_reverse_iterator const_reverse_iterator; - -#ifdef SIGC_TYPEDEF_REDEFINE_ALLOWED - /** This typedef is only for backwards-compatibility. - * It is not available when using the SUN Forte compiler. - * @deprecated slot_list_type; - */ - typedef slot_list_type slot_list; -#endif - - /** Add a slot to the list of slots. - * Any functor or slot may be passed into connect(). - * It will be converted into a slot implicitely. - * The returned iterator may be stored for disconnection - * of the slot at some later point. It stays valid until - * the slot is removed from the list of slots. The iterator - * can also be implicitely converted into a sigc::connection object - * that may be used safely beyond the life time of the slot. - * @param slot_ The slot to add to the list of slots. - * @return An iterator pointing to the new slot in the list. - */ - iterator connect(const slot_type& slot_) - { return iterator(signal_base::connect(static_cast(slot_))); } - - /** Triggers the emission of the signal. - * During signal emission all slots that have been connected - * to the signal are invoked unless they are manually set into - * a blocking state. The parameters are passed on to the slots. - * If @e T_accumulated is not @p nil_, an accumulator of this type - * is used to process the return values of the slot invocations. - * Otherwise, the return value of the last slot invoked is returned. - * @param _A_a1 Argument to be passed on to the slots. - * @param _A_a2 Argument to be passed on to the slots. - * @param _A_a3 Argument to be passed on to the slots. - * @param _A_a4 Argument to be passed on to the slots. - * @param _A_a5 Argument to be passed on to the slots. - * @param _A_a6 Argument to be passed on to the slots. - * @return The accumulated return values of the slot invocations. - */ - result_type emit(typename type_trait::take _A_a1,typename type_trait::take _A_a2,typename type_trait::take _A_a3,typename type_trait::take _A_a4,typename type_trait::take _A_a5,typename type_trait::take _A_a6) const - { return emitter_type::emit(impl_, _A_a1,_A_a2,_A_a3,_A_a4,_A_a5,_A_a6); } - - /** Triggers the emission of the signal (see emit()). */ - result_type operator()(typename type_trait::take _A_a1,typename type_trait::take _A_a2,typename type_trait::take _A_a3,typename type_trait::take _A_a4,typename type_trait::take _A_a5,typename type_trait::take _A_a6) const - { return emit(_A_a1,_A_a2,_A_a3,_A_a4,_A_a5,_A_a6); } - - /** Creates a functor that calls emit() on this signal. - * @code - * sigc::mem_fun(mysignal, &sigc::signal6::emit) - * @endcode - * yields the same result. - * @return A functor that calls emit() on this signal. - */ - bound_const_mem_functor6::take,typename type_trait::take,typename type_trait::take,typename type_trait::take,typename type_trait::take,typename type_trait::take> make_slot() const - { return bound_const_mem_functor6::take,typename type_trait::take,typename type_trait::take,typename type_trait::take,typename type_trait::take,typename type_trait::take>(this, &signal6::emit); } - - /** Creates an STL-style interface for the signal's list of slots. - * This interface supports iteration, insertion and removal of slots. - * @return An STL-style interface for the signal's list of slots. - */ - slot_list_type slots() - { return slot_list_type(impl()); } - - /** Creates an STL-style interface for the signal's list of slots. - * This interface supports iteration, insertion and removal of slots. - * @return An STL-style interface for the signal's list of slots. - */ - const slot_list_type slots() const - { return slot_list_type(const_cast(this)->impl()); } - - signal6() {} - - signal6(const signal6& src) - : signal_base(src) {} -}; - -/** Signal declaration. - * signal7 can be used to connect() slots that are invoked - * during subsequent calls to emit(). Any functor or slot - * can be passed into connect(). It is converted into a slot - * implicitely. - * - * If you want to connect one signal to another, use make_slot() - * to retrieve a functor that emits the signal when invoked. - * - * Be careful if you directly pass one signal into the connect() - * method of another: a shallow copy of the signal is made and - * the signal's slots are not disconnected until both the signal - * and its clone are destroyed which is probably not what you want! - * - * An STL-style list interface for the signal's list of slots - * can be retrieved with slots(). This interface supports - * iteration, insertion and removal of slots. - * - * The following template arguments are used: - * - @e T_return The desired return type for the emit() function (may be overridden by the accumulator). - * - @e T_arg1 Argument type used in the definition of emit(). - * - @e T_arg2 Argument type used in the definition of emit(). - * - @e T_arg3 Argument type used in the definition of emit(). - * - @e T_arg4 Argument type used in the definition of emit(). - * - @e T_arg5 Argument type used in the definition of emit(). - * - @e T_arg6 Argument type used in the definition of emit(). - * - @e T_arg7 Argument type used in the definition of emit(). - * - @e T_accumulator The accumulator type used for emission. The default @p nil_ means that no accumulator should be used, i.e. signal emission returns the return value of the last slot invoked. - * - * You should use the more convenient unnumbered sigc::signal template. - * - * @ingroup signal - */ -template -class signal7 - : public signal_base -{ -public: - typedef internal::signal_emit7 emitter_type; - typedef typename emitter_type::result_type result_type; - typedef slot slot_type; - typedef slot_list slot_list_type; - typedef typename slot_list_type::iterator iterator; - typedef typename slot_list_type::const_iterator const_iterator; - typedef typename slot_list_type::reverse_iterator reverse_iterator; - typedef typename slot_list_type::const_reverse_iterator const_reverse_iterator; - -#ifdef SIGC_TYPEDEF_REDEFINE_ALLOWED - /** This typedef is only for backwards-compatibility. - * It is not available when using the SUN Forte compiler. - * @deprecated slot_list_type; - */ - typedef slot_list_type slot_list; -#endif - - /** Add a slot to the list of slots. - * Any functor or slot may be passed into connect(). - * It will be converted into a slot implicitely. - * The returned iterator may be stored for disconnection - * of the slot at some later point. It stays valid until - * the slot is removed from the list of slots. The iterator - * can also be implicitely converted into a sigc::connection object - * that may be used safely beyond the life time of the slot. - * @param slot_ The slot to add to the list of slots. - * @return An iterator pointing to the new slot in the list. - */ - iterator connect(const slot_type& slot_) - { return iterator(signal_base::connect(static_cast(slot_))); } - - /** Triggers the emission of the signal. - * During signal emission all slots that have been connected - * to the signal are invoked unless they are manually set into - * a blocking state. The parameters are passed on to the slots. - * If @e T_accumulated is not @p nil_, an accumulator of this type - * is used to process the return values of the slot invocations. - * Otherwise, the return value of the last slot invoked is returned. - * @param _A_a1 Argument to be passed on to the slots. - * @param _A_a2 Argument to be passed on to the slots. - * @param _A_a3 Argument to be passed on to the slots. - * @param _A_a4 Argument to be passed on to the slots. - * @param _A_a5 Argument to be passed on to the slots. - * @param _A_a6 Argument to be passed on to the slots. - * @param _A_a7 Argument to be passed on to the slots. - * @return The accumulated return values of the slot invocations. - */ - result_type emit(typename type_trait::take _A_a1,typename type_trait::take _A_a2,typename type_trait::take _A_a3,typename type_trait::take _A_a4,typename type_trait::take _A_a5,typename type_trait::take _A_a6,typename type_trait::take _A_a7) const - { return emitter_type::emit(impl_, _A_a1,_A_a2,_A_a3,_A_a4,_A_a5,_A_a6,_A_a7); } - - /** Triggers the emission of the signal (see emit()). */ - result_type operator()(typename type_trait::take _A_a1,typename type_trait::take _A_a2,typename type_trait::take _A_a3,typename type_trait::take _A_a4,typename type_trait::take _A_a5,typename type_trait::take _A_a6,typename type_trait::take _A_a7) const - { return emit(_A_a1,_A_a2,_A_a3,_A_a4,_A_a5,_A_a6,_A_a7); } - - /** Creates a functor that calls emit() on this signal. - * @code - * sigc::mem_fun(mysignal, &sigc::signal7::emit) - * @endcode - * yields the same result. - * @return A functor that calls emit() on this signal. - */ - bound_const_mem_functor7::take,typename type_trait::take,typename type_trait::take,typename type_trait::take,typename type_trait::take,typename type_trait::take,typename type_trait::take> make_slot() const - { return bound_const_mem_functor7::take,typename type_trait::take,typename type_trait::take,typename type_trait::take,typename type_trait::take,typename type_trait::take,typename type_trait::take>(this, &signal7::emit); } - - /** Creates an STL-style interface for the signal's list of slots. - * This interface supports iteration, insertion and removal of slots. - * @return An STL-style interface for the signal's list of slots. - */ - slot_list_type slots() - { return slot_list_type(impl()); } - - /** Creates an STL-style interface for the signal's list of slots. - * This interface supports iteration, insertion and removal of slots. - * @return An STL-style interface for the signal's list of slots. - */ - const slot_list_type slots() const - { return slot_list_type(const_cast(this)->impl()); } - - signal7() {} - - signal7(const signal7& src) - : signal_base(src) {} -}; - - - -/** Convenience wrapper for the numbered sigc::signal# templates. - * signal can be used to connect() slots that are invoked - * during subsequent calls to emit(). Any functor or slot - * can be passed into connect(). It is converted into a slot - * implicitly. - * - * If you want to connect one signal to another, use make_slot() - * to retrieve a functor that emits the signal when invoked. - * - * Be careful if you directly pass one signal into the connect() - * method of another: a shallow copy of the signal is made and - * the signal's slots are not disconnected until both the signal - * and its clone are destroyed which is probably not what you want! - * - * An STL-style list interface for the signal's list of slots - * can be retrieved with slots(). This interface supports - * iteration, insertion and removal of slots. - * - * The template arguments determine the function signature of - * the emit() function: - * - @e T_return The desired return type of the emit() function. - * - @e T_arg1 Argument type used in the definition of emit(). The default @p nil_ means no argument. - * - @e T_arg2 Argument type used in the definition of emit(). The default @p nil_ means no argument. - * - @e T_arg3 Argument type used in the definition of emit(). The default @p nil_ means no argument. - * - @e T_arg4 Argument type used in the definition of emit(). The default @p nil_ means no argument. - * - @e T_arg5 Argument type used in the definition of emit(). The default @p nil_ means no argument. - * - @e T_arg6 Argument type used in the definition of emit(). The default @p nil_ means no argument. - * - @e T_arg7 Argument type used in the definition of emit(). The default @p nil_ means no argument. - * - * To specify an accumulator type the nested class signal::accumulated can be used. - * - * @par Example: - * @code - * void foo(int) {} - * sigc::signal sig; - * sig.connect(sigc::ptr_fun(&foo)); - * sig.emit(19); - * @endcode - * - * @ingroup signal - */ -template -class signal - : public signal7 -{ -public: - /** Convenience wrapper for the numbered sigc::signal# templates. - * Like sigc::signal but the additional template parameter @e T_accumulator - * defines the accumulator type that should be used. - * - * An accumulator is a functor that uses a pair of special iterators - * to step through a list of slots and calculate a return value - * from the results of the slot invokations. The iterators' operator*() - * executes the slot. The return value is buffered, so that in an expression - * like @code a = (*i) * (*i); @endcode the slot is executed only once. - * The accumulator must define its return value as @p result_type. - * - * @par Example 1: - * This accumulator calculates the arithmetic mean value: - * @code - * struct arithmetic_mean_accumulator - * { - * typedef double result_type; - * template - * result_type operator()(T_iterator first, T_iterator last) const - * { - * result_type value_ = 0; - * int n_ = 0; - * for (; first != last; ++first, ++n_) - * value_ += *first; - * return value_ / n_; - * } - * }; - * @endcode - * - * @par Example 2: - * This accumulator stops signal emission when a slot returns zero: - * @code - * struct interruptable_accumulator - * { - * typedef bool result_type; - * template - * result_type operator()(T_iterator first, T_iterator last) const - * { - * for (; first != last; ++first, ++n_) - * if (!*first) return false; - * return true; - * } - * }; - * @endcode - * - * @ingroup signal - */ - template - class accumulated - : public signal7 - { - public: - accumulated() {} - accumulated(const accumulated& src) - : signal7(src) {} - }; - - signal() {} - signal(const signal& src) - : signal7(src) {} -}; - - -/** Convenience wrapper for the numbered sigc::signal0 template. - * See the base class for useful methods. - * This is the template specialization of the unnumbered sigc::signal - * template for 0 argument(s). - */ -template -class signal - : public signal0 -{ -public: - - /** Convenience wrapper for the numbered sigc::signal0 template. - * Like sigc::signal but the additional template parameter @e T_accumulator - * defines the accumulator type that should be used. - */ - template - class accumulated - : public signal0 - { - public: - accumulated() {} - accumulated(const accumulated& src) - : signal0(src) {} - }; - - signal() {} - signal(const signal& src) - : signal0(src) {} -}; - -/** Convenience wrapper for the numbered sigc::signal1 template. - * See the base class for useful methods. - * This is the template specialization of the unnumbered sigc::signal - * template for 1 argument(s). - */ -template -class signal - : public signal1 -{ -public: - - /** Convenience wrapper for the numbered sigc::signal1 template. - * Like sigc::signal but the additional template parameter @e T_accumulator - * defines the accumulator type that should be used. - */ - template - class accumulated - : public signal1 - { - public: - accumulated() {} - accumulated(const accumulated& src) - : signal1(src) {} - }; - - signal() {} - signal(const signal& src) - : signal1(src) {} -}; - -/** Convenience wrapper for the numbered sigc::signal2 template. - * See the base class for useful methods. - * This is the template specialization of the unnumbered sigc::signal - * template for 2 argument(s). - */ -template -class signal - : public signal2 -{ -public: - - /** Convenience wrapper for the numbered sigc::signal2 template. - * Like sigc::signal but the additional template parameter @e T_accumulator - * defines the accumulator type that should be used. - */ - template - class accumulated - : public signal2 - { - public: - accumulated() {} - accumulated(const accumulated& src) - : signal2(src) {} - }; - - signal() {} - signal(const signal& src) - : signal2(src) {} -}; - -/** Convenience wrapper for the numbered sigc::signal3 template. - * See the base class for useful methods. - * This is the template specialization of the unnumbered sigc::signal - * template for 3 argument(s). - */ -template -class signal - : public signal3 -{ -public: - - /** Convenience wrapper for the numbered sigc::signal3 template. - * Like sigc::signal but the additional template parameter @e T_accumulator - * defines the accumulator type that should be used. - */ - template - class accumulated - : public signal3 - { - public: - accumulated() {} - accumulated(const accumulated& src) - : signal3(src) {} - }; - - signal() {} - signal(const signal& src) - : signal3(src) {} -}; - -/** Convenience wrapper for the numbered sigc::signal4 template. - * See the base class for useful methods. - * This is the template specialization of the unnumbered sigc::signal - * template for 4 argument(s). - */ -template -class signal - : public signal4 -{ -public: - - /** Convenience wrapper for the numbered sigc::signal4 template. - * Like sigc::signal but the additional template parameter @e T_accumulator - * defines the accumulator type that should be used. - */ - template - class accumulated - : public signal4 - { - public: - accumulated() {} - accumulated(const accumulated& src) - : signal4(src) {} - }; - - signal() {} - signal(const signal& src) - : signal4(src) {} -}; - -/** Convenience wrapper for the numbered sigc::signal5 template. - * See the base class for useful methods. - * This is the template specialization of the unnumbered sigc::signal - * template for 5 argument(s). - */ -template -class signal - : public signal5 -{ -public: - - /** Convenience wrapper for the numbered sigc::signal5 template. - * Like sigc::signal but the additional template parameter @e T_accumulator - * defines the accumulator type that should be used. - */ - template - class accumulated - : public signal5 - { - public: - accumulated() {} - accumulated(const accumulated& src) - : signal5(src) {} - }; - - signal() {} - signal(const signal& src) - : signal5(src) {} -}; - -/** Convenience wrapper for the numbered sigc::signal6 template. - * See the base class for useful methods. - * This is the template specialization of the unnumbered sigc::signal - * template for 6 argument(s). - */ -template -class signal - : public signal6 -{ -public: - - /** Convenience wrapper for the numbered sigc::signal6 template. - * Like sigc::signal but the additional template parameter @e T_accumulator - * defines the accumulator type that should be used. - */ - template - class accumulated - : public signal6 - { - public: - accumulated() {} - accumulated(const accumulated& src) - : signal6(src) {} - }; - - signal() {} - signal(const signal& src) - : signal6(src) {} -}; - - - -} /* namespace sigc */ - - -#ifndef LIBSIGC_DISABLE_DEPRECATED - -namespace SigC { - -// SignalN -/** Signal declaration. - * Signal0 can be used to connect() slots that are invoked - * during subsequent calls to emit(). Any functor or slot - * can be passed into connect(). It is converted into a slot - * implicitely. - * - * If you want to connect one signal to another, use slot() - * to retrieve a functor that emits the signal when invoked. - * - * Be careful if you directly pass one signal into the connect() - * method of another: a shallow copy of the signal is made and - * the signal's slots are not disconnected until both the signal - * and its clone are destroyed which is probably not what you want! - * - * An STL-style list interface for the signal's list of slots - * can be retrieved with slots(). This interface supports - * iteration, insertion and removal of slots. - * - * The following template arguments are used: - * - @e T_return The desired return type for the emit() function (may be overridden by the accumulator). - * - @e T_accumulator The accumulator type used for emission. The default @p nil_ means that no accumulator should be used. Signal emission returns the return value of the last slot invoked. - * - * @deprecated Use the unnumbered template sigc::signal instead. - * @ingroup compat - */ -template -class Signal0 - : public ::sigc::signal0 -{ -public: - typedef ::sigc::signal0 parent_type; - typedef typename parent_type::result_type result_type; - typedef typename parent_type::slot_type slot_type; - - Signal0() {} - Signal0(const Signal0& src) - : ::sigc::signal0(src) {} - - /** Creates a functor that calls emit() on this signal. - * @code - * sigc::mem_fun(mysignal, &sigc::signal0::emit) - * @endcode - * yields the same result. - * @return A functor that calls emit() on this signal. - */ - slot_type slot() const - { return ::sigc::bound_const_mem_functor0(this, &parent_type::emit); } -}; - -/** Signal declaration. - * Signal1 can be used to connect() slots that are invoked - * during subsequent calls to emit(). Any functor or slot - * can be passed into connect(). It is converted into a slot - * implicitely. - * - * If you want to connect one signal to another, use slot() - * to retrieve a functor that emits the signal when invoked. - * - * Be careful if you directly pass one signal into the connect() - * method of another: a shallow copy of the signal is made and - * the signal's slots are not disconnected until both the signal - * and its clone are destroyed which is probably not what you want! - * - * An STL-style list interface for the signal's list of slots - * can be retrieved with slots(). This interface supports - * iteration, insertion and removal of slots. - * - * The following template arguments are used: - * - @e T_return The desired return type for the emit() function (may be overridden by the accumulator). - * - @e T_arg1 Argument type used in the definition of emit(). - * - @e T_accumulator The accumulator type used for emission. The default @p nil_ means that no accumulator should be used. Signal emission returns the return value of the last slot invoked. - * - * @deprecated Use the unnumbered template sigc::signal instead. - * @ingroup compat - */ -template -class Signal1 - : public ::sigc::signal1 -{ -public: - typedef ::sigc::signal1 parent_type; - typedef typename parent_type::result_type result_type; - typedef typename parent_type::slot_type slot_type; - - Signal1() {} - Signal1(const Signal1& src) - : ::sigc::signal1(src) {} - - /** Creates a functor that calls emit() on this signal. - * @code - * sigc::mem_fun(mysignal, &sigc::signal1::emit) - * @endcode - * yields the same result. - * @return A functor that calls emit() on this signal. - */ - slot_type slot() const - { return ::sigc::bound_const_mem_functor1::take>(this, &parent_type::emit); } -}; - -/** Signal declaration. - * Signal2 can be used to connect() slots that are invoked - * during subsequent calls to emit(). Any functor or slot - * can be passed into connect(). It is converted into a slot - * implicitely. - * - * If you want to connect one signal to another, use slot() - * to retrieve a functor that emits the signal when invoked. - * - * Be careful if you directly pass one signal into the connect() - * method of another: a shallow copy of the signal is made and - * the signal's slots are not disconnected until both the signal - * and its clone are destroyed which is probably not what you want! - * - * An STL-style list interface for the signal's list of slots - * can be retrieved with slots(). This interface supports - * iteration, insertion and removal of slots. - * - * The following template arguments are used: - * - @e T_return The desired return type for the emit() function (may be overridden by the accumulator). - * - @e T_arg1 Argument type used in the definition of emit(). - * - @e T_arg2 Argument type used in the definition of emit(). - * - @e T_accumulator The accumulator type used for emission. The default @p nil_ means that no accumulator should be used. Signal emission returns the return value of the last slot invoked. - * - * @deprecated Use the unnumbered template sigc::signal instead. - * @ingroup compat - */ -template -class Signal2 - : public ::sigc::signal2 -{ -public: - typedef ::sigc::signal2 parent_type; - typedef typename parent_type::result_type result_type; - typedef typename parent_type::slot_type slot_type; - - Signal2() {} - Signal2(const Signal2& src) - : ::sigc::signal2(src) {} - - /** Creates a functor that calls emit() on this signal. - * @code - * sigc::mem_fun(mysignal, &sigc::signal2::emit) - * @endcode - * yields the same result. - * @return A functor that calls emit() on this signal. - */ - slot_type slot() const - { return ::sigc::bound_const_mem_functor2::take,typename ::sigc::type_trait::take>(this, &parent_type::emit); } -}; - -/** Signal declaration. - * Signal3 can be used to connect() slots that are invoked - * during subsequent calls to emit(). Any functor or slot - * can be passed into connect(). It is converted into a slot - * implicitely. - * - * If you want to connect one signal to another, use slot() - * to retrieve a functor that emits the signal when invoked. - * - * Be careful if you directly pass one signal into the connect() - * method of another: a shallow copy of the signal is made and - * the signal's slots are not disconnected until both the signal - * and its clone are destroyed which is probably not what you want! - * - * An STL-style list interface for the signal's list of slots - * can be retrieved with slots(). This interface supports - * iteration, insertion and removal of slots. - * - * The following template arguments are used: - * - @e T_return The desired return type for the emit() function (may be overridden by the accumulator). - * - @e T_arg1 Argument type used in the definition of emit(). - * - @e T_arg2 Argument type used in the definition of emit(). - * - @e T_arg3 Argument type used in the definition of emit(). - * - @e T_accumulator The accumulator type used for emission. The default @p nil_ means that no accumulator should be used. Signal emission returns the return value of the last slot invoked. - * - * @deprecated Use the unnumbered template sigc::signal instead. - * @ingroup compat - */ -template -class Signal3 - : public ::sigc::signal3 -{ -public: - typedef ::sigc::signal3 parent_type; - typedef typename parent_type::result_type result_type; - typedef typename parent_type::slot_type slot_type; - - Signal3() {} - Signal3(const Signal3& src) - : ::sigc::signal3(src) {} - - /** Creates a functor that calls emit() on this signal. - * @code - * sigc::mem_fun(mysignal, &sigc::signal3::emit) - * @endcode - * yields the same result. - * @return A functor that calls emit() on this signal. - */ - slot_type slot() const - { return ::sigc::bound_const_mem_functor3::take,typename ::sigc::type_trait::take,typename ::sigc::type_trait::take>(this, &parent_type::emit); } -}; - -/** Signal declaration. - * Signal4 can be used to connect() slots that are invoked - * during subsequent calls to emit(). Any functor or slot - * can be passed into connect(). It is converted into a slot - * implicitely. - * - * If you want to connect one signal to another, use slot() - * to retrieve a functor that emits the signal when invoked. - * - * Be careful if you directly pass one signal into the connect() - * method of another: a shallow copy of the signal is made and - * the signal's slots are not disconnected until both the signal - * and its clone are destroyed which is probably not what you want! - * - * An STL-style list interface for the signal's list of slots - * can be retrieved with slots(). This interface supports - * iteration, insertion and removal of slots. - * - * The following template arguments are used: - * - @e T_return The desired return type for the emit() function (may be overridden by the accumulator). - * - @e T_arg1 Argument type used in the definition of emit(). - * - @e T_arg2 Argument type used in the definition of emit(). - * - @e T_arg3 Argument type used in the definition of emit(). - * - @e T_arg4 Argument type used in the definition of emit(). - * - @e T_accumulator The accumulator type used for emission. The default @p nil_ means that no accumulator should be used. Signal emission returns the return value of the last slot invoked. - * - * @deprecated Use the unnumbered template sigc::signal instead. - * @ingroup compat - */ -template -class Signal4 - : public ::sigc::signal4 -{ -public: - typedef ::sigc::signal4 parent_type; - typedef typename parent_type::result_type result_type; - typedef typename parent_type::slot_type slot_type; - - Signal4() {} - Signal4(const Signal4& src) - : ::sigc::signal4(src) {} - - /** Creates a functor that calls emit() on this signal. - * @code - * sigc::mem_fun(mysignal, &sigc::signal4::emit) - * @endcode - * yields the same result. - * @return A functor that calls emit() on this signal. - */ - slot_type slot() const - { return ::sigc::bound_const_mem_functor4::take,typename ::sigc::type_trait::take,typename ::sigc::type_trait::take,typename ::sigc::type_trait::take>(this, &parent_type::emit); } -}; - -/** Signal declaration. - * Signal5 can be used to connect() slots that are invoked - * during subsequent calls to emit(). Any functor or slot - * can be passed into connect(). It is converted into a slot - * implicitely. - * - * If you want to connect one signal to another, use slot() - * to retrieve a functor that emits the signal when invoked. - * - * Be careful if you directly pass one signal into the connect() - * method of another: a shallow copy of the signal is made and - * the signal's slots are not disconnected until both the signal - * and its clone are destroyed which is probably not what you want! - * - * An STL-style list interface for the signal's list of slots - * can be retrieved with slots(). This interface supports - * iteration, insertion and removal of slots. - * - * The following template arguments are used: - * - @e T_return The desired return type for the emit() function (may be overridden by the accumulator). - * - @e T_arg1 Argument type used in the definition of emit(). - * - @e T_arg2 Argument type used in the definition of emit(). - * - @e T_arg3 Argument type used in the definition of emit(). - * - @e T_arg4 Argument type used in the definition of emit(). - * - @e T_arg5 Argument type used in the definition of emit(). - * - @e T_accumulator The accumulator type used for emission. The default @p nil_ means that no accumulator should be used. Signal emission returns the return value of the last slot invoked. - * - * @deprecated Use the unnumbered template sigc::signal instead. - * @ingroup compat - */ -template -class Signal5 - : public ::sigc::signal5 -{ -public: - typedef ::sigc::signal5 parent_type; - typedef typename parent_type::result_type result_type; - typedef typename parent_type::slot_type slot_type; - - Signal5() {} - Signal5(const Signal5& src) - : ::sigc::signal5(src) {} - - /** Creates a functor that calls emit() on this signal. - * @code - * sigc::mem_fun(mysignal, &sigc::signal5::emit) - * @endcode - * yields the same result. - * @return A functor that calls emit() on this signal. - */ - slot_type slot() const - { return ::sigc::bound_const_mem_functor5::take,typename ::sigc::type_trait::take,typename ::sigc::type_trait::take,typename ::sigc::type_trait::take,typename ::sigc::type_trait::take>(this, &parent_type::emit); } -}; - -/** Signal declaration. - * Signal6 can be used to connect() slots that are invoked - * during subsequent calls to emit(). Any functor or slot - * can be passed into connect(). It is converted into a slot - * implicitely. - * - * If you want to connect one signal to another, use slot() - * to retrieve a functor that emits the signal when invoked. - * - * Be careful if you directly pass one signal into the connect() - * method of another: a shallow copy of the signal is made and - * the signal's slots are not disconnected until both the signal - * and its clone are destroyed which is probably not what you want! - * - * An STL-style list interface for the signal's list of slots - * can be retrieved with slots(). This interface supports - * iteration, insertion and removal of slots. - * - * The following template arguments are used: - * - @e T_return The desired return type for the emit() function (may be overridden by the accumulator). - * - @e T_arg1 Argument type used in the definition of emit(). - * - @e T_arg2 Argument type used in the definition of emit(). - * - @e T_arg3 Argument type used in the definition of emit(). - * - @e T_arg4 Argument type used in the definition of emit(). - * - @e T_arg5 Argument type used in the definition of emit(). - * - @e T_arg6 Argument type used in the definition of emit(). - * - @e T_accumulator The accumulator type used for emission. The default @p nil_ means that no accumulator should be used. Signal emission returns the return value of the last slot invoked. - * - * @deprecated Use the unnumbered template sigc::signal instead. - * @ingroup compat - */ -template -class Signal6 - : public ::sigc::signal6 -{ -public: - typedef ::sigc::signal6 parent_type; - typedef typename parent_type::result_type result_type; - typedef typename parent_type::slot_type slot_type; - - Signal6() {} - Signal6(const Signal6& src) - : ::sigc::signal6(src) {} - - /** Creates a functor that calls emit() on this signal. - * @code - * sigc::mem_fun(mysignal, &sigc::signal6::emit) - * @endcode - * yields the same result. - * @return A functor that calls emit() on this signal. - */ - slot_type slot() const - { return ::sigc::bound_const_mem_functor6::take,typename ::sigc::type_trait::take,typename ::sigc::type_trait::take,typename ::sigc::type_trait::take,typename ::sigc::type_trait::take,typename ::sigc::type_trait::take>(this, &parent_type::emit); } -}; - -/** Signal declaration. - * Signal7 can be used to connect() slots that are invoked - * during subsequent calls to emit(). Any functor or slot - * can be passed into connect(). It is converted into a slot - * implicitely. - * - * If you want to connect one signal to another, use slot() - * to retrieve a functor that emits the signal when invoked. - * - * Be careful if you directly pass one signal into the connect() - * method of another: a shallow copy of the signal is made and - * the signal's slots are not disconnected until both the signal - * and its clone are destroyed which is probably not what you want! - * - * An STL-style list interface for the signal's list of slots - * can be retrieved with slots(). This interface supports - * iteration, insertion and removal of slots. - * - * The following template arguments are used: - * - @e T_return The desired return type for the emit() function (may be overridden by the accumulator). - * - @e T_arg1 Argument type used in the definition of emit(). - * - @e T_arg2 Argument type used in the definition of emit(). - * - @e T_arg3 Argument type used in the definition of emit(). - * - @e T_arg4 Argument type used in the definition of emit(). - * - @e T_arg5 Argument type used in the definition of emit(). - * - @e T_arg6 Argument type used in the definition of emit(). - * - @e T_arg7 Argument type used in the definition of emit(). - * - @e T_accumulator The accumulator type used for emission. The default @p nil_ means that no accumulator should be used. Signal emission returns the return value of the last slot invoked. - * - * @deprecated Use the unnumbered template sigc::signal instead. - * @ingroup compat - */ -template -class Signal7 - : public ::sigc::signal7 -{ -public: - typedef ::sigc::signal7 parent_type; - typedef typename parent_type::result_type result_type; - typedef typename parent_type::slot_type slot_type; - - Signal7() {} - Signal7(const Signal7& src) - : ::sigc::signal7(src) {} - - /** Creates a functor that calls emit() on this signal. - * @code - * sigc::mem_fun(mysignal, &sigc::signal7::emit) - * @endcode - * yields the same result. - * @return A functor that calls emit() on this signal. - */ - slot_type slot() const - { return ::sigc::bound_const_mem_functor7::take,typename ::sigc::type_trait::take,typename ::sigc::type_trait::take,typename ::sigc::type_trait::take,typename ::sigc::type_trait::take,typename ::sigc::type_trait::take,typename ::sigc::type_trait::take>(this, &parent_type::emit); } -}; - - -} - -#endif /* LIBSIGC_DISABLE_DEPRECATED */ - -#endif /* _SIGC_SIGNAL_H_ */ diff --git a/libs/sigc++2/sigc++/signal_base.cc b/libs/sigc++2/sigc++/signal_base.cc deleted file mode 100644 index 568cf061c8..0000000000 --- a/libs/sigc++2/sigc++/signal_base.cc +++ /dev/null @@ -1,151 +0,0 @@ -// -*- c++ -*- -/* - * Copyright 2003, The libsigc++ Development Team - * - * 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.1 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 - * - */ -#include - -namespace sigc { -namespace internal { - -signal_impl::signal_impl() -: ref_count_(0), exec_count_(0), deferred_(0) -{} - -// only MSVC needs this to guarantee that all new/delete are executed from the DLL module -#ifdef SIGC_NEW_DELETE_IN_LIBRARY_ONLY -void* signal_impl::operator new(size_t size_) -{ - return malloc(size_); -} - -void signal_impl::operator delete(void* p) -{ - free(p); -} -#endif - -void signal_impl::clear() -{ - slots_.clear(); -} - -signal_impl::size_type signal_impl::size() const -{ - return slots_.size(); -} - -signal_impl::iterator_type signal_impl::connect(const slot_base& slot_) -{ - return insert(slots_.end(), slot_); -} - -signal_impl::iterator_type signal_impl::erase(iterator_type i) -{ - return slots_.erase(i); -} - -signal_impl::iterator_type signal_impl::insert(signal_impl::iterator_type i, const slot_base& slot_) -{ - iterator_type temp = slots_.insert(i, slot_); - temp->set_parent(this, ¬ify); - return temp; -} - -void signal_impl::sweep() -{ - iterator_type i = slots_.begin(); - while (i != slots_.end()) - if ((*i).empty()) - i = slots_.erase(i); - else - ++i; -} - -void* signal_impl::notify(void* d) -{ - signal_impl* self = (signal_impl*)d; - if (self->exec_count_ == 0) - self->sweep(); - else // This is occuring during signal emission. - self->deferred_ = true; // => sweep() will be called from ~signal_exec(). - return 0; // This is safer because we don't have to care about our iterators in emit(). -} - -} /* namespace internal */ - -signal_base::signal_base() -: impl_(0) -{} - -signal_base::signal_base(const signal_base& src) -: trackable(), - impl_(src.impl()) -{ - impl_->reference(); -} - -signal_base::~signal_base() -{ - if (impl_) - impl_->unreference(); -} - -void signal_base::clear() -{ - if (impl_) - impl_->clear(); -} - -signal_base::size_type signal_base::size() const -{ - return (impl_ ? impl_->size() : 0); -} - -signal_base::iterator_type signal_base::connect(const slot_base& slot_) -{ - return impl()->connect(slot_); -} - -signal_base::iterator_type signal_base::insert(iterator_type i, const slot_base& slot_) -{ - return impl()->insert(i, slot_); -} - -signal_base::iterator_type signal_base::erase(iterator_type i) -{ - return impl()->erase(i); -} - -signal_base& signal_base::operator = (const signal_base& src) -{ - if (impl_) impl_->unreference(); - impl_ = src.impl(); - impl_->reference(); - return *this; -} - -internal::signal_impl* signal_base::impl() const -{ - if (!impl_) { - impl_ = new internal::signal_impl; - impl_->reference(); // start with a reference count of 1 - } - return impl_; -} - -} /* sigc */ diff --git a/libs/sigc++2/sigc++/signal_base.h b/libs/sigc++2/sigc++/signal_base.h deleted file mode 100644 index 3af33d3e99..0000000000 --- a/libs/sigc++2/sigc++/signal_base.h +++ /dev/null @@ -1,261 +0,0 @@ -// -*- c++ -*- -/* - * Copyright 2002, The libsigc++ Development Team - * - * 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.1 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 - * - */ - -#ifndef _SIGC_SIGNAL_BASE_H_ -#define _SIGC_SIGNAL_BASE_H_ - -#include -#include -#include -#include -#include -#include - -namespace sigc -{ - -namespace internal -{ - -/** Implementation of the signal interface. - * signal_impl manages a list of slots. When a slot becomes - * invalid (because some referred object dies), notify() is executed. - * notify() either calls sweep() directly or defers the execution of - * sweep() when the signal is being emitted. sweep() removes all - * invalid slot from the list. - */ -struct SIGC_API signal_impl -{ - typedef size_t size_type; - typedef std::list::iterator iterator_type; - typedef std::list::const_iterator const_iterator_type; - - signal_impl(); - - // only MSVC needs this to guarantee that all new/delete are executed from the DLL module -#ifdef SIGC_NEW_DELETE_IN_LIBRARY_ONLY - void* operator new(size_t size_); - void operator delete(void* p); -#endif - - /// Increments the reference counter. - inline void reference() - { ++ref_count_; } - - /// Increments the reference and execution counter. - inline void reference_exec() - { ++ref_count_; ++exec_count_; } - - /** Decrements the reference counter. - * The object is deleted when the reference counter reaches zero. - */ - inline void unreference() - { if (!(--ref_count_)) delete this; } - - /** Decrements the reference and execution counter. - * Invokes sweep() if the execution counter reaches zero and the - * removal of one or more slots has been deferred. - */ - inline void unreference_exec() - { - if (!(--ref_count_)) delete this; - else if (!(--exec_count_) && deferred_) sweep(); - } - - /** Returns whether the list of slots is empty. - * @return @p true if the list of slots is empty. - */ - inline bool empty() const - { return slots_.empty(); } - - /// Empties the list of slots. - void clear(); - - /** Returns the number of slots in the list. - * @return The number of slots in the list. - */ - size_type size() const; - - /** Adds a slot at the bottom of the list of slots. - * @param slot_ The slot to add to the list of slots. - * @return An iterator pointing to the new slot in the list. - */ - iterator_type connect(const slot_base& slot_); - - /** Adds a slot at the given position into the list of slots. - * @param i An iterator indicating the position where @p slot_ should be inserted. - * @param slot_ The slot to add to the list of slots. - * @return An iterator pointing to the new slot in the list. - */ - iterator_type insert(iterator_type i, const slot_base& slot_); - - /** Removes the slot at the given position from the list of slots. - * @param i An iterator pointing to the slot to be removed. - * @return An iterator pointing to the slot in the list after the one removed. - */ - iterator_type erase(iterator_type i); - - /// Removes invalid slots from the list of slots. - void sweep(); - - /** Callback that is executed when some slot becomes invalid. - * This callback is registered in every slot when inserted into - * the list of slots. It is executed when a slot becomes invalid - * because of some referred object being destroyed. - * It either calls sweep() directly or defers the execution of - * sweep() when the signal is being emitted. - * @param d The signal object (@p this). - */ - static void* notify(void* d); - - /** Reference counter. - * The object is destroyed when @em ref_count_ reaches zero. - */ - short ref_count_; - - /** Execution counter. - * Indicates whether the signal is being emitted. - */ - short exec_count_; - - /// Indicates whether the execution of sweep() is being deferred. - bool deferred_; - - /// The list of slots. - std::list slots_; -}; - -/// Exception safe sweeper for cleaning up invalid slots on the slot list. -struct SIGC_API signal_exec -{ - /// The parent sigc::signal_impl object. - signal_impl* sig_; - - /** Increments the reference and execution counter of the parent sigc::signal_impl object. - * @param sig The parent sigc::signal_impl object. - */ - inline signal_exec(const signal_impl* sig) - : sig_(const_cast(sig) ) - { sig_->reference_exec(); } - - /// Decrements the reference and execution counter of the parent sigc::signal_impl object. - inline ~signal_exec() - { sig_->unreference_exec(); } -}; - -} /* namespace internal */ - - -/** @defgroup signal Signals - * Use sigc::signal::connect() with sigc::mem_fun() and sigc::ptr_fun() to connect a method or function with a signal. - * - * @code - * signal_clicked.connect( sigc::mem_fun(*this, &MyWindow::on_clicked) ); - * @endcode - * - * When the signal is emitted your method will be called. - * - * signal::connect() returns a connection, which you can later use to disconnect your method. - * If the type of your object inherits from sigc::trackable the method is disconnected - * automatically when your object is destroyed. - * - * When signals are copied they share the underlying information, - * so you can have a protected/private sigc::signal member and a public accessor method. - * - * signal and slot objects provide the core functionality of this - * library. A slot is a container for an arbitrary functor. - * A signal is a list of slots that are executed on emission. - * For compile time type safety a list of template arguments - * must be provided for the signal template that determines the - * parameter list for emission. Functors and closures are converted - * into slots implicitely on connection, triggering compiler errors - * if the given functor or closure cannot be invoked with the - * parameter list of the signal to connect to. - */ - -/** Base class for the sigc::signal# templates. - * signal_base integrates most of the interface of the derived sigc::signal# - * templates. The implementation, however, resides in sigc::internal::signal_impl. - * A sigc::internal::signal_impl object is dynamically allocated from signal_base - * when first connecting a slot to the signal. This ensures that empty signals - * don't waste memory. - * - * @ingroup signal - */ -struct SIGC_API signal_base : public trackable -{ - typedef size_t size_type; - - signal_base(); - - signal_base(const signal_base& src); - - ~signal_base(); - - signal_base& operator = (const signal_base& src); - - /** Returns whether the list of slots is empty. - * @return @p true if the list of slots is empty. - */ - inline bool empty() const - { return (!impl_ || impl_->empty()); } - - /// Empties the list of slots. - void clear(); - - /** Returns the number of slots in the list. - * @return The number of slots in the list. - */ - size_type size() const; - -protected: - typedef internal::signal_impl::iterator_type iterator_type; - - /** Adds a slot at the bottom of the list of slots. - * @param slot_ The slot to add to the list of slots. - * @return An iterator pointing to the new slot in the list. - */ - iterator_type connect(const slot_base& slot_); - - /** Adds a slot at the given position into the list of slots. - * @param i An iterator indicating the position where @e slot_ should be inserted. - * @param slot_ The slot to add to the list of slots. - * @return An iterator pointing to the new slot in the list. - */ - iterator_type insert(iterator_type i, const slot_base& slot_); - - /** Removes the slot at the given position from the list of slots. - * @param i An iterator pointing to the slot to be removed. - * @return An iterator pointing to the slot in the list after the one removed. - */ - iterator_type erase(iterator_type i); - - /** Returns the signal_impl object encapsulating the list of slots. - * @return The signal_impl object encapsulating the list of slots. - */ - internal::signal_impl* impl() const; - - /// The signal_impl object encapsulating the slot list. - mutable internal::signal_impl* impl_; -}; - -} //namespace sigc - -#endif /* _SIGC_SIGNAL_BASE_H_ */ diff --git a/libs/sigc++2/sigc++/slot.h b/libs/sigc++2/sigc++/slot.h deleted file mode 100644 index f7fbe3cd2e..0000000000 --- a/libs/sigc++2/sigc++/slot.h +++ /dev/null @@ -1,614 +0,0 @@ -// -*- c++ -*- -/* Do not edit! -- generated file */ - - -#ifndef _SIGC_MACROS_SLOTHM4_ -#define _SIGC_MACROS_SLOTHM4_ - -#include - -#ifndef LIBSIGC_DISABLE_DEPRECATED - -namespace SigC { - -// SlotN -/** Converts an arbitrary functor to a unified type which is opaque. - * Slot0 itself is a functor or to be more precise a closure. It contains - * a single, arbitrary functor (or closure) that is executed in operator()(). - * - * The template arguments determine the function signature of operator()(): - * - @e T_return The return type of operator()(). - * - * To use simply assign the slot to the desired functor. If the functor - * is not compatible with the parameter list defined with the template - * arguments compiler errors are triggered. When called the slot - * will invoke the functor with minimal copies. - * block() and unblock() can be used to block the functor's invocation - * from operator()() temporarily. - * - * @par Example: - * @code - * #include - * void foo(int) {} - * SigC::Slot1 s = SigC::slot(&foo); - * s(19); - * @endcode - * - * @deprecated Use the unnumbered template sigc::slot instead. - * @ingroup compat - */ -template -class Slot0 - : public ::sigc::slot -{ -public: - typedef ::sigc::slot parent_type; - - /// Constructs an empty slot. - Slot0() {} - - /** Constructs a slot from an arbitrary functor. - * @param _A_func The desired functor the new slot should be assigned to. - */ - template - Slot0(const T_functor& _A_func) - : ::sigc::slot(_A_func) {} - - /** Constructs a slot, copying an existing one. - * @param src The existing slot to copy. - */ - Slot0(const parent_type& src) - : parent_type(src) {} - - /** Overrides this slot making a copy from another slot. - * @param src The slot from which to make a copy. - * @return @p this. - */ - Slot0& operator=(const parent_type& src) - { parent_type::operator=(src); return *this; } -}; - -/** Converts an arbitrary functor to a unified type which is opaque. - * Slot1 itself is a functor or to be more precise a closure. It contains - * a single, arbitrary functor (or closure) that is executed in operator()(). - * - * The template arguments determine the function signature of operator()(): - * - @e T_return The return type of operator()(). - * - @e T_arg1 Argument type used in the definition of operator()(). - * - * To use simply assign the slot to the desired functor. If the functor - * is not compatible with the parameter list defined with the template - * arguments compiler errors are triggered. When called the slot - * will invoke the functor with minimal copies. - * block() and unblock() can be used to block the functor's invocation - * from operator()() temporarily. - * - * @par Example: - * @code - * #include - * void foo(int) {} - * SigC::Slot1 s = SigC::slot(&foo); - * s(19); - * @endcode - * - * @deprecated Use the unnumbered template sigc::slot instead. - * @ingroup compat - */ -template -class Slot1 - : public ::sigc::slot -{ -public: - typedef ::sigc::slot parent_type; - - /// Constructs an empty slot. - Slot1() {} - - /** Constructs a slot from an arbitrary functor. - * @param _A_func The desired functor the new slot should be assigned to. - */ - template - Slot1(const T_functor& _A_func) - : ::sigc::slot(_A_func) {} - - /** Constructs a slot, copying an existing one. - * @param src The existing slot to copy. - */ - Slot1(const parent_type& src) - : parent_type(src) {} - - /** Overrides this slot making a copy from another slot. - * @param src The slot from which to make a copy. - * @return @p this. - */ - Slot1& operator=(const parent_type& src) - { parent_type::operator=(src); return *this; } -}; - -/** Converts an arbitrary functor to a unified type which is opaque. - * Slot2 itself is a functor or to be more precise a closure. It contains - * a single, arbitrary functor (or closure) that is executed in operator()(). - * - * The template arguments determine the function signature of operator()(): - * - @e T_return The return type of operator()(). - * - @e T_arg1 Argument type used in the definition of operator()(). - * - @e T_arg2 Argument type used in the definition of operator()(). - * - * To use simply assign the slot to the desired functor. If the functor - * is not compatible with the parameter list defined with the template - * arguments compiler errors are triggered. When called the slot - * will invoke the functor with minimal copies. - * block() and unblock() can be used to block the functor's invocation - * from operator()() temporarily. - * - * @par Example: - * @code - * #include - * void foo(int) {} - * SigC::Slot1 s = SigC::slot(&foo); - * s(19); - * @endcode - * - * @deprecated Use the unnumbered template sigc::slot instead. - * @ingroup compat - */ -template -class Slot2 - : public ::sigc::slot -{ -public: - typedef ::sigc::slot parent_type; - - /// Constructs an empty slot. - Slot2() {} - - /** Constructs a slot from an arbitrary functor. - * @param _A_func The desired functor the new slot should be assigned to. - */ - template - Slot2(const T_functor& _A_func) - : ::sigc::slot(_A_func) {} - - /** Constructs a slot, copying an existing one. - * @param src The existing slot to copy. - */ - Slot2(const parent_type& src) - : parent_type(src) {} - - /** Overrides this slot making a copy from another slot. - * @param src The slot from which to make a copy. - * @return @p this. - */ - Slot2& operator=(const parent_type& src) - { parent_type::operator=(src); return *this; } -}; - -/** Converts an arbitrary functor to a unified type which is opaque. - * Slot3 itself is a functor or to be more precise a closure. It contains - * a single, arbitrary functor (or closure) that is executed in operator()(). - * - * The template arguments determine the function signature of operator()(): - * - @e T_return The return type of operator()(). - * - @e T_arg1 Argument type used in the definition of operator()(). - * - @e T_arg2 Argument type used in the definition of operator()(). - * - @e T_arg3 Argument type used in the definition of operator()(). - * - * To use simply assign the slot to the desired functor. If the functor - * is not compatible with the parameter list defined with the template - * arguments compiler errors are triggered. When called the slot - * will invoke the functor with minimal copies. - * block() and unblock() can be used to block the functor's invocation - * from operator()() temporarily. - * - * @par Example: - * @code - * #include - * void foo(int) {} - * SigC::Slot1 s = SigC::slot(&foo); - * s(19); - * @endcode - * - * @deprecated Use the unnumbered template sigc::slot instead. - * @ingroup compat - */ -template -class Slot3 - : public ::sigc::slot -{ -public: - typedef ::sigc::slot parent_type; - - /// Constructs an empty slot. - Slot3() {} - - /** Constructs a slot from an arbitrary functor. - * @param _A_func The desired functor the new slot should be assigned to. - */ - template - Slot3(const T_functor& _A_func) - : ::sigc::slot(_A_func) {} - - /** Constructs a slot, copying an existing one. - * @param src The existing slot to copy. - */ - Slot3(const parent_type& src) - : parent_type(src) {} - - /** Overrides this slot making a copy from another slot. - * @param src The slot from which to make a copy. - * @return @p this. - */ - Slot3& operator=(const parent_type& src) - { parent_type::operator=(src); return *this; } -}; - -/** Converts an arbitrary functor to a unified type which is opaque. - * Slot4 itself is a functor or to be more precise a closure. It contains - * a single, arbitrary functor (or closure) that is executed in operator()(). - * - * The template arguments determine the function signature of operator()(): - * - @e T_return The return type of operator()(). - * - @e T_arg1 Argument type used in the definition of operator()(). - * - @e T_arg2 Argument type used in the definition of operator()(). - * - @e T_arg3 Argument type used in the definition of operator()(). - * - @e T_arg4 Argument type used in the definition of operator()(). - * - * To use simply assign the slot to the desired functor. If the functor - * is not compatible with the parameter list defined with the template - * arguments compiler errors are triggered. When called the slot - * will invoke the functor with minimal copies. - * block() and unblock() can be used to block the functor's invocation - * from operator()() temporarily. - * - * @par Example: - * @code - * #include - * void foo(int) {} - * SigC::Slot1 s = SigC::slot(&foo); - * s(19); - * @endcode - * - * @deprecated Use the unnumbered template sigc::slot instead. - * @ingroup compat - */ -template -class Slot4 - : public ::sigc::slot -{ -public: - typedef ::sigc::slot parent_type; - - /// Constructs an empty slot. - Slot4() {} - - /** Constructs a slot from an arbitrary functor. - * @param _A_func The desired functor the new slot should be assigned to. - */ - template - Slot4(const T_functor& _A_func) - : ::sigc::slot(_A_func) {} - - /** Constructs a slot, copying an existing one. - * @param src The existing slot to copy. - */ - Slot4(const parent_type& src) - : parent_type(src) {} - - /** Overrides this slot making a copy from another slot. - * @param src The slot from which to make a copy. - * @return @p this. - */ - Slot4& operator=(const parent_type& src) - { parent_type::operator=(src); return *this; } -}; - -/** Converts an arbitrary functor to a unified type which is opaque. - * Slot5 itself is a functor or to be more precise a closure. It contains - * a single, arbitrary functor (or closure) that is executed in operator()(). - * - * The template arguments determine the function signature of operator()(): - * - @e T_return The return type of operator()(). - * - @e T_arg1 Argument type used in the definition of operator()(). - * - @e T_arg2 Argument type used in the definition of operator()(). - * - @e T_arg3 Argument type used in the definition of operator()(). - * - @e T_arg4 Argument type used in the definition of operator()(). - * - @e T_arg5 Argument type used in the definition of operator()(). - * - * To use simply assign the slot to the desired functor. If the functor - * is not compatible with the parameter list defined with the template - * arguments compiler errors are triggered. When called the slot - * will invoke the functor with minimal copies. - * block() and unblock() can be used to block the functor's invocation - * from operator()() temporarily. - * - * @par Example: - * @code - * #include - * void foo(int) {} - * SigC::Slot1 s = SigC::slot(&foo); - * s(19); - * @endcode - * - * @deprecated Use the unnumbered template sigc::slot instead. - * @ingroup compat - */ -template -class Slot5 - : public ::sigc::slot -{ -public: - typedef ::sigc::slot parent_type; - - /// Constructs an empty slot. - Slot5() {} - - /** Constructs a slot from an arbitrary functor. - * @param _A_func The desired functor the new slot should be assigned to. - */ - template - Slot5(const T_functor& _A_func) - : ::sigc::slot(_A_func) {} - - /** Constructs a slot, copying an existing one. - * @param src The existing slot to copy. - */ - Slot5(const parent_type& src) - : parent_type(src) {} - - /** Overrides this slot making a copy from another slot. - * @param src The slot from which to make a copy. - * @return @p this. - */ - Slot5& operator=(const parent_type& src) - { parent_type::operator=(src); return *this; } -}; - -/** Converts an arbitrary functor to a unified type which is opaque. - * Slot6 itself is a functor or to be more precise a closure. It contains - * a single, arbitrary functor (or closure) that is executed in operator()(). - * - * The template arguments determine the function signature of operator()(): - * - @e T_return The return type of operator()(). - * - @e T_arg1 Argument type used in the definition of operator()(). - * - @e T_arg2 Argument type used in the definition of operator()(). - * - @e T_arg3 Argument type used in the definition of operator()(). - * - @e T_arg4 Argument type used in the definition of operator()(). - * - @e T_arg5 Argument type used in the definition of operator()(). - * - @e T_arg6 Argument type used in the definition of operator()(). - * - * To use simply assign the slot to the desired functor. If the functor - * is not compatible with the parameter list defined with the template - * arguments compiler errors are triggered. When called the slot - * will invoke the functor with minimal copies. - * block() and unblock() can be used to block the functor's invocation - * from operator()() temporarily. - * - * @par Example: - * @code - * #include - * void foo(int) {} - * SigC::Slot1 s = SigC::slot(&foo); - * s(19); - * @endcode - * - * @deprecated Use the unnumbered template sigc::slot instead. - * @ingroup compat - */ -template -class Slot6 - : public ::sigc::slot -{ -public: - typedef ::sigc::slot parent_type; - - /// Constructs an empty slot. - Slot6() {} - - /** Constructs a slot from an arbitrary functor. - * @param _A_func The desired functor the new slot should be assigned to. - */ - template - Slot6(const T_functor& _A_func) - : ::sigc::slot(_A_func) {} - - /** Constructs a slot, copying an existing one. - * @param src The existing slot to copy. - */ - Slot6(const parent_type& src) - : parent_type(src) {} - - /** Overrides this slot making a copy from another slot. - * @param src The slot from which to make a copy. - * @return @p this. - */ - Slot6& operator=(const parent_type& src) - { parent_type::operator=(src); return *this; } -}; - -/** Converts an arbitrary functor to a unified type which is opaque. - * Slot7 itself is a functor or to be more precise a closure. It contains - * a single, arbitrary functor (or closure) that is executed in operator()(). - * - * The template arguments determine the function signature of operator()(): - * - @e T_return The return type of operator()(). - * - @e T_arg1 Argument type used in the definition of operator()(). - * - @e T_arg2 Argument type used in the definition of operator()(). - * - @e T_arg3 Argument type used in the definition of operator()(). - * - @e T_arg4 Argument type used in the definition of operator()(). - * - @e T_arg5 Argument type used in the definition of operator()(). - * - @e T_arg6 Argument type used in the definition of operator()(). - * - @e T_arg7 Argument type used in the definition of operator()(). - * - * To use simply assign the slot to the desired functor. If the functor - * is not compatible with the parameter list defined with the template - * arguments compiler errors are triggered. When called the slot - * will invoke the functor with minimal copies. - * block() and unblock() can be used to block the functor's invocation - * from operator()() temporarily. - * - * @par Example: - * @code - * #include - * void foo(int) {} - * SigC::Slot1 s = SigC::slot(&foo); - * s(19); - * @endcode - * - * @deprecated Use the unnumbered template sigc::slot instead. - * @ingroup compat - */ -template -class Slot7 - : public ::sigc::slot -{ -public: - typedef ::sigc::slot parent_type; - - /// Constructs an empty slot. - Slot7() {} - - /** Constructs a slot from an arbitrary functor. - * @param _A_func The desired functor the new slot should be assigned to. - */ - template - Slot7(const T_functor& _A_func) - : ::sigc::slot(_A_func) {} - - /** Constructs a slot, copying an existing one. - * @param src The existing slot to copy. - */ - Slot7(const parent_type& src) - : parent_type(src) {} - - /** Overrides this slot making a copy from another slot. - * @param src The slot from which to make a copy. - * @return @p this. - */ - Slot7& operator=(const parent_type& src) - { parent_type::operator=(src); return *this; } -}; - - - -#ifndef DOXYGEN_SHOULD_SKIP_THIS -/* gcc 3.2 reports a strange conflict between SigC::slot() and sigc::slot<> - * when "using namespace SigC" and later using a slot(obj,func) overload - * without the prefix "SigC::". Probably a compiler bug. I will investigate. - * - * This ugly hack avoids the error: - */ -// #define slot(...) make_slot(__VA_ARGS__) /* only works for gcc */ -#endif - - -// slot() -/** Creates a functor of type SigC::Slot0 that wraps an existing non-member function. - * - * @param _A_func Pointer to function that should be wrapped. - * @return Functor that executes _A_func on invokation. - * - * @deprecated Use sigc::ptr_fun() instead. - * @ingroup compat - */ -template -inline Slot0 -slot(T_return (*_A_func)()) -{ return Slot0(_A_func); } - -/** Creates a functor of type SigC::Slot1 that wraps an existing non-member function. - * - * @param _A_func Pointer to function that should be wrapped. - * @return Functor that executes _A_func on invokation. - * - * @deprecated Use sigc::ptr_fun() instead. - * @ingroup compat - */ -template -inline Slot1 -slot(T_return (*_A_func)(T_arg1)) -{ return Slot1(_A_func); } - -/** Creates a functor of type SigC::Slot2 that wraps an existing non-member function. - * - * @param _A_func Pointer to function that should be wrapped. - * @return Functor that executes _A_func on invokation. - * - * @deprecated Use sigc::ptr_fun() instead. - * @ingroup compat - */ -template -inline Slot2 -slot(T_return (*_A_func)(T_arg1,T_arg2)) -{ return Slot2(_A_func); } - -/** Creates a functor of type SigC::Slot3 that wraps an existing non-member function. - * - * @param _A_func Pointer to function that should be wrapped. - * @return Functor that executes _A_func on invokation. - * - * @deprecated Use sigc::ptr_fun() instead. - * @ingroup compat - */ -template -inline Slot3 -slot(T_return (*_A_func)(T_arg1,T_arg2,T_arg3)) -{ return Slot3(_A_func); } - -/** Creates a functor of type SigC::Slot4 that wraps an existing non-member function. - * - * @param _A_func Pointer to function that should be wrapped. - * @return Functor that executes _A_func on invokation. - * - * @deprecated Use sigc::ptr_fun() instead. - * @ingroup compat - */ -template -inline Slot4 -slot(T_return (*_A_func)(T_arg1,T_arg2,T_arg3,T_arg4)) -{ return Slot4(_A_func); } - -/** Creates a functor of type SigC::Slot5 that wraps an existing non-member function. - * - * @param _A_func Pointer to function that should be wrapped. - * @return Functor that executes _A_func on invokation. - * - * @deprecated Use sigc::ptr_fun() instead. - * @ingroup compat - */ -template -inline Slot5 -slot(T_return (*_A_func)(T_arg1,T_arg2,T_arg3,T_arg4,T_arg5)) -{ return Slot5(_A_func); } - -/** Creates a functor of type SigC::Slot6 that wraps an existing non-member function. - * - * @param _A_func Pointer to function that should be wrapped. - * @return Functor that executes _A_func on invokation. - * - * @deprecated Use sigc::ptr_fun() instead. - * @ingroup compat - */ -template -inline Slot6 -slot(T_return (*_A_func)(T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6)) -{ return Slot6(_A_func); } - -/** Creates a functor of type SigC::Slot7 that wraps an existing non-member function. - * - * @param _A_func Pointer to function that should be wrapped. - * @return Functor that executes _A_func on invokation. - * - * @deprecated Use sigc::ptr_fun() instead. - * @ingroup compat - */ -template -inline Slot7 -slot(T_return (*_A_func)(T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6,T_arg7)) -{ return Slot7(_A_func); } - - - -} - -#endif -#endif /* _SIGC_MACROS_SLOTHM4_ */ diff --git a/libs/sigc++2/sigc++/trackable.cc b/libs/sigc++2/sigc++/trackable.cc deleted file mode 100644 index 46e2592ffb..0000000000 --- a/libs/sigc++2/sigc++/trackable.cc +++ /dev/null @@ -1,124 +0,0 @@ -// -*- c++ -*- -/* - * Copyright 2002, The libsigc++ Development Team - * - * 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.1 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 - * - */ - -#include -#include -using namespace std; - -namespace sigc -{ - -trackable::trackable() -: callback_list_(0) -{} - -/* Don't copy the notification list. - The objects watching src don't need to be notified when the new object dies. */ -trackable::trackable(const trackable& /*src*/) -: callback_list_(0) -{} - -trackable& trackable::operator=(const trackable& src) -{ - if(this != &src) - notify_callbacks(); //Make sure that we have finished with existing stuff before replacing it. - - return *this; -} - -trackable::~trackable() -{ - notify_callbacks(); -} - -void trackable::add_destroy_notify_callback(void* data, func_destroy_notify func) const -{ - callback_list()->add_callback(data, func); -} - -void trackable::remove_destroy_notify_callback(void* data) const -{ - callback_list()->remove_callback(data); -} - -void trackable::notify_callbacks() -{ - if (callback_list_) - delete callback_list_; //This invokes all of the callbacks. - - callback_list_ = 0; -} - -internal::trackable_callback_list* trackable::callback_list() const -{ - if (!callback_list_) - callback_list_ = new internal::trackable_callback_list; - - return callback_list_; -} - - -namespace internal -{ - -trackable_callback_list::~trackable_callback_list() -{ - clearing_ = true; - - for (callback_list::iterator i = callbacks_.begin(); i != callbacks_.end(); ++i) - (*i).func_((*i).data_); -} - -void trackable_callback_list::add_callback(void* data, func_destroy_notify func) -{ - if (!clearing_) // TODO: Is it okay to silently ignore attempts to add dependencies when the list is being cleared? - // I'd consider this a serious application bug, since the app is likely to segfault. - // But then, how should we handle it? Throw an exception? Martin. - callbacks_.push_back(trackable_callback(data, func)); -} - -void trackable_callback_list::clear() -{ - clearing_ = true; - - for (callback_list::iterator i = callbacks_.begin(); i != callbacks_.end(); ++i) - (*i).func_((*i).data_); - - callbacks_.clear(); - - clearing_ = false; -} - -void trackable_callback_list::remove_callback(void* data) -{ - if (clearing_) return; // No circular notices - - for (callback_list::iterator i = callbacks_.begin(); i != callbacks_.end(); ++i) - if ((*i).data_ == data) - { - callbacks_.erase(i); - return; - } -} - -} /* namespace internal */ - - -} /* namespace sigc */ diff --git a/libs/sigc++2/sigc++/trackable.h b/libs/sigc++2/sigc++/trackable.h deleted file mode 100644 index 4563738dd6..0000000000 --- a/libs/sigc++2/sigc++/trackable.h +++ /dev/null @@ -1,148 +0,0 @@ -/* - * Copyright 2002, The libsigc++ Development Team - * - * 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.1 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 - * - */ -#ifndef _SIGC_TRACKABLE_HPP_ -#define _SIGC_TRACKABLE_HPP_ -#include -#include - -namespace sigc { - -namespace internal { - -typedef void* (*func_destroy_notify) (void* data); - -/** Destroy notification callback. - * A destroy notification callback consists of a data pointer and a - * function pointer. The function is executed from the owning callback - * list (of type sigc::internal::trackable_callback_list) when its parent - * object (of type sigc::trackable) is destroyed or overwritten. - */ -struct SIGC_API trackable_callback -{ - void* data_; - func_destroy_notify func_; - trackable_callback(void* data, func_destroy_notify func) - : data_(data), func_(func) {} -}; - -/** Callback list. - * A callback list holds an STL list of callbacks of type - * trackable_callback. Callbacks are added and removed with - * add_callback(), remove_callback() and clear(). The callbacks - * are invoked from clear() and from the destructor. - */ -struct SIGC_API trackable_callback_list -{ - /** Add a callback function. - * @param data Data that will be sent as a parameter to teh callback function. - * @param func The callback function. - * - */ - void add_callback(void* data, func_destroy_notify func); - - /** Remove the callback which has this data associated with it. - * @param data The data that was given as a parameter to add_callback(). - */ - void remove_callback(void* data); - - /** This invokes all of the callback functions. - */ - void clear(); - - trackable_callback_list() - : clearing_(false) {} - - /** This invokes all of the callback functions. - */ - ~trackable_callback_list(); - -private: - typedef std::list callback_list; - callback_list callbacks_; - bool clearing_; -}; - -} /* namespace internal */ - - -/** Base class for objects with auto-disconnection. - * trackable must be inherited when objects shall automatically - * invalidate slots referring to them on destruction. - * A slot built from a member function of a trackable derived - * type installs a callback that is invoked when the trackable object - * is destroyed or overwritten. - * - * add_destroy_notify_callback() and remove_destroy_notify_callback() - * can be used to manually install and remove callbacks when - * notification of the object dying is needed. - * - * notify_callbacks() invokes and removes all previously installed - * callbacks and can therefore be used to disconnect from all signals. - * - * Note that there is no virtual destructor. Don't use @p trackable* - * as pointer type for managing your data or the destructors of - * your derived types won't be called when deleting your objects. - * - * @ingroup signal - */ -struct SIGC_API trackable -{ - trackable(); - - trackable(const trackable& src); - - trackable& operator=(const trackable& src); - - ~trackable(); - - /*virtual ~trackable() {} */ /* we would need a virtual dtor for users - who insist on using "trackable*" as - pointer type for their own derived objects */ - - - typedef internal::func_destroy_notify func_destroy_notify; - - /** Add a callback that is executed (notified) when the trackable object is detroyed. - * @param data Passed into func upon notification. - * @param func Callback executed upon destruction of the object. - */ - void add_destroy_notify_callback(void* data, func_destroy_notify func) const; - - /** Remove a callback previously installed with add_destroy_notify_callback(). - * The callback is not executed. - * @param data Parameter passed into previous call to add_destroy_notify_callback(). - */ - void remove_destroy_notify_callback(void* data) const; - - /// Execute and remove all previously installed callbacks. - void notify_callbacks(); - -#ifndef DOXYGEN_SHOULD_SKIP_THIS -private: - /* The callbacks are held in a list of type trackable_callback_list. - * This list is allocated dynamically when the first callback is added. - */ - internal::trackable_callback_list* callback_list() const; - mutable internal::trackable_callback_list* callback_list_; -#endif -}; - -} /* namespace sigc */ - -#endif /* _SIGC_TRACKABLE_HPP_ */ diff --git a/libs/sigc++2/sigc++/type_traits.h b/libs/sigc++2/sigc++/type_traits.h deleted file mode 100644 index c6d6dbbc81..0000000000 --- a/libs/sigc++2/sigc++/type_traits.h +++ /dev/null @@ -1,121 +0,0 @@ -/* - * Copyright 2002, The libsigc++ Development Team - * - * 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.1 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 - * - */ -#ifndef _SIGC_TYPE_TRAIT_H_ -#define _SIGC_TYPE_TRAIT_H_ - -#include - -namespace sigc { - -template -struct type_trait -{ - typedef T_type type; - typedef T_type& pass; - typedef const T_type& take; - typedef T_type* pointer; -}; - -template -struct type_trait -{ - typedef T_type* type; - typedef T_type*& pass; - typedef const T_type*& take; - typedef T_type** pointer; -}; - -template -struct type_trait -{ - typedef T_type type; - typedef T_type& pass; - typedef T_type& take; - typedef T_type* pointer; -}; - -template -struct type_trait -{ - typedef const T_type type; - typedef const T_type& pass; - typedef const T_type& take; - typedef const T_type* pointer; -}; - -template -struct type_trait > -{ - typedef T_type type; - typedef T_type& pass; - typedef T_type& take; - typedef T_type* pointer; -}; - -template -struct type_trait > -{ - typedef T_type type; - typedef T_type& pass; - typedef const T_type& take; - typedef T_type* pointer; -}; - -template<> -struct type_trait -{ - typedef void type; - typedef void pass; - typedef void take; - typedef void* pointer; -}; - - -/** From Esa Pulkkin: - * Compile-time determination of base-class relationship in C++ - * (adapted to match the syntax of boost's type_traits library). - */ -template -struct is_base_and_derived -{ -private: - struct big { - char memory[64]; - }; - - struct test { - static big is_base_class_(...); - static char is_base_class_(typename type_trait::pointer); - }; - -public: - static const bool value = - sizeof(test::is_base_class_((typename type_trait::pointer)0)) == - sizeof(char); -}; - -template -struct is_base_and_derived -{ - static const bool value = true; -}; - -} /* namespace sigc */ - -#endif /* _SIGC_TYPE_TRAIT_H_ */ diff --git a/libs/sigc++2/sigc++/visit_each.h b/libs/sigc++2/sigc++/visit_each.h deleted file mode 100644 index 7b7978531f..0000000000 --- a/libs/sigc++2/sigc++/visit_each.h +++ /dev/null @@ -1,128 +0,0 @@ -// -*- c++ -*- -/* - * Copyright 2002, The libsigc++ Development Team - * - * 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.1 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 - * - */ -#ifndef _SIGC_VISIT_EACH_HPP_ -#define _SIGC_VISIT_EACH_HPP_ - -#include - -namespace sigc { - -namespace internal { - -/// Helper struct for visit_each_type(). -template -struct limit_derived_target -{ - typedef limit_derived_target T_self; - - template struct with_type; - - template struct with_type - { static void execute_(const T_type&, const T_self&) {} }; - - template struct with_type - { static void execute_(const T_type& _A_type, const T_self& _A_action) - { _A_action.action_(_A_type); } - }; - - template - void operator()(const T_type& _A_type) const - { with_type::value,T_type>::execute_(_A_type,*this); } - - limit_derived_target(const T_action& _A_action): action_(_A_action) {} - - T_action action_; -}; - -/// Helper struct for visit_each_type(). -template -struct limit_derived_target -{ - typedef limit_derived_target T_self; - - template struct with_type; - - template struct with_type - { static void execute_(const T_type&, const T_self&) {} }; - - template struct with_type - { static void execute_(const T_type& _A_type, const T_self& _A_action) - { _A_action.action_(&_A_type); } - }; - - template - void operator()(const T_type& _A_type) const - { with_type::value,T_type>::execute_(_A_type,*this); } - - limit_derived_target(const T_action& _A_action): action_(_A_action) {} - - T_action action_; -}; - -} /* namespace internal */ - - -/** This function performs a functor on each of the targets of a functor. - * All unknown types just call @e _A_action on them. - * Add overloads that specialize the @e T_functor argument for your own - * functor types, so that subobjects get visited. This is needed to enable - * auto-disconnection support for your functor types. - * - * @par Example: - * @code - * struct some_functor - * { - * void operator()() {} - * some_possibly_sigc_trackable_derived_type some_data_member; - * some_other_functor_type some_other_functor; - * } - * - * namespace sigc - * { - * template - * void visit_each(const T_action& _A_action, - * const some_functor& _A_target) - * { - * visit_each(_A_action, _A_target.some_data_member); - * visit_each(_A_action, _A_target.some_other_functor); - * } - * } - * @endcode - * - * @ingroup functors - */ -template -void visit_each(const T_action& _A_action, const T_functor& _A_functor) -{ _A_action(_A_functor); } - -/** This function performs a functor on each of the targets - * of a functor limited to a restricted type. - * - * @ingroup functors - */ -template -void visit_each_type(const T_action& _A_action, const T_functor& _A_functor) -{ - internal::limit_derived_target limited_action(_A_action); - visit_each(limited_action,_A_functor); -} - -} /* namespace sigc */ -#endif diff --git a/libs/sigc++2/sigc++config.h.in b/libs/sigc++2/sigc++config.h.in deleted file mode 100644 index 357873fae6..0000000000 --- a/libs/sigc++2/sigc++config.h.in +++ /dev/null @@ -1,10 +0,0 @@ -/* sigc++config.h.in. (Generated manually.) */ - -/* configure checks */ -#undef SIGC_GCC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD -#undef SIGC_MSVC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD - -/* platform specific macros */ -// #define LIBSIGC_DISABLE_DEPRECATED -// #define SIGC_NEW_DELETE_IN_LIBRARY_ONLY // only defined for MSVC to keep ABI compatibility -#define SIGC_API -- cgit v1.2.3