71 lines
2.9 KiB
Plaintext
71 lines
2.9 KiB
Plaintext
[/
|
|
/ Copyright (c) 2001, 2002 Peter Dimov and Multi Media Ltd.
|
|
/ Copyright (c) 2003-2005 Peter Dimov
|
|
/
|
|
/ Distributed under the Boost Software License, Version 1.0. (See
|
|
/ accompanying file LICENSE_1_0.txt or copy at
|
|
/ http://www.boost.org/LICENSE_1_0.txt)
|
|
/]
|
|
|
|
[section:implementation Implementation]
|
|
|
|
[section Files]
|
|
|
|
* [@../../../../boost/mem_fn.hpp boost/mem_fn.hpp] (main header)
|
|
* [@../../../../boost/bind/mem_fn_cc.hpp boost/bind/mem_fn_cc.hpp] (used by `mem_fn.hpp`, do not include directly)
|
|
* [@../../../../boost/bind/mem_fn_vw.hpp boost/bind/mem_fn_vw.hpp] (used by `mem_fn.hpp`, do not include directly)
|
|
* [@../../../../boost/bind/mem_fn_template.hpp boost/bind/mem_fn_template.hpp] (used by `mem_fn.hpp`, do not include directly)
|
|
* [@../../test/mem_fn_test.cpp libs/bind/test/mem_fn_test.cpp] (test)
|
|
* [@../../test/mem_fn_derived_test.cpp libs/bind/test/mem_fn_derived_test.cpp] (test with derived objects)
|
|
* [@../../test/mem_fn_fastcall_test.cpp libs/bind/test/mem_fn_fastcall_test.cpp] (test for `__fastcall`)
|
|
* [@../../test/mem_fn_stdcall_test.cpp libs/bind/test/mem_fn_stdcall_test.cpp] (test for `__stdcall`)
|
|
* [@../../test/mem_fn_void_test.cpp libs/bind/test/mem_fn_void_test.cpp] (test for `void` returns)
|
|
|
|
[endsect]
|
|
|
|
[section Dependencies]
|
|
|
|
* [@boost:/libs/config/config.htm Boost.Config]
|
|
|
|
[endsect]
|
|
|
|
[section Number of Arguments]
|
|
|
|
This implementation supports member functions with up to eight arguments. This
|
|
is not an inherent limitation of the design, but an implementation detail.
|
|
|
|
[endsect]
|
|
|
|
[section:stdcall `__stdcall`, `__cdecl`, and `__fastcall` Support]
|
|
|
|
Some platforms allow several types of member functions that differ by their
|
|
calling convention (the rules by which the function is invoked: how are
|
|
arguments passed, how is the return value handled, and who cleans up the stack
|
|
- if any.)
|
|
|
|
For example, Windows API functions and COM interface member functions use a
|
|
calling convention known as `__stdcall`. Borland VCL components use
|
|
`__fastcall`. UDK, the component model of OpenOffice.org, uses `__cdecl`.
|
|
|
|
To use `mem_fn` with `__stdcall` member functions, `#define` the macro
|
|
`BOOST_MEM_FN_ENABLE_STDCALL` before including `<boost/mem_fn.hpp>`.
|
|
|
|
To use `mem_fn` with `__fastcall` member functions, `#define` the macro
|
|
`BOOST_MEM_FN_ENABLE_FASTCALL` before including `<boost/mem_fn.hpp>`.
|
|
|
|
To use `mem_fn` with `__cdecl` member functions, `#define` the macro
|
|
`BOOST_MEM_FN_ENABLE_CDECL` before including `<boost/mem_fn.hpp>`.
|
|
|
|
[*It is best to define these macros in the project options, via `-D` on the
|
|
command line, or as the first line in the translation unit (.cpp file) where
|
|
`mem_fn` is used.] Not following this rule can lead to obscure errors when a
|
|
header includes `mem_fn.hpp` before the macro has been defined.
|
|
|
|
/[Note:/ this is a non-portable extension. It is not part of the interface./]/
|
|
|
|
/[Note:/ Some compilers provide only minimal support for the `__stdcall` keyword./]/
|
|
|
|
[endsect]
|
|
|
|
[endsect]
|