Compare commits

...

22 Commits

Author SHA1 Message Date
7560c4cad6 merged from trunk
[SVN r49607]
2008-11-06 00:15:47 +00:00
669c53e963 Merged revisions 44564,44567-44570,44595,44597,44602-44612,44614-44615,44620-44640,44645-44646,44650-44657,44659-44660,44662-44663,44665-44676 via svnmerge from
https://svn.boost.org/svn/boost/trunk

................
  r44564 | hkaiser | 2008-04-18 17:23:19 -0700 (Fri, 18 Apr 2008) | 1 line
  
  Spirit.Qi: Fixed a big endian issue in tests/qi/binary.cpp
................
  r44567 | hkaiser | 2008-04-18 17:52:54 -0700 (Fri, 18 Apr 2008) | 1 line
  
  Wave: Added a missing header file.
................
  r44568 | hkaiser | 2008-04-18 18:11:17 -0700 (Fri, 18 Apr 2008) | 1 line
  
  Spirit: removed multi_pass tests from regression runs, these are not completed yet.
................
  r44569 | djowel | 2008-04-18 19:13:57 -0700 (Fri, 18 Apr 2008) | 1 line
  
  no-case for chsets
................
  r44570 | djowel | 2008-04-18 19:14:11 -0700 (Fri, 18 Apr 2008) | 1 line
  
  no-case for chsets
................
  r44595 | johnmaddock | 2008-04-19 09:28:00 -0700 (Sat, 19 Apr 2008) | 1 line
  
  Changed #includes to avoid circular dependencies between shared_ptr and TR1.
................
  r44597 | hkaiser | 2008-04-19 09:41:29 -0700 (Sat, 19 Apr 2008) | 1 line
  
  Spirit.Karma: disabled real_numerics tests for real_concept for now.
................
  r44602 | hkaiser | 2008-04-19 12:59:59 -0700 (Sat, 19 Apr 2008) | 1 line
  
  Wave: fixing compilation using Intel compilers
................
  r44603 | hkaiser | 2008-04-19 13:03:21 -0700 (Sat, 19 Apr 2008) | 1 line
  
  Wave: Added workaround for VC7.1
................
  r44604 | hkaiser | 2008-04-19 13:09:11 -0700 (Sat, 19 Apr 2008) | 1 line
  
  Wave: Applied a fix for HP Tru64 compiler
................
  r44605 | hkaiser | 2008-04-19 13:22:39 -0700 (Sat, 19 Apr 2008) | 1 line
  
  Spirit: renamed end_type to eoi_type (missed that while original renaming)
................
  r44606 | bemandawes | 2008-04-19 14:13:59 -0700 (Sat, 19 Apr 2008) | 1 line
  
  replace_extension -> change_extension name fix [Lothar May]
................
  r44607 | hkaiser | 2008-04-19 14:15:37 -0700 (Sat, 19 Apr 2008) | 1 line
  
  Wave: attempt to fix test runs
................
  r44608 | hkaiser | 2008-04-19 18:42:27 -0700 (Sat, 19 Apr 2008) | 1 line
  
  Spirit.Lex: First version of wrapped semantic actions.
................
  r44609 | djowel | 2008-04-20 01:00:41 -0700 (Sun, 20 Apr 2008) | 1 line
  
  add wchar test
................
  r44610 | djowel | 2008-04-20 01:27:25 -0700 (Sun, 20 Apr 2008) | 1 line
  
  various fixes
................
  r44611 | djowel | 2008-04-20 01:27:41 -0700 (Sun, 20 Apr 2008) | 1 line
  
  more tests
................
  r44612 | johnmaddock | 2008-04-20 03:58:20 -0700 (Sun, 20 Apr 2008) | 4 lines
  
  Moved real_concept and std_real_concept overloads of the rounding and truncation functions into the same namespace as the classes so that they can be found via ADL.
  Updated the tests to cope with the change.
  Updated library configuration to cope with the change.
  Made sure that the rounding and truncation functions are all correctly forward declared.
................
  r44614 | danieljames | 2008-04-20 05:10:56 -0700 (Sun, 20 Apr 2008) | 15 lines
  
  Merge in fix for the swap tests, and rename allocator.
  
  Merged revisions 44512-44515,44517-44536 via svnmerge from 
  https://svn.boost.org/svn/boost/branches/unordered/trunk
  
  ................
    r44512 | danieljames | 2008-04-17 20:03:00 +0100 (Thu, 17 Apr 2008) | 11 lines
    
    Rename allocator.hpp.
  ................
    r44536 | danieljames | 2008-04-18 11:27:50 +0100 (Fri, 18 Apr 2008) | 1 line
    
    Check that hash_table_impl::swap isn't swapping with itself - which is causing the buffered functions to be set with the same value twice, resulting in an assertion.
  ................
................
  r44615 | danieljames | 2008-04-20 05:11:22 -0700 (Sun, 20 Apr 2008) | 1 line
  
  Remove some tabs.
................
  r44620 | johnmaddock | 2008-04-20 05:53:37 -0700 (Sun, 20 Apr 2008) | 1 line
  
  Added docs for new warning_disable.hpp header.
................
  r44621 | johnmaddock | 2008-04-20 05:54:21 -0700 (Sun, 20 Apr 2008) | 1 line
  
  Added new warning_disable.hpp header.
................
  r44622 | hkaiser | 2008-04-20 06:00:21 -0700 (Sun, 20 Apr 2008) | 1 line
  
  Spirit.Karma: re-enabled real_numerics tests related to math::real_concept.
................
  r44623 | hkaiser | 2008-04-20 06:13:42 -0700 (Sun, 20 Apr 2008) | 1 line
  
  Spirit.Lex: Changed wrap_action::phoenix_action to be a embedded function object. Same errors still...
................
  r44624 | hkaiser | 2008-04-20 06:24:11 -0700 (Sun, 20 Apr 2008) | 1 line
  
  Spirit.Lex: Worked around a problem related to HP-UX_ia64_aCC.
................
  r44625 | hkaiser | 2008-04-20 06:25:47 -0700 (Sun, 20 Apr 2008) | 1 line
  
  Spirit.Lex: Reverted wrap_action code to use Boost.Bind for now, just to avoid regression errors.
................
  r44626 | hkaiser | 2008-04-20 06:30:15 -0700 (Sun, 20 Apr 2008) | 1 line
  
  Spirit.Lex: Added a workaround for missing WCHAR_MAX constant.
................
  r44627 | hkaiser | 2008-04-20 06:33:53 -0700 (Sun, 20 Apr 2008) | 1 line
  
  Spirit.Lex: Added another workaround for wchar.h
................
  r44628 | hkaiser | 2008-04-20 06:37:42 -0700 (Sun, 20 Apr 2008) | 1 line
  
  Spirit.Lex: Yet another wchar_t fix.
................
  r44629 | hkaiser | 2008-04-20 06:45:06 -0700 (Sun, 20 Apr 2008) | 1 line
  
  Spirit: Added a missing header #include.
................
  r44630 | hkaiser | 2008-04-20 06:46:10 -0700 (Sun, 20 Apr 2008) | 1 line
  
  Spirit: Added a missing header #include.
................
  r44631 | hkaiser | 2008-04-20 06:51:15 -0700 (Sun, 20 Apr 2008) | 1 line
  
  Added some parenthesis to disambiguate expressions.
................
  r44632 | hkaiser | 2008-04-20 06:57:47 -0700 (Sun, 20 Apr 2008) | 1 line
  
  Spirit: Added a missing header #include.
................
  r44633 | hkaiser | 2008-04-20 07:01:18 -0700 (Sun, 20 Apr 2008) | 1 line
  
  Spirit: Added a missing header #include.
................
  r44634 | hkaiser | 2008-04-20 07:01:34 -0700 (Sun, 20 Apr 2008) | 1 line
  
  Spirit: Added a missing header #include.
................
  r44635 | hkaiser | 2008-04-20 07:04:08 -0700 (Sun, 20 Apr 2008) | 1 line
  
  Spirit.Lex: Fixed a gcc4.3.0 compilation error.
................
  r44636 | pdimov | 2008-04-20 07:59:12 -0700 (Sun, 20 Apr 2008) | 1 line
  
  Atomic access added.
................
  r44637 | hkaiser | 2008-04-20 08:27:30 -0700 (Sun, 20 Apr 2008) | 1 line
  
  Spirit.Qi: Fixed eol parser
................
  r44638 | pdimov | 2008-04-20 08:37:08 -0700 (Sun, 20 Apr 2008) | 1 line
  
  Factored out boost/detail/lightweight_thread.hpp.
................
  r44639 | hkaiser | 2008-04-20 10:00:35 -0700 (Sun, 20 Apr 2008) | 1 line
  
  Spirit.Qi: Fixed lit parser
................
  r44640 | pdimov | 2008-04-20 10:00:58 -0700 (Sun, 20 Apr 2008) | 1 line
  
  sp_atomic_mt_test.cpp added.
................
  r44645 | danieljames | 2008-04-20 11:30:21 -0700 (Sun, 20 Apr 2008) | 1 line
  
  Initialise svnmerge for the doc branch.
................
  r44646 | danieljames | 2008-04-20 11:35:31 -0700 (Sun, 20 Apr 2008) | 1 line
  
  Fix svnmerge for the doc branch.
................
  r44650 | danieljames | 2008-04-20 14:08:57 -0700 (Sun, 20 Apr 2008) | 1 line
  
  Update an include.
................
  r44651 | djowel | 2008-04-20 14:11:44 -0700 (Sun, 20 Apr 2008) | 1 line
  
  problem fixed with lambda[f]
................
  r44652 | hkaiser | 2008-04-20 14:27:28 -0700 (Sun, 20 Apr 2008) | 1 line
  
  Spirit.Lex: Fixed VC7.1 compilation issue
................
  r44653 | hkaiser | 2008-04-20 14:28:20 -0700 (Sun, 20 Apr 2008) | 1 line
  
  Wave: Updated iterator for change in multi_pass
................
  r44654 | hkaiser | 2008-04-20 14:29:01 -0700 (Sun, 20 Apr 2008) | 1 line
  
  Wave: Updated iterator for change in multi_pass
................
  r44655 | hkaiser | 2008-04-20 14:39:36 -0700 (Sun, 20 Apr 2008) | 1 line
  
  Spirit.Lex: Fixed wrap_action
................
  r44656 | hkaiser | 2008-04-20 14:44:25 -0700 (Sun, 20 Apr 2008) | 1 line
  
  Spirit.Lex: Cleaning up ...
................
  r44657 | hkaiser | 2008-04-20 15:37:35 -0700 (Sun, 20 Apr 2008) | 1 line
  
  Spirit.Lex: Updated examples.
................
  r44659 | hkaiser | 2008-04-20 17:20:39 -0700 (Sun, 20 Apr 2008) | 1 line
  
  Spirit.Karma: Added actions test
................
  r44660 | hkaiser | 2008-04-20 17:29:36 -0700 (Sun, 20 Apr 2008) | 1 line
  
  Spirit.Lex. Updated Lexer quickstart docs with new action prototypes
................
  r44662 | chris_kohlhoff | 2008-04-20 18:23:42 -0700 (Sun, 20 Apr 2008) | 3 lines
  
  Add ability to disable the uses of the typeid operator by defining
  BOOST_NO_TYPEID or BOOST_ASIO_NO_TYPEID.
................
  r44663 | chris_kohlhoff | 2008-04-20 18:27:48 -0700 (Sun, 20 Apr 2008) | 3 lines
  
  Ensure that timer dispatching responsibility is correctly relinquished when
  processing leftover interrupts from a previous run invocation.
................
  r44665 | chris_kohlhoff | 2008-04-20 18:36:28 -0700 (Sun, 20 Apr 2008) | 3 lines
  
  Enhance example to make it clear that invocation hooking can be used with
  asynchronous operations.
................
  r44666 | chris_kohlhoff | 2008-04-20 18:39:06 -0700 (Sun, 20 Apr 2008) | 3 lines
  
  Improve efficiency of basic_streambuf::consume() by using a single call to
  gbump() rather than calling sbumpc() in a loop.
................
  r44667 | chris_kohlhoff | 2008-04-20 18:41:29 -0700 (Sun, 20 Apr 2008) | 2 lines
  
  Update version number to match release.
................
  r44668 | chris_kohlhoff | 2008-04-20 18:42:10 -0700 (Sun, 20 Apr 2008) | 2 lines
  
  Fix infinite recursion in the ssl::stream's shutdown() implementation.
................
  r44669 | hkaiser | 2008-04-20 19:01:31 -0700 (Sun, 20 Apr 2008) | 1 line
  
  Spirit.Qi: Added ~ for eoi and eol, added corresponding tests
................
  r44670 | chris_kohlhoff | 2008-04-20 19:01:34 -0700 (Sun, 20 Apr 2008) | 2 lines
  
  Improve documentation for the protected functions and data in basic_io_object<>.
................
  r44671 | hkaiser | 2008-04-20 19:02:37 -0700 (Sun, 20 Apr 2008) | 1 line
  
  Spirit.Qi: Added new test to test Jamfile
................
  r44672 | hkaiser | 2008-04-20 19:04:06 -0700 (Sun, 20 Apr 2008) | 1 line
  
  Spirit.Lex: pending commits, fixed static lexer.
................
  r44673 | chris_kohlhoff | 2008-04-20 21:02:37 -0700 (Sun, 20 Apr 2008) | 4 lines
  
  Add a special null_buffers type that allows read and write operations to
  be used to indicate the socket's readiness to read or write without
  blocking.
................
  r44674 | chris_kohlhoff | 2008-04-20 21:43:05 -0700 (Sun, 20 Apr 2008) | 2 lines
  
  Add support for UNIX domain sockets.
................
  r44675 | chris_kohlhoff | 2008-04-20 22:16:15 -0700 (Sun, 20 Apr 2008) | 2 lines
  
  Add new wrapper classes for stream-oriented file descriptors on POSIX platforms.
................
  r44676 | chris_kohlhoff | 2008-04-20 22:32:34 -0700 (Sun, 20 Apr 2008) | 2 lines
  
  Add new wrapper classes for stream-oriented handles on Windows.
................


[SVN r44680]
2008-04-21 05:58:26 +00:00
2745a0bb6e Merged revisions 44111-44378 via svnmerge from
https://svn.boost.org/svn/boost/trunk

........
  r44114 | emildotchevski | 2008-04-08 14:29:37 -0700 (Tue, 08 Apr 2008) | 1 line
  
  fixed compile errors, removed tabs as required.
........
  r44118 | djowel | 2008-04-08 18:29:12 -0700 (Tue, 08 Apr 2008) | 7 lines
  
  In preparation for spirit2:
  * flat includes
  * home directory
  * forwarding headers
  * classic spirit
........
  r44119 | djowel | 2008-04-08 18:51:47 -0700 (Tue, 08 Apr 2008) | 7 lines
  
  In preparation for spirit2:
  * flat includes
  * home directory
  * forwarding headers
  * classic spirit
........
  r44120 | hkaiser | 2008-04-08 19:17:53 -0700 (Tue, 08 Apr 2008) | 1 line
  
  Fixed one more include path
........
  r44121 | johnmaddock | 2008-04-09 04:34:20 -0700 (Wed, 09 Apr 2008) | 1 line
  
  Run config_info and config_test in both single and multi-thread modes.
........
  r44122 | johnmaddock | 2008-04-09 04:34:45 -0700 (Wed, 09 Apr 2008) | 1 line
  
  Run config_info and config_test in both single and multi-thread modes.
........
  r44123 | johnmaddock | 2008-04-09 04:35:36 -0700 (Wed, 09 Apr 2008) | 1 line
  
  Added needed #includes.
........
  r44124 | johnmaddock | 2008-04-09 04:45:15 -0700 (Wed, 09 Apr 2008) | 1 line
  
  Added improved SVG support.
........
  r44125 | hkaiser | 2008-04-09 06:50:03 -0700 (Wed, 09 Apr 2008) | 1 line
  
  Fixed #pragma message directives and a couple of forwarding headers.
........
  r44126 | johnmaddock | 2008-04-09 08:21:03 -0700 (Wed, 09 Apr 2008) | 1 line
  
  Fix bug report #1797.
........
  r44127 | johnmaddock | 2008-04-09 08:31:33 -0700 (Wed, 09 Apr 2008) | 1 line
  
  Update for bug report #1790.
........
  r44128 | johnmaddock | 2008-04-09 08:32:08 -0700 (Wed, 09 Apr 2008) | 1 line
  
  Fix for bug #1790.
........
  r44130 | danieljames | 2008-04-09 10:26:31 -0700 (Wed, 09 Apr 2008) | 1 line
  
  Fix a typo.
........
  r44131 | danieljames | 2008-04-09 10:27:08 -0700 (Wed, 09 Apr 2008) | 1 line
  
  Rebuild the function types documentation.
........
  r44132 | pdimov | 2008-04-09 10:49:20 -0700 (Wed, 09 Apr 2008) | 1 line
  
  Proper try_lock semantics.
........
  r44134 | emildotchevski | 2008-04-09 11:48:39 -0700 (Wed, 09 Apr 2008) | 1 line
  
  missing include
........
  r44136 | anthonyw | 2008-04-09 12:33:06 -0700 (Wed, 09 Apr 2008) | 1 line
  
  Added test for trac ticket #1803: condition_variable::notify_one may fail to wake a waiting thread on win32
........
  r44137 | pdimov | 2008-04-09 12:58:54 -0700 (Wed, 09 Apr 2008) | 1 line
  
  sp_counted_base_spin.hpp added, enabled by BOOST_SP_USE_SPINLOCK.
........
  r44138 | pdimov | 2008-04-09 14:08:39 -0700 (Wed, 09 Apr 2008) | 1 line
  
  spinlock_gcc_arm.hpp added.
........
  r44139 | grafik | 2008-04-09 14:20:28 -0700 (Wed, 09 Apr 2008) | 1 line
  
  Add ARM architecture/instrustion-set.
........
  r44140 | pdimov | 2008-04-09 16:19:22 -0700 (Wed, 09 Apr 2008) | 1 line
  
  ARM assembly fix.
........
  r44145 | johnmaddock | 2008-04-10 05:46:41 -0700 (Thu, 10 Apr 2008) | 2 lines
  
  Doh! Changes to code should actually compile!
  A fix for the last change.
........
  r44146 | anthonyw | 2008-04-10 06:14:43 -0700 (Thu, 10 Apr 2008) | 1 line
  
  fix for notify problem in trac ticket #1803
........
  r44147 | anthonyw | 2008-04-10 06:27:44 -0700 (Thu, 10 Apr 2008) | 1 line
  
  fix for trac ticket #1804
........
  r44148 | anthonyw | 2008-04-10 06:35:07 -0700 (Thu, 10 Apr 2008) | 1 line
  
  Added native_handle to thread on posix platforms
........
  r44149 | anthonyw | 2008-04-10 07:07:39 -0700 (Thu, 10 Apr 2008) | 1 line
  
  added overloads of timed_lock_shared with a relative timeout to shared_mutex
........
  r44150 | anthonyw | 2008-04-10 07:15:26 -0700 (Thu, 10 Apr 2008) | 1 line
  
  added tests for plain timed_lock on shared_mutex
........
  r44151 | daniel_frey | 2008-04-10 07:38:14 -0700 (Thu, 10 Apr 2008) | 1 line
  
  Added test and fix for "convertible to bool" requirement
........
  r44152 | anthonyw | 2008-04-10 08:52:01 -0700 (Thu, 10 Apr 2008) | 1 line
  
  Added native_handle to condition_variable on pthreads
........
  r44153 | anthonyw | 2008-04-10 11:34:42 -0700 (Thu, 10 Apr 2008) | 1 line
  
  Updated thread.hpp as catch-all header
........
  r44160 | dgregor | 2008-04-10 14:05:14 -0700 (Thu, 10 Apr 2008) | 1 line
  
  Refactor mpi_datatype_cache to fix problems on VC9
........
  r44161 | danieljames | 2008-04-10 14:06:48 -0700 (Thu, 10 Apr 2008) | 2 lines
  
  Try to fix Herve's name in a couple of places.
........
  r44163 | djowel | 2008-04-10 16:51:31 -0700 (Thu, 10 Apr 2008) | 1 line
  
  moving stuff to classic spirit
........
  r44164 | emildotchevski | 2008-04-10 20:51:06 -0700 (Thu, 10 Apr 2008) | 1 line
  
  to_string fixes
........
  r44165 | grafik | 2008-04-10 22:34:00 -0700 (Thu, 10 Apr 2008) | 1 line
  
  Use local sorted() function to support Python < 2.4.
........
  r44166 | grafik | 2008-04-10 22:36:28 -0700 (Thu, 10 Apr 2008) | 1 line
  
  Add support for toolset requirements at the definition level.
........
  r44167 | grafik | 2008-04-11 00:50:47 -0700 (Fri, 11 Apr 2008) | 1 line
  
  Initial support for cross-compiling to ARM architecture.
........
  r44168 | anthonyw | 2008-04-11 01:52:09 -0700 (Fri, 11 Apr 2008) | 1 line
  
  Added test and fix for win32 condition_variable broadcast bug similar to #1803
........
  r44169 | johnmaddock | 2008-04-11 01:53:54 -0700 (Fri, 11 Apr 2008) | 1 line
  
  Fix doc typo from issue #1794.
........
  r44170 | johnmaddock | 2008-04-11 02:21:08 -0700 (Fri, 11 Apr 2008) | 1 line
  
  Beefed up pthreads test cases.
........
  r44171 | johnmaddock | 2008-04-11 02:22:31 -0700 (Fri, 11 Apr 2008) | 1 line
  
  Hopefully fix gcc/solaris single threading mode.
........
  r44172 | jurko | 2008-04-11 03:51:43 -0700 (Fri, 11 Apr 2008) | 1 line
  
  Comment typo correction.
........
  r44175 | dgregor | 2008-04-11 08:39:41 -0700 (Fri, 11 Apr 2008) | 1 line
  
  Fix some header-inclusion and header-ordering issues to get the MPI library compiling again.
........
  r44186 | johnmaddock | 2008-04-11 10:54:47 -0700 (Fri, 11 Apr 2008) | 1 line
  
  Disable long double tests on unsupported platforms.
........
  r44187 | johnmaddock | 2008-04-11 10:57:58 -0700 (Fri, 11 Apr 2008) | 1 line
  
  We don't need duplicate using declarations.
........
  r44188 | johnmaddock | 2008-04-11 11:08:59 -0700 (Fri, 11 Apr 2008) | 1 line
  
  Update error levels for real_concept tests.
........
  r44189 | johnmaddock | 2008-04-11 11:12:02 -0700 (Fri, 11 Apr 2008) | 1 line
  
  Update tolerance used for skewness test.
........
  r44190 | hkaiser | 2008-04-11 11:19:46 -0700 (Fri, 11 Apr 2008) | 1 line
  
  Fixed reference to Spirit classic test suite
........
  r44192 | emildotchevski | 2008-04-11 11:34:46 -0700 (Fri, 11 Apr 2008) | 1 line
  
  to_string adjustments
........
  r44195 | jurko | 2008-04-11 14:03:06 -0700 (Fri, 11 Apr 2008) | 1 line
  
  Implemented a patch contributed by Igor Nazarenko reimplementing the list_sort() function to use a C qsort() function instead of a hand-crafted merge-sort algorithm. Makes some list sortings (e.g. 1,2,1,2,1,2,1,2,...) extremely faster, in turn significantly speeding up some project builds.
........
  r44196 | hkaiser | 2008-04-11 15:01:55 -0700 (Fri, 11 Apr 2008) | 1 line
  
  Changed SpiritV1 header files to have a classic_ prefix
........
  r44197 | hkaiser | 2008-04-11 15:05:25 -0700 (Fri, 11 Apr 2008) | 1 line
  
  Renamed a SpiritV1 header file I missed before
........
  r44198 | hkaiser | 2008-04-11 19:35:34 -0700 (Fri, 11 Apr 2008) | 1 line
  
  Renamed PhoenixV1 files.
........
  r44203 | hkaiser | 2008-04-11 20:00:17 -0700 (Fri, 11 Apr 2008) | 1 line
  
  Fixed an ambiguity.
........
  r44206 | hkaiser | 2008-04-11 20:02:34 -0700 (Fri, 11 Apr 2008) | 1 line
  
  Fixed more SpiritV1 header references after renaming
........
  r44246 | emildotchevski | 2008-04-11 20:27:57 -0700 (Fri, 11 Apr 2008) | 1 line
  
  removed tabs. what's wrong with tabs anyway?
........
  r44342 | emildotchevski | 2008-04-11 23:08:10 -0700 (Fri, 11 Apr 2008) | 1 line
  
  documentation cleanup
........
  r44343 | speedsnail | 2008-04-12 04:02:35 -0700 (Sat, 12 Apr 2008) | 2 lines
  
  Fixed a bug in for seldom used argument <property:/property-name/> in rule format-name.
  Added /property-name/ may be a regex.
........
  r44344 | pdimov | 2008-04-12 07:27:22 -0700 (Sat, 12 Apr 2008) | 1 line
  
  shared_ptr::lock no longer requires exceptions.
........
  r44346 | johnmaddock | 2008-04-12 09:01:16 -0700 (Sat, 12 Apr 2008) | 1 line
  
  Remove references to Boost.Test from the config_test target.
........
  r44347 | johnmaddock | 2008-04-12 09:02:24 -0700 (Sat, 12 Apr 2008) | 1 line
  
  When -lrt is needed, it's needed in *both* single and multi-threaded builds.
........
  r44350 | johnmaddock | 2008-04-12 09:27:11 -0700 (Sat, 12 Apr 2008) | 2 lines
  
  Add non central distro's to fwd.hpp.
  Added needed #include to bessel_ik.hpp.
........
  r44351 | johnmaddock | 2008-04-12 09:28:57 -0700 (Sat, 12 Apr 2008) | 3 lines
  
  Fix declaration order in dist_nc_beta_incl_test.cpp test.
  Fix long long usage in sf_modf_incl_test.cpp.
  Adjust failure rates in test_zeta.cpp to cope with HP aCC and 128-bit long doubles.
........
  r44352 | johnmaddock | 2008-04-12 09:42:28 -0700 (Sat, 12 Apr 2008) | 1 line
  
  Remove test row that causes problems for VC-7.1 due to a compiler bug.
........
  r44353 | pdimov | 2008-04-12 11:22:18 -0700 (Sat, 12 Apr 2008) | 1 line
  
  sp_accept_owner added.
........
  r44354 | grafik | 2008-04-12 12:44:47 -0700 (Sat, 12 Apr 2008) | 1 line
  
  Add multiple requirements for toolset subconditions instead of one composite as they are not supported for conditional requirements. Thanks to Roland for finding the problem.
........
  r44355 | hkaiser | 2008-04-12 16:58:29 -0700 (Sat, 12 Apr 2008) | 1 line
  
  Changed copyright, started to apply changes for switching namespaces.
........
  r44356 | djowel | 2008-04-12 17:15:11 -0700 (Sat, 12 Apr 2008) | 1 line
  
  added flat forwarding headers
........
  r44357 | djowel | 2008-04-12 17:39:00 -0700 (Sat, 12 Apr 2008) | 1 line
  
  added flat forwarding headers
........
  r44358 | djowel | 2008-04-12 17:54:10 -0700 (Sat, 12 Apr 2008) | 1 line
  
  adding spirit2
........
  r44359 | djowel | 2008-04-12 18:52:31 -0700 (Sat, 12 Apr 2008) | 1 line
  
  spirit2 ! :)
........
  r44360 | djowel | 2008-04-12 20:02:30 -0700 (Sat, 12 Apr 2008) | 1 line
  
  spirit2 ! :)
........
  r44361 | djowel | 2008-04-12 20:17:57 -0700 (Sat, 12 Apr 2008) | 1 line
  
  spirit2 ! :)
........
  r44367 | andreas_huber69 | 2008-04-13 06:57:42 -0700 (Sun, 13 Apr 2008) | 1 line
  
  Changed the PingPong example to demonstrate how the inner workings of an asynchronous_state_machine<> subclass can be hidden.
........
  r44369 | pdimov | 2008-04-13 08:35:40 -0700 (Sun, 13 Apr 2008) | 1 line
  
  Honor BOOST_DISABLE_THREADS; route GCC/ARM to the spinlock implementation; fall back to the spinlock implementation instead of using pthread_mutex.
........
  r44370 | anthonyw | 2008-04-13 08:50:08 -0700 (Sun, 13 Apr 2008) | 1 line
  
  Added extended adopt/defer/try constructors to upgrade_lock
........
  r44371 | hkaiser | 2008-04-13 09:28:27 -0700 (Sun, 13 Apr 2008) | 1 line
  
  Fixed Spirit Classic namespace switching.
........
  r44372 | emildotchevski | 2008-04-13 10:07:26 -0700 (Sun, 13 Apr 2008) | 1 line
  
  minor compile error fix
........
  r44374 | hkaiser | 2008-04-13 15:00:04 -0700 (Sun, 13 Apr 2008) | 1 line
  
  Added SpiritV2 test suite to regression tests.
........
  r44376 | grafik | 2008-04-13 15:12:12 -0700 (Sun, 13 Apr 2008) | 1 line
  
  Move array test into canonical test subdir structure.
........
  r44377 | grafik | 2008-04-13 15:24:41 -0700 (Sun, 13 Apr 2008) | 1 line
  
  Move crc test into canonical test subdir structure.
........


[SVN r44393]
2008-04-14 05:18:26 +00:00
966e2e60f4 post-review proto version
[SVN r44061]
2008-04-05 18:00:00 +00:00
e4da19535d adds acknowledgement for Noel helping to support Sun compilers
[SVN r43608]
2008-03-14 18:36:46 +00:00
04a28f6d46 resolves #1100 and #1602
[SVN r43606]
2008-03-14 18:29:26 +00:00
8bc1c768ad attempts to finally make Sun work
[SVN r43605]
2008-03-14 17:59:22 +00:00
f5084b1410 removes unnecessary comment
[SVN r43412]
2008-02-25 11:47:59 +00:00
adcac6d5d0 attempts to make synthesis metafunctions work with sun compiler
[SVN r43125]
2008-02-06 13:00:08 +00:00
9d9c35e797 attempts to allow some preprocessing with VACPP (IBM)
[SVN r42987]
2008-01-26 21:50:14 +00:00
096ac6aac4 touched
[SVN r42958]
2008-01-25 00:28:15 +00:00
0a515cc963 simplifies preprocessing code
[SVN r42957]
2008-01-25 00:26:16 +00:00
2fe398d9f8 correctsbroken compiler support for MPL
[SVN r42950]
2008-01-24 18:56:27 +00:00
e171bda08f attempts to fix pathscale failure
[SVN r42859]
2008-01-18 21:06:44 +00:00
72f89e9434 attempts to fix BCB 5.9 regression in synthesis/mem_func_ptr_cv_ptr_to_this test
[SVN r42858]
2008-01-18 20:52:06 +00:00
508b6ff4d7 makes member object support work with BCC
[SVN r42843]
2008-01-18 14:37:41 +00:00
5ee20a4383 attempts to fix Borland regressions
[SVN r42822]
2008-01-16 19:17:09 +00:00
d989383a27 works around MSVC7.1 problems (hopefully)
[SVN r42821]
2008-01-16 19:16:37 +00:00
d209118686 adds missing #include
[SVN r42797]
2008-01-15 19:46:10 +00:00
ed24c45406 attempts to fix strange problems with Pathscale compilers
[SVN r41742]
2007-12-05 13:20:13 +00:00
b60bbe281f clarifies #error message
[SVN r41739]
2007-12-05 10:24:21 +00:00
876fff56e7 Using central stylesheet now.
[SVN r41554]
2007-12-01 20:52:00 +00:00
43 changed files with 588 additions and 985 deletions

21
CMakeLists.txt Normal file
View File

@ -0,0 +1,21 @@
#----------------------------------------------------------------------------
# This file was automatically generated from the original CMakeLists.txt file
# Add a variable to hold the headers for the library
set (lib_headers
function_types
)
# Add a library target to the build system
boost_library_project(
function_types
# SRCDIRS
TESTDIRS test
HEADERS ${lib_headers}
# DOCDIRS
# DESCRIPTION
MODULARIZED
# AUTHORS
# MAINTAINERS
)

View File

@ -2,7 +2,7 @@
# (C) Copyright Tobias Schwinger
#
# Use modification and distribution are subject to the boost Software License,
# Version 1.0. (See http:/\/www.boost.org/LICENSE_1_0.txt).
# Version 1.0. (See http://www.boost.org/LICENSE_1_0.txt).
# Generates preprocessed files with wave.
@ -13,18 +13,24 @@ rule wave
actions wave
{
$(BOOST_ROOT)/dist/bin/wave -S$(BOOST_ROOT) $(>) -o $(<)
../../../dist/bin/wave -S../../.. $(>) -o $(<)
}
make $(BOOST_ROOT)/libs/function_types/build/timestamps/arity_loops
make ../../../libs/function_types/build/timestamps/arity_loops
: preprocess_arity_loops.cpp : wave
;
make $(BOOST_ROOT)/libs/function_types/build/timestamps/encoding
explicit ../../../libs/function_types/build/timestamps/arity_loops ;
make ../../../libs/function_types/build/timestamps/encoding
: preprocess_encoding.cpp : wave
;
make $(BOOST_ROOT)/libs/function_types/build/timestamps/cc_names
explicit ../../../libs/function_types/build/timestamps/encoding ;
make ../../../libs/function_types/build/timestamps/cc_names
: preprocess_cc_names.cpp : wave
;
explicit ../../../libs/function_types/build/timestamps/cc_names ;

View File

@ -2,7 +2,7 @@
// (C) Copyright Tobias Schwinger
//
// Use modification and distribution are subject to the boost Software License,
// Version 1.0. (See http:/\/www.boost.org/LICENSE_1_0.txt).
// Version 1.0. (See http://www.boost.org/LICENSE_1_0.txt).
//------------------------------------------------------------------------------

View File

@ -2,7 +2,7 @@
// (C) Copyright Tobias Schwinger
//
// Use modification and distribution are subject to the boost Software License,
// Version 1.0. (See http:/\/www.boost.org/LICENSE_1_0.txt).
// Version 1.0. (See http://www.boost.org/LICENSE_1_0.txt).
//------------------------------------------------------------------------------

View File

@ -2,7 +2,7 @@
// (C) Copyright Tobias Schwinger
//
// Use modification and distribution are subject to the boost Software License,
// Version 1.0. (See http:/\/www.boost.org/LICENSE_1_0.txt).
// Version 1.0. (See http://www.boost.org/LICENSE_1_0.txt).
//------------------------------------------------------------------------------

View File

@ -1,2 +1 @@
timestamp file

View File

@ -2,7 +2,7 @@
# (C) Copyright Tobias Schwinger
#
# Use modification and distribution are subject to the boost Software License,
# Version 1.0. (See http:/\/www.boost.org/LICENSE_1_0.txt).
# Version 1.0. (See http://www.boost.org/LICENSE_1_0.txt).
using quickbook ;
@ -13,6 +13,7 @@ boostbook standalone
:
<xsl:param>boost.root=../../../..
<xsl:param>boost.libraries=../../../libraries.htm
<xsl:param>html.stylesheet=../../../../doc/html/boostbook.css
<xsl:param>chunk.first.sections=1
<xsl:param>chunk.section.depth=2
<xsl:param>generate.section.toc.level=2

View File

@ -897,7 +897,7 @@ definition of [^BOOST_FT_CC_NAMES]:
[section:BOOST_FT_CC BOOST_FT\_CC\_*]
Enables a specific calling convention. * dentoes the macro suffix, as
Enables a specific calling convention. * denotes the macro suffix, as
defined by
[link boost_functiontypes.reference.macros.BOOST_FT_CC_NAMES [^BOOST_FT_CC_NAMES]]
or
@ -1099,6 +1099,7 @@ library in one or the other way:
* Jonathan Turkanis
* Pavel Vozenilek
* Steven Watanabe
* K. Noel Belcourt
[endsect]

View File

@ -1,21 +1,21 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title> About Tag Types</title>
<link rel="stylesheet" href="../boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
<title>About Tag Types</title>
<link rel="stylesheet" href="../../../../../doc/html/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.73.2">
<link rel="start" href="../index.html" title="Chapter<65>1.<2E>Boost.FunctionTypes 2.5">
<link rel="up" href="../index.html" title="Chapter<65>1.<2E>Boost.FunctionTypes 2.5">
<link rel="prev" href="use_cases.html" title=" Use Cases">
<link rel="next" href="reference.html" title=" Reference">
<link rel="prev" href="use_cases.html" title="Use Cases">
<link rel="next" href="reference.html" title="Reference">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td>
<td align="center"><a href="../../../../../index.htm">Home</a></td>
<td align="center"><a href="../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../libraries.htm">Libraries</a></td>
<td align="center"><a href="../../../../../people/people.htm">People</a></td>
<td align="center"><a href="../../../../../more/faq.htm">FAQ</a></td>
<td align="center"><a href="http://www.boost.org/people/people.htm">People</a></td>
<td align="center"><a href="http://www.boost.org/more/faq.htm">FAQ</a></td>
<td align="center"><a href="../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
@ -24,7 +24,8 @@
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
<a name="boost_functiontypes.about_tag_types"></a><a href="about_tag_types.html" title=" About Tag Types"> About Tag Types</a></h2></div></div></div>
<a name="boost_functiontypes.about_tag_types"></a><a class="link" href="about_tag_types.html" title="About Tag Types"> About Tag Types</a>
</h2></div></div></div>
<p>
Boost.FunctionTypes uses tag types to encode properties that are not types
per se, such as calling convention or whether a function is variadic or cv-
@ -84,7 +85,11 @@
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><small>Copyright <20> 2004 -2007 Tobias Schwinger</small></td>
<td align="right"><div class="copyright-footer">Copyright <20> 2004 -2007 Tobias Schwinger<p>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
</p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">

View File

@ -1,20 +1,20 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title> Acknowledgements</title>
<link rel="stylesheet" href="../boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
<title>Acknowledgements</title>
<link rel="stylesheet" href="../../../../../doc/html/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.73.2">
<link rel="start" href="../index.html" title="Chapter<65>1.<2E>Boost.FunctionTypes 2.5">
<link rel="up" href="../index.html" title="Chapter<65>1.<2E>Boost.FunctionTypes 2.5">
<link rel="prev" href="rationale.html" title=" Rationale">
<link rel="prev" href="rationale.html" title="Rationale">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td>
<td align="center"><a href="../../../../../index.htm">Home</a></td>
<td align="center"><a href="../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../libraries.htm">Libraries</a></td>
<td align="center"><a href="../../../../../people/people.htm">People</a></td>
<td align="center"><a href="../../../../../more/faq.htm">FAQ</a></td>
<td align="center"><a href="http://www.boost.org/people/people.htm">People</a></td>
<td align="center"><a href="http://www.boost.org/more/faq.htm">FAQ</a></td>
<td align="center"><a href="../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
@ -23,7 +23,8 @@
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
<a name="boost_functiontypes.acknowledgements"></a><a href="acknowledgements.html" title=" Acknowledgements"> Acknowledgements</a></h2></div></div></div>
<a name="boost_functiontypes.acknowledgements"></a><a class="link" href="acknowledgements.html" title="Acknowledgements"> Acknowledgements</a>
</h2></div></div></div>
<p>
Thanks go to the following people for supporting the development of this library
in one or the other way:
@ -71,11 +72,18 @@
<li>
Steven Watanabe
</li>
<li>
K. Noel Belcourt
</li>
</ul></div>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><small>Copyright <20> 2004 -2007 Tobias Schwinger</small></td>
<td align="right"><div class="copyright-footer">Copyright <20> 2004 -2007 Tobias Schwinger<p>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
</p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">

View File

@ -1,21 +1,21 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title> Introduction</title>
<link rel="stylesheet" href="../boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
<title>Introduction</title>
<link rel="stylesheet" href="../../../../../doc/html/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.73.2">
<link rel="start" href="../index.html" title="Chapter<65>1.<2E>Boost.FunctionTypes 2.5">
<link rel="up" href="../index.html" title="Chapter<65>1.<2E>Boost.FunctionTypes 2.5">
<link rel="prev" href="../index.html" title="Chapter<65>1.<2E>Boost.FunctionTypes 2.5">
<link rel="next" href="use_cases.html" title=" Use Cases">
<link rel="next" href="use_cases.html" title="Use Cases">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td>
<td align="center"><a href="../../../../../index.htm">Home</a></td>
<td align="center"><a href="../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../libraries.htm">Libraries</a></td>
<td align="center"><a href="../../../../../people/people.htm">People</a></td>
<td align="center"><a href="../../../../../more/faq.htm">FAQ</a></td>
<td align="center"><a href="http://www.boost.org/people/people.htm">People</a></td>
<td align="center"><a href="http://www.boost.org/more/faq.htm">FAQ</a></td>
<td align="center"><a href="../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
@ -24,7 +24,8 @@
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
<a name="boost_functiontypes.introduction"></a><a href="introduction.html" title=" Introduction"> Introduction</a></h2></div></div></div>
<a name="boost_functiontypes.introduction"></a><a class="link" href="introduction.html" title="Introduction"> Introduction</a>
</h2></div></div></div>
<p>
Boost.FunctionTypes provides functionality to classify, decompose and synthesize
function, function pointer, function reference and pointer to member types.
@ -56,35 +57,34 @@
constant called <code class="literal">value</code>.
</p>
<pre class="programlisting">
<a href="reference/classification.html#boost_functiontypes.reference.classification.is_function_pointer" title="
is_function_pointer">is_function_pointer</a><span class="special">&lt;</span> <span class="keyword">bool</span><span class="special">(*)(</span><span class="keyword">int</span><span class="special">)</span> <span class="special">&gt;::</span><span class="identifier">value</span> <span class="comment">// == true
<a class="link" href="reference/classification.html#boost_functiontypes.reference.classification.is_function_pointer" title="is_function_pointer">is_function_pointer</a><span class="special">&lt;</span> <span class="keyword">bool</span><span class="special">(*)(</span><span class="keyword">int</span><span class="special">)</span> <span class="special">&gt;::</span><span class="identifier">value</span> <span class="comment">// == true
</span>
<a href="reference/decomposition.html#boost_functiontypes.reference.decomposition.function_arity" title="
function_arity">function_arity</a><span class="special">&lt;</span> <span class="keyword">bool</span><span class="special">(*)(</span><span class="keyword">int</span><span class="special">)</span> <span class="special">&gt;::</span><span class="identifier">value</span> <span class="comment">// == 1
<a class="link" href="reference/decomposition.html#boost_functiontypes.reference.decomposition.function_arity" title="function_arity">function_arity</a><span class="special">&lt;</span> <span class="keyword">bool</span><span class="special">(*)(</span><span class="keyword">int</span><span class="special">)</span> <span class="special">&gt;::</span><span class="identifier">value</span> <span class="comment">// == 1
</span></pre>
<p>
Templates that encapsulate properties that are single types contain a type
member called <code class="literal">type</code>.
</p>
<pre class="programlisting">
<a href="reference/synthesis.html#boost_functiontypes.reference.synthesis.function_type" title="
function_type">function_type</a><span class="special">&lt;</span> <span class="identifier">mpl</span><span class="special">::</span><span class="identifier">vector</span><span class="special">&lt;</span><span class="keyword">bool</span><span class="special">,</span><span class="keyword">int</span><span class="special">&gt;</span> <span class="special">&gt;::</span><span class="identifier">type</span> <span class="comment">// is bool(int)
<a class="link" href="reference/synthesis.html#boost_functiontypes.reference.synthesis.function_type" title="function_type">function_type</a><span class="special">&lt;</span> <span class="identifier">mpl</span><span class="special">::</span><span class="identifier">vector</span><span class="special">&lt;</span><span class="keyword">bool</span><span class="special">,</span><span class="keyword">int</span><span class="special">&gt;</span> <span class="special">&gt;::</span><span class="identifier">type</span> <span class="comment">// is bool(int)
</span>
<a href="reference/decomposition.html#boost_functiontypes.reference.decomposition.result_type" title="
result_type">result_type</a><span class="special">&lt;</span> <span class="keyword">bool</span><span class="special">(&amp;)(</span><span class="keyword">int</span><span class="special">)</span> <span class="special">&gt;::</span><span class="identifier">type</span> <span class="comment">// is bool
<a class="link" href="reference/decomposition.html#boost_functiontypes.reference.decomposition.result_type" title="result_type">result_type</a><span class="special">&lt;</span> <span class="keyword">bool</span><span class="special">(&amp;)(</span><span class="keyword">int</span><span class="special">)</span> <span class="special">&gt;::</span><span class="identifier">type</span> <span class="comment">// is bool
</span></pre>
<p>
Templates that encapsulate properties that are type lists model an MPL-compatible
type sequence.
</p>
<pre class="programlisting">
<a href="reference/decomposition.html#boost_functiontypes.reference.decomposition.parameter_types" title="
parameter_types">parameter_types</a><span class="special">&lt;</span> <span class="keyword">bool</span><span class="special">(</span><span class="keyword">int</span><span class="special">)</span> <span class="special">&gt;</span> <span class="comment">// models an MPL sequence
<a class="link" href="reference/decomposition.html#boost_functiontypes.reference.decomposition.parameter_types" title="parameter_types">parameter_types</a><span class="special">&lt;</span> <span class="keyword">bool</span><span class="special">(</span><span class="keyword">int</span><span class="special">)</span> <span class="special">&gt;</span> <span class="comment">// models an MPL sequence
</span></pre>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><small>Copyright <20> 2004 -2007 Tobias Schwinger</small></td>
<td align="right"><div class="copyright-footer">Copyright <20> 2004 -2007 Tobias Schwinger<p>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
</p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">

View File

@ -1,21 +1,21 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title> Rationale</title>
<link rel="stylesheet" href="../boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
<title>Rationale</title>
<link rel="stylesheet" href="../../../../../doc/html/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.73.2">
<link rel="start" href="../index.html" title="Chapter<65>1.<2E>Boost.FunctionTypes 2.5">
<link rel="up" href="../index.html" title="Chapter<65>1.<2E>Boost.FunctionTypes 2.5">
<link rel="prev" href="reference/macros.html" title=" Macros">
<link rel="next" href="acknowledgements.html" title=" Acknowledgements">
<link rel="prev" href="reference/macros.html" title="Macros">
<link rel="next" href="acknowledgements.html" title="Acknowledgements">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td>
<td align="center"><a href="../../../../../index.htm">Home</a></td>
<td align="center"><a href="../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../libraries.htm">Libraries</a></td>
<td align="center"><a href="../../../../../people/people.htm">People</a></td>
<td align="center"><a href="../../../../../more/faq.htm">FAQ</a></td>
<td align="center"><a href="http://www.boost.org/people/people.htm">People</a></td>
<td align="center"><a href="http://www.boost.org/more/faq.htm">FAQ</a></td>
<td align="center"><a href="../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
@ -24,12 +24,13 @@
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
<a name="boost_functiontypes.rationale"></a><a href="rationale.html" title=" Rationale"> Rationale</a></h2></div></div></div>
<a name="boost_functiontypes.rationale.error_handling_rationale"></a><h3>
<a name="id932131"></a>
<a href="rationale.html#boost_functiontypes.rationale.error_handling_rationale">Error
<a name="boost_functiontypes.rationale"></a><a class="link" href="rationale.html" title="Rationale"> Rationale</a>
</h2></div></div></div>
<a name="boost_functiontypes.rationale.error_handling_rationale"></a><h4>
<a name="id2644279"></a>
<a class="link" href="rationale.html#boost_functiontypes.rationale.error_handling_rationale">Error
handling rationale</a>
</h3>
</h4>
<p>
The library does not define the required members of class templates in case
of an error. This technique causes the compiler to stop displaying diagnostics
@ -40,10 +41,10 @@
The library's components have limited error conditions, so problematic input
can be spotted easily.
</p>
<a name="boost_functiontypes.rationale.why_mpl_sequences_"></a><h3>
<a name="id932169"></a>
<a href="rationale.html#boost_functiontypes.rationale.why_mpl_sequences_">Why MPL Sequences?</a>
</h3>
<a name="boost_functiontypes.rationale.why_mpl_sequences_"></a><h4>
<a name="id2644312"></a>
<a class="link" href="rationale.html#boost_functiontypes.rationale.why_mpl_sequences_">Why MPL Sequences?</a>
</h4>
<p>
MPL provides algorithms on Sequences, so transformations (such as turning by-value
parameter types into const references for optimized forwarding or computing
@ -53,20 +54,20 @@
other Boost libraries (most importantly <a href="../../../../fusion/index.html" target="_top">Fusion</a>),
so another reason is interoperability.
</p>
<a name="boost_functiontypes.rationale.pointer_to_member_object_types"></a><h3>
<a name="id932226"></a>
<a href="rationale.html#boost_functiontypes.rationale.pointer_to_member_object_types">Pointer
<a name="boost_functiontypes.rationale.pointer_to_member_object_types"></a><h4>
<a name="id2644363"></a>
<a class="link" href="rationale.html#boost_functiontypes.rationale.pointer_to_member_object_types">Pointer
to member object types</a>
</h3>
</h4>
<p>
Despite their syntax, pointer to member object types can be seen as dereferencing
functionals.
</p>
<a name="boost_functiontypes.rationale.the_classtransform_template_parameter"></a><h3>
<a name="id932258"></a>
<a href="rationale.html#boost_functiontypes.rationale.the_classtransform_template_parameter">The
<a name="boost_functiontypes.rationale.the_classtransform_template_parameter"></a><h4>
<a name="id2644388"></a>
<a class="link" href="rationale.html#boost_functiontypes.rationale.the_classtransform_template_parameter">The
ClassTransform template parameter</a>
</h3>
</h4>
<p>
<code class="literal">This</code>-pointer, <code class="literal">this</code>-reference or just
the object (or maybe even a smart pointer to the object) plus adjustments of
@ -79,10 +80,10 @@
client to adjust the class type before the sequence is formed and then treat
all parameters uniformly.
</p>
<a name="boost_functiontypes.rationale.why_tag_types_"></a><h3>
<a name="id932313"></a>
<a href="rationale.html#boost_functiontypes.rationale.why_tag_types_">Why tag types?</a>
</h3>
<a name="boost_functiontypes.rationale.why_tag_types_"></a><h4>
<a name="id2644439"></a>
<a class="link" href="rationale.html#boost_functiontypes.rationale.why_tag_types_">Why tag types?</a>
</h4>
<p>
Let's consider the alternatives.
</p>
@ -98,12 +99,12 @@
parameters do not work within MPL lambda expressions and can cause problems
with older compilers.
</p>
<a name="boost_functiontypes.rationale.is_it_safe_to_have_the_synthesis_templates_take_a_callable__builtin_type_or_an_mpl_sequence_as_the_first_template_argument_"></a><h3>
<a name="id932364"></a>
<a href="rationale.html#boost_functiontypes.rationale.is_it_safe_to_have_the_synthesis_templates_take_a_callable__builtin_type_or_an_mpl_sequence_as_the_first_template_argument_">Is
<a name="boost_functiontypes.rationale.is_it_safe_to_have_the_synthesis_templates_take_a_callable__builtin_type_or_an_mpl_sequence_as_the_first_template_argument_"></a><h4>
<a name="id2644479"></a>
<a class="link" href="rationale.html#boost_functiontypes.rationale.is_it_safe_to_have_the_synthesis_templates_take_a_callable__builtin_type_or_an_mpl_sequence_as_the_first_template_argument_">Is
it safe to have the synthesis templates take a callable builtin type or an
MPL sequence as the first template argument?</a>
</h3>
</h4>
<p>
Yes, but it isn't immediately obvious as the set of possible MPL sequences
isn't inherently disjoint from the set of callable builtin types.
@ -113,25 +114,23 @@
idea, because builtin types are accessible before the headers that make the
type a sequence have been included, which can easily violate the ODR.
</p>
<a name="boost_functiontypes.rationale.why_does_the_hidden__literal_this__literal__parameter_count_for_the__function_arity_of_member_functions_"></a><h3>
<a name="id932412"></a>
<a href="rationale.html#boost_functiontypes.rationale.why_does_the_hidden__literal_this__literal__parameter_count_for_the__function_arity_of_member_functions_">Why
<a name="boost_functiontypes.rationale.why_does_the_hidden__literal_this__literal__parameter_count_for_the__function_arity_of_member_functions_"></a><h4>
<a name="id2644521"></a>
<a class="link" href="rationale.html#boost_functiontypes.rationale.why_does_the_hidden__literal_this__literal__parameter_count_for_the__function_arity_of_member_functions_">Why
does the hidden <code class="literal">this</code> parameter count for the function arity
of member functions?</a>
</h3>
</h4>
<p>
It was found preferable that the following condition holds:
</p>
<pre class="programlisting">
<span class="identifier">mpl</span><span class="special">::</span><span class="identifier">size</span><span class="special">&lt;</span> <a href="reference/decomposition.html#boost_functiontypes.reference.decomposition.parameter_types" title="
parameter_types">parameter_types</a><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="special">&gt;::</span><span class="identifier">value</span> <span class="special">==</span> <a href="reference/decomposition.html#boost_functiontypes.reference.decomposition.function_arity" title="
function_arity">function_arity</a><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;::</span><span class="identifier">value</span>
<span class="identifier">mpl</span><span class="special">::</span><span class="identifier">size</span><span class="special">&lt;</span> <a class="link" href="reference/decomposition.html#boost_functiontypes.reference.decomposition.parameter_types" title="parameter_types">parameter_types</a><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="special">&gt;::</span><span class="identifier">value</span> <span class="special">==</span> <a class="link" href="reference/decomposition.html#boost_functiontypes.reference.decomposition.function_arity" title="function_arity">function_arity</a><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;::</span><span class="identifier">value</span>
</pre>
<a name="boost_functiontypes.rationale.why_ignore_top_level_cv_qualifiers_on_pointers_"></a><h3>
<a name="id932539"></a>
<a href="rationale.html#boost_functiontypes.rationale.why_ignore_top_level_cv_qualifiers_on_pointers_">Why
<a name="boost_functiontypes.rationale.why_ignore_top_level_cv_qualifiers_on_pointers_"></a><h4>
<a name="id2644638"></a>
<a class="link" href="rationale.html#boost_functiontypes.rationale.why_ignore_top_level_cv_qualifiers_on_pointers_">Why
ignore top-level cv-qualifiers on pointers?</a>
</h3>
</h4>
<p>
A cv-qualified pointer is still a pointer. It usually doesn't matter and even
if it does, it's a job for <a href="../../../../type_traits/index.html" target="_top">Boost.TypeTraits</a>.
@ -139,7 +138,11 @@
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><small>Copyright <20> 2004 -2007 Tobias Schwinger</small></td>
<td align="right"><div class="copyright-footer">Copyright <20> 2004 -2007 Tobias Schwinger<p>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
</p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">

View File

@ -1,22 +1,21 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title> Reference</title>
<link rel="stylesheet" href="../boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
<title>Reference</title>
<link rel="stylesheet" href="../../../../../doc/html/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.73.2">
<link rel="start" href="../index.html" title="Chapter<65>1.<2E>Boost.FunctionTypes 2.5">
<link rel="up" href="../index.html" title="Chapter<65>1.<2E>Boost.FunctionTypes 2.5">
<link rel="prev" href="about_tag_types.html" title=" About Tag Types">
<link rel="next" href="reference/classification.html" title=" Class
templates for type classification">
<link rel="prev" href="about_tag_types.html" title="About Tag Types">
<link rel="next" href="reference/classification.html" title="Class templates for type classification">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td>
<td align="center"><a href="../../../../../index.htm">Home</a></td>
<td align="center"><a href="../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../libraries.htm">Libraries</a></td>
<td align="center"><a href="../../../../../people/people.htm">People</a></td>
<td align="center"><a href="../../../../../more/faq.htm">FAQ</a></td>
<td align="center"><a href="http://www.boost.org/people/people.htm">People</a></td>
<td align="center"><a href="http://www.boost.org/more/faq.htm">FAQ</a></td>
<td align="center"><a href="../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
@ -25,7 +24,8 @@
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
<a name="boost_functiontypes.reference"></a><a href="reference.html" title=" Reference"> Reference</a></h2></div></div></div>
<a name="boost_functiontypes.reference"></a><a class="link" href="reference.html" title="Reference"> Reference</a>
</h2></div></div></div>
<div class="toc"><dl>
<dt><span class="section"><a href="reference/classification.html"> Class
templates for type classification</a></span></dt>
@ -39,7 +39,11 @@
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><small>Copyright <20> 2004 -2007 Tobias Schwinger</small></td>
<td align="right"><div class="copyright-footer">Copyright <20> 2004 -2007 Tobias Schwinger<p>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
</p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">

View File

@ -1,23 +1,21 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title> Class
templates for type classification</title>
<link rel="stylesheet" href="../../boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
<title>Class templates for type classification</title>
<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.73.2">
<link rel="start" href="../../index.html" title="Chapter<65>1.<2E>Boost.FunctionTypes 2.5">
<link rel="up" href="../reference.html" title=" Reference">
<link rel="prev" href="../reference.html" title=" Reference">
<link rel="next" href="decomposition.html" title=" Class templates
for type decomposition">
<link rel="up" href="../reference.html" title="Reference">
<link rel="prev" href="../reference.html" title="Reference">
<link rel="next" href="decomposition.html" title="Class templates for type decomposition">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../index.htm">Home</a></td>
<td align="center"><a href="../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../libraries.htm">Libraries</a></td>
<td align="center"><a href="../../../../../../people/people.htm">People</a></td>
<td align="center"><a href="../../../../../../more/faq.htm">FAQ</a></td>
<td align="center"><a href="http://www.boost.org/people/people.htm">People</a></td>
<td align="center"><a href="http://www.boost.org/more/faq.htm">FAQ</a></td>
<td align="center"><a href="../../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
@ -26,9 +24,9 @@
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_functiontypes.reference.classification"></a><a href="classification.html" title=" Class
templates for type classification"> Class
templates for type classification</a></h3></div></div></div>
<a name="boost_functiontypes.reference.classification"></a><a class="link" href="classification.html" title="Class templates for type classification"> Class
templates for type classification</a>
</h3></div></div></div>
<div class="toc"><dl>
<dt><span class="section"><a href="classification.html#boost_functiontypes.reference.classification.is_function">
is_function</a></span></dt>
@ -49,12 +47,11 @@
</dl></div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h4 class="title">
<a name="boost_functiontypes.reference.classification.is_function"></a><a href="classification.html#boost_functiontypes.reference.classification.is_function" title="
is_function">
is_function</a></h4></div></div></div>
<a name="boost_functiontypes.reference.classification.is_function"></a><a class="link" href="classification.html#boost_functiontypes.reference.classification.is_function" title="is_function">
is_function</a>
</h4></div></div></div>
<pre class="programlisting">
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Tag</span> <span class="special">=</span> <a href="tag_types.html#boost_functiontypes.reference.tag_types.null_tag" title="
null_tag">null_tag</a><span class="special">&gt;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Tag</span> <span class="special">=</span> <a class="link" href="tag_types.html#boost_functiontypes.reference.tag_types.null_tag" title="null_tag">null_tag</a><span class="special">&gt;</span>
<span class="keyword">struct</span> <span class="identifier">is_function</span><span class="special">;</span>
</pre>
<p>
@ -93,12 +90,11 @@
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h4 class="title">
<a name="boost_functiontypes.reference.classification.is_function_pointer"></a><a href="classification.html#boost_functiontypes.reference.classification.is_function_pointer" title="
is_function_pointer">
is_function_pointer</a></h4></div></div></div>
<a name="boost_functiontypes.reference.classification.is_function_pointer"></a><a class="link" href="classification.html#boost_functiontypes.reference.classification.is_function_pointer" title="is_function_pointer">
is_function_pointer</a>
</h4></div></div></div>
<pre class="programlisting">
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Tag</span> <span class="special">=</span> <a href="tag_types.html#boost_functiontypes.reference.tag_types.null_tag" title="
null_tag">null_tag</a><span class="special">&gt;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Tag</span> <span class="special">=</span> <a class="link" href="tag_types.html#boost_functiontypes.reference.tag_types.null_tag" title="null_tag">null_tag</a><span class="special">&gt;</span>
<span class="keyword">struct</span> <span class="identifier">is_function_pointer</span><span class="special">;</span>
</pre>
<p>
@ -137,12 +133,11 @@
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h4 class="title">
<a name="boost_functiontypes.reference.classification.is_function_reference"></a><a href="classification.html#boost_functiontypes.reference.classification.is_function_reference" title="
is_function_reference">
is_function_reference</a></h4></div></div></div>
<a name="boost_functiontypes.reference.classification.is_function_reference"></a><a class="link" href="classification.html#boost_functiontypes.reference.classification.is_function_reference" title="is_function_reference">
is_function_reference</a>
</h4></div></div></div>
<pre class="programlisting">
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Tag</span> <span class="special">=</span> <a href="tag_types.html#boost_functiontypes.reference.tag_types.null_tag" title="
null_tag">null_tag</a><span class="special">&gt;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Tag</span> <span class="special">=</span> <a class="link" href="tag_types.html#boost_functiontypes.reference.tag_types.null_tag" title="null_tag">null_tag</a><span class="special">&gt;</span>
<span class="keyword">struct</span> <span class="identifier">is_function_reference</span><span class="special">;</span>
</pre>
<p>
@ -181,12 +176,11 @@
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h4 class="title">
<a name="boost_functiontypes.reference.classification.is_member_pointer"></a><a href="classification.html#boost_functiontypes.reference.classification.is_member_pointer" title="
is_member_pointer">
is_member_pointer</a></h4></div></div></div>
<a name="boost_functiontypes.reference.classification.is_member_pointer"></a><a class="link" href="classification.html#boost_functiontypes.reference.classification.is_member_pointer" title="is_member_pointer">
is_member_pointer</a>
</h4></div></div></div>
<pre class="programlisting">
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Tag</span> <span class="special">=</span> <a href="tag_types.html#boost_functiontypes.reference.tag_types.null_tag" title="
null_tag">null_tag</a><span class="special">&gt;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Tag</span> <span class="special">=</span> <a class="link" href="tag_types.html#boost_functiontypes.reference.tag_types.null_tag" title="null_tag">null_tag</a><span class="special">&gt;</span>
<span class="keyword">struct</span> <span class="identifier">is_member_pointer</span><span class="special">;</span>
</pre>
<p>
@ -225,9 +219,9 @@
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h4 class="title">
<a name="boost_functiontypes.reference.classification.is_member_object_pointer"></a><a href="classification.html#boost_functiontypes.reference.classification.is_member_object_pointer" title="
is_member_object_pointer">
is_member_object_pointer</a></h4></div></div></div>
<a name="boost_functiontypes.reference.classification.is_member_object_pointer"></a><a class="link" href="classification.html#boost_functiontypes.reference.classification.is_member_object_pointer" title="is_member_object_pointer">
is_member_object_pointer</a>
</h4></div></div></div>
<pre class="programlisting">
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span>
<span class="keyword">struct</span> <span class="identifier">is_member_object_pointer</span><span class="special">;</span>
@ -263,12 +257,11 @@
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h4 class="title">
<a name="boost_functiontypes.reference.classification.is_member_function_pointer"></a><a href="classification.html#boost_functiontypes.reference.classification.is_member_function_pointer" title="
is_member_function_pointer">
is_member_function_pointer</a></h4></div></div></div>
<a name="boost_functiontypes.reference.classification.is_member_function_pointer"></a><a class="link" href="classification.html#boost_functiontypes.reference.classification.is_member_function_pointer" title="is_member_function_pointer">
is_member_function_pointer</a>
</h4></div></div></div>
<pre class="programlisting">
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Tag</span> <span class="special">=</span> <a href="tag_types.html#boost_functiontypes.reference.tag_types.null_tag" title="
null_tag">null_tag</a><span class="special">&gt;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Tag</span> <span class="special">=</span> <a class="link" href="tag_types.html#boost_functiontypes.reference.tag_types.null_tag" title="null_tag">null_tag</a><span class="special">&gt;</span>
<span class="keyword">struct</span> <span class="identifier">is_member_function_pointer</span><span class="special">;</span>
</pre>
<p>
@ -307,12 +300,11 @@
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h4 class="title">
<a name="boost_functiontypes.reference.classification.is_callable_builtin"></a><a href="classification.html#boost_functiontypes.reference.classification.is_callable_builtin" title="
is_callable_builtin">
is_callable_builtin</a></h4></div></div></div>
<a name="boost_functiontypes.reference.classification.is_callable_builtin"></a><a class="link" href="classification.html#boost_functiontypes.reference.classification.is_callable_builtin" title="is_callable_builtin">
is_callable_builtin</a>
</h4></div></div></div>
<pre class="programlisting">
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Tag</span> <span class="special">=</span> <a href="tag_types.html#boost_functiontypes.reference.tag_types.null_tag" title="
null_tag">null_tag</a><span class="special">&gt;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Tag</span> <span class="special">=</span> <a class="link" href="tag_types.html#boost_functiontypes.reference.tag_types.null_tag" title="null_tag">null_tag</a><span class="special">&gt;</span>
<span class="keyword">struct</span> <span class="identifier">is_callable_builtin</span><span class="special">;</span>
</pre>
<p>
@ -351,12 +343,11 @@
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h4 class="title">
<a name="boost_functiontypes.reference.classification.is_nonmember_callable_builtin"></a><a href="classification.html#boost_functiontypes.reference.classification.is_nonmember_callable_builtin" title="
is_nonmember_callable_builtin">
is_nonmember_callable_builtin</a></h4></div></div></div>
<a name="boost_functiontypes.reference.classification.is_nonmember_callable_builtin"></a><a class="link" href="classification.html#boost_functiontypes.reference.classification.is_nonmember_callable_builtin" title="is_nonmember_callable_builtin">
is_nonmember_callable_builtin</a>
</h4></div></div></div>
<pre class="programlisting">
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Tag</span> <span class="special">=</span> <a href="tag_types.html#boost_functiontypes.reference.tag_types.null_tag" title="
null_tag">null_tag</a><span class="special">&gt;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Tag</span> <span class="special">=</span> <a class="link" href="tag_types.html#boost_functiontypes.reference.tag_types.null_tag" title="null_tag">null_tag</a><span class="special">&gt;</span>
<span class="keyword">struct</span> <span class="identifier">is_nonmember_callable_builtin</span><span class="special">;</span>
</pre>
<p>
@ -397,7 +388,11 @@
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><small>Copyright <20> 2004 -2007 Tobias Schwinger</small></td>
<td align="right"><div class="copyright-footer">Copyright <20> 2004 -2007 Tobias Schwinger<p>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
</p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">

View File

@ -1,24 +1,21 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title> Class templates
for type decomposition</title>
<link rel="stylesheet" href="../../boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
<title>Class templates for type decomposition</title>
<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.73.2">
<link rel="start" href="../../index.html" title="Chapter<65>1.<2E>Boost.FunctionTypes 2.5">
<link rel="up" href="../reference.html" title=" Reference">
<link rel="prev" href="classification.html" title=" Class
templates for type classification">
<link rel="next" href="synthesis.html" title=" Class templates
for type synthesis">
<link rel="up" href="../reference.html" title="Reference">
<link rel="prev" href="classification.html" title="Class templates for type classification">
<link rel="next" href="synthesis.html" title="Class templates for type synthesis">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../index.htm">Home</a></td>
<td align="center"><a href="../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../libraries.htm">Libraries</a></td>
<td align="center"><a href="../../../../../../people/people.htm">People</a></td>
<td align="center"><a href="../../../../../../more/faq.htm">FAQ</a></td>
<td align="center"><a href="http://www.boost.org/people/people.htm">People</a></td>
<td align="center"><a href="http://www.boost.org/more/faq.htm">FAQ</a></td>
<td align="center"><a href="../../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
@ -27,9 +24,9 @@
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_functiontypes.reference.decomposition"></a><a href="decomposition.html" title=" Class templates
for type decomposition"> Class templates
for type decomposition</a></h3></div></div></div>
<a name="boost_functiontypes.reference.decomposition"></a><a class="link" href="decomposition.html" title="Class templates for type decomposition"> Class templates
for type decomposition</a>
</h3></div></div></div>
<div class="toc"><dl>
<dt><span class="section"><a href="decomposition.html#boost_functiontypes.reference.decomposition.result_type">
result_type</a></span></dt>
@ -42,9 +39,9 @@
</dl></div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h4 class="title">
<a name="boost_functiontypes.reference.decomposition.result_type"></a><a href="decomposition.html#boost_functiontypes.reference.decomposition.result_type" title="
result_type">
result_type</a></h4></div></div></div>
<a name="boost_functiontypes.reference.decomposition.result_type"></a><a class="link" href="decomposition.html#boost_functiontypes.reference.decomposition.result_type" title="result_type">
result_type</a>
</h4></div></div></div>
<pre class="programlisting">
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">F</span><span class="special">&gt;</span>
<span class="keyword">struct</span> <span class="identifier">result_type</span><span class="special">;</span>
@ -78,9 +75,9 @@
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h4 class="title">
<a name="boost_functiontypes.reference.decomposition.parameter_types"></a><a href="decomposition.html#boost_functiontypes.reference.decomposition.parameter_types" title="
parameter_types">
parameter_types</a></h4></div></div></div>
<a name="boost_functiontypes.reference.decomposition.parameter_types"></a><a class="link" href="decomposition.html#boost_functiontypes.reference.decomposition.parameter_types" title="parameter_types">
parameter_types</a>
</h4></div></div></div>
<pre class="programlisting">
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">F</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">ClassTransform</span> <span class="special">=</span> <span class="identifier">add_reference</span><span class="special">&lt;</span><span class="identifier">_</span><span class="special">&gt;</span> <span class="special">&gt;</span>
<span class="keyword">struct</span> <span class="identifier">parameter_types</span><span class="special">;</span>
@ -124,9 +121,9 @@
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h4 class="title">
<a name="boost_functiontypes.reference.decomposition.function_arity"></a><a href="decomposition.html#boost_functiontypes.reference.decomposition.function_arity" title="
function_arity">
function_arity</a></h4></div></div></div>
<a name="boost_functiontypes.reference.decomposition.function_arity"></a><a class="link" href="decomposition.html#boost_functiontypes.reference.decomposition.function_arity" title="function_arity">
function_arity</a>
</h4></div></div></div>
<pre class="programlisting">
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">F</span><span class="special">&gt;</span>
<span class="keyword">struct</span> <span class="identifier">function_arity</span><span class="special">;</span>
@ -169,9 +166,9 @@
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h4 class="title">
<a name="boost_functiontypes.reference.decomposition.components"></a><a href="decomposition.html#boost_functiontypes.reference.decomposition.components" title="
components">
components</a></h4></div></div></div>
<a name="boost_functiontypes.reference.decomposition.components"></a><a class="link" href="decomposition.html#boost_functiontypes.reference.decomposition.components" title="components">
components</a>
</h4></div></div></div>
<pre class="programlisting">
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">ClassTransform</span> <span class="special">=</span> <span class="identifier">add_reference</span><span class="special">&lt;</span><span class="identifier">_</span><span class="special">&gt;</span> <span class="special">&gt;</span>
<span class="keyword">struct</span> <span class="identifier">components</span><span class="special">;</span>
@ -216,14 +213,17 @@
</p>
<p>
If <code class="literal">T</code> is no callable builtin type, the component types
are an empty sequence and the Tag's meaning is equivalent to the <code class="literal"><a href="tag_types.html#boost_functiontypes.reference.tag_types.null_tag" title="
null_tag">null_tag</a></code>.
are an empty sequence and the Tag's meaning is equivalent to the <code class="literal"><a class="link" href="tag_types.html#boost_functiontypes.reference.tag_types.null_tag" title="null_tag">null_tag</a></code>.
</p>
</div>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><small>Copyright <20> 2004 -2007 Tobias Schwinger</small></td>
<td align="right"><div class="copyright-footer">Copyright <20> 2004 -2007 Tobias Schwinger<p>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
</p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">

View File

@ -1,21 +1,21 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title> Macros</title>
<link rel="stylesheet" href="../../boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
<title>Macros</title>
<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.73.2">
<link rel="start" href="../../index.html" title="Chapter<65>1.<2E>Boost.FunctionTypes 2.5">
<link rel="up" href="../reference.html" title=" Reference">
<link rel="prev" href="tag_types.html" title=" Tag Types">
<link rel="next" href="../rationale.html" title=" Rationale">
<link rel="up" href="../reference.html" title="Reference">
<link rel="prev" href="tag_types.html" title="Tag Types">
<link rel="next" href="../rationale.html" title="Rationale">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../index.htm">Home</a></td>
<td align="center"><a href="../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../libraries.htm">Libraries</a></td>
<td align="center"><a href="../../../../../../people/people.htm">People</a></td>
<td align="center"><a href="../../../../../../more/faq.htm">FAQ</a></td>
<td align="center"><a href="http://www.boost.org/people/people.htm">People</a></td>
<td align="center"><a href="http://www.boost.org/more/faq.htm">FAQ</a></td>
<td align="center"><a href="../../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
@ -24,7 +24,8 @@
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_functiontypes.reference.macros"></a><a href="macros.html" title=" Macros"> Macros</a></h3></div></div></div>
<a name="boost_functiontypes.reference.macros"></a><a class="link" href="macros.html" title="Macros"> Macros</a>
</h3></div></div></div>
<div class="toc"><dl>
<dt><span class="section"><a href="macros.html#boost_functiontypes.reference.macros.BOOST_FT_MAX_ARITY">
BOOST_FT_MAX_ARITY</a></span></dt>
@ -47,9 +48,9 @@
</dl></div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h4 class="title">
<a name="boost_functiontypes.reference.macros.BOOST_FT_MAX_ARITY"></a><a href="macros.html#boost_functiontypes.reference.macros.BOOST_FT_MAX_ARITY" title="
BOOST_FT_MAX_ARITY">
BOOST_FT_MAX_ARITY</a></h4></div></div></div>
<a name="boost_functiontypes.reference.macros.BOOST_FT_MAX_ARITY"></a><a class="link" href="macros.html#boost_functiontypes.reference.macros.BOOST_FT_MAX_ARITY" title="BOOST_FT_MAX_ARITY">
BOOST_FT_MAX_ARITY</a>
</h4></div></div></div>
<p>
Expands to a numeric value that describes the maximum function arity supported
by the library.
@ -66,17 +67,16 @@
</p>
<div class="section" lang="en">
<div class="titlepage"><div><div><h4 class="title">
<a name="boost_functiontypes.reference.macros.BOOST_FT_CC_NAMES"></a><a href="macros.html#boost_functiontypes.reference.macros.BOOST_FT_CC_NAMES" title="
BOOST_FT_CC_NAMES">
BOOST_FT_CC_NAMES</a></h4></div></div></div>
<a name="boost_functiontypes.reference.macros.BOOST_FT_CC_NAMES"></a><a class="link" href="macros.html#boost_functiontypes.reference.macros.BOOST_FT_CC_NAMES" title="BOOST_FT_CC_NAMES">
BOOST_FT_CC_NAMES</a>
</h4></div></div></div>
<p>
Expands to a <a href="../../../../../preprocessor/doc/data/sequences.html" target="_top">sequence</a>
of ternary <a href="../../../../../preprocessor/doc/data/tuples.html" target="_top">tuples</a>
(these data types are defined in the <a href="../../../../../preprocessor/doc/index.html" target="_top">documentation
of the Boost Preprocessor library</a>). Each sequence element describes
one calling convention specifier. The first element in each tuple is the
macro suffix for <a href="macros.html#boost_functiontypes.reference.macros.BOOST_FT_CC" title="
BOOST_FT_CC_*"><code class="literal">BOOST_FT_CC_*</code></a>,
macro suffix for <a class="link" href="macros.html#boost_functiontypes.reference.macros.BOOST_FT_CC" title="BOOST_FT_CC_*"><code class="literal">BOOST_FT_CC_*</code></a>,
the second element is the name of the tag that describes the calling convention
and the third is the name of the specifier. The specifier is allowed to
be an empty string, so the third tuple element is either <a href="../../../../../preprocessor/doc/ref/empty.html" target="_top"><code class="literal">BOOST_PP_EMPTY</code></a>
@ -106,15 +106,13 @@
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h4 class="title">
<a name="boost_functiontypes.reference.macros.BOOST_FT_CC"></a><a href="macros.html#boost_functiontypes.reference.macros.BOOST_FT_CC" title="
BOOST_FT_CC_*">
BOOST_FT_CC_*</a></h4></div></div></div>
<a name="boost_functiontypes.reference.macros.BOOST_FT_CC"></a><a class="link" href="macros.html#boost_functiontypes.reference.macros.BOOST_FT_CC" title="BOOST_FT_CC_*">
BOOST_FT_CC_*</a>
</h4></div></div></div>
<p>
Enables a specific calling convention. * dentoes the macro suffix, as defined
by <a href="macros.html#boost_functiontypes.reference.macros.BOOST_FT_CC_NAMES" title="
BOOST_FT_CC_NAMES"><code class="literal">BOOST_FT_CC_NAMES</code></a>
or <a href="macros.html#boost_functiontypes.reference.macros.BOOST_FT_CC_NAMES" title="
BOOST_FT_CC_NAMES"><code class="literal">BOOST_FT_BUILTIN_CC_NAMES</code></a>.
Enables a specific calling convention. * denotes the macro suffix, as defined
by <a class="link" href="macros.html#boost_functiontypes.reference.macros.BOOST_FT_CC_NAMES" title="BOOST_FT_CC_NAMES"><code class="literal">BOOST_FT_CC_NAMES</code></a>
or <a class="link" href="macros.html#boost_functiontypes.reference.macros.BOOST_FT_CC_NAMES" title="BOOST_FT_CC_NAMES"><code class="literal">BOOST_FT_BUILTIN_CC_NAMES</code></a>.
</p>
<p>
The macro expands to a list of restrictions, separated by the <code class="literal">|</code>
@ -149,9 +147,9 @@
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h4 class="title">
<a name="boost_functiontypes.reference.macros.BOOST_FT_COMMON_X86_CCs"></a><a href="macros.html#boost_functiontypes.reference.macros.BOOST_FT_COMMON_X86_CCs" title="
BOOST_FT_COMMON_X86_CCs">
BOOST_FT_COMMON_X86_CCs</a></h4></div></div></div>
<a name="boost_functiontypes.reference.macros.BOOST_FT_COMMON_X86_CCs"></a><a class="link" href="macros.html#boost_functiontypes.reference.macros.BOOST_FT_COMMON_X86_CCs" title="BOOST_FT_COMMON_X86_CCs">
BOOST_FT_COMMON_X86_CCs</a>
</h4></div></div></div>
<p>
Defining this macro causes the following macros to be defined, if not defined
already:
@ -164,9 +162,9 @@
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h4 class="title">
<a name="boost_functiontypes.reference.macros.BOOST_FT_SYNTAX"></a><a href="macros.html#boost_functiontypes.reference.macros.BOOST_FT_SYNTAX" title="
BOOST_FT_SYNTAX">
BOOST_FT_SYNTAX</a></h4></div></div></div>
<a name="boost_functiontypes.reference.macros.BOOST_FT_SYNTAX"></a><a class="link" href="macros.html#boost_functiontypes.reference.macros.BOOST_FT_SYNTAX" title="BOOST_FT_SYNTAX">
BOOST_FT_SYNTAX</a>
</h4></div></div></div>
<p>
This macro allows to change the syntax of callable builtin types. It is
useful to handle the compiler specific placement of the calling convention
@ -182,9 +180,9 @@
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h4 class="title">
<a name="boost_functiontypes.reference.macros.BOOST_FT_NULLARY_PARAM"></a><a href="macros.html#boost_functiontypes.reference.macros.BOOST_FT_NULLARY_PARAM" title="
BOOST_FT_NULLARY_PARAM">
BOOST_FT_NULLARY_PARAM</a></h4></div></div></div>
<a name="boost_functiontypes.reference.macros.BOOST_FT_NULLARY_PARAM"></a><a class="link" href="macros.html#boost_functiontypes.reference.macros.BOOST_FT_NULLARY_PARAM" title="BOOST_FT_NULLARY_PARAM">
BOOST_FT_NULLARY_PARAM</a>
</h4></div></div></div>
<p>
Set to <code class="literal">void</code> for compilers that insist on a <code class="literal">void</code>
parameter for nullary function types, empty by default.
@ -192,9 +190,9 @@
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h4 class="title">
<a name="boost_functiontypes.reference.macros.BOOST_FT_NO_CV_FUNC_SUPPORT"></a><a href="macros.html#boost_functiontypes.reference.macros.BOOST_FT_NO_CV_FUNC_SUPPORT" title="
BOOST_FT_NO_CV_FUNC_SUPPORT">
BOOST_FT_NO_CV_FUNC_SUPPORT</a></h4></div></div></div>
<a name="boost_functiontypes.reference.macros.BOOST_FT_NO_CV_FUNC_SUPPORT"></a><a class="link" href="macros.html#boost_functiontypes.reference.macros.BOOST_FT_NO_CV_FUNC_SUPPORT" title="BOOST_FT_NO_CV_FUNC_SUPPORT">
BOOST_FT_NO_CV_FUNC_SUPPORT</a>
</h4></div></div></div>
<p>
Disables support for cv-qualified function types. Cv-qualified function
types are illegal by the current standard version, but there is a pending
@ -209,9 +207,9 @@
</p>
<div class="section" lang="en">
<div class="titlepage"><div><div><h4 class="title">
<a name="boost_functiontypes.reference.macros.BOOST_FT_PREPROCESSING_MODE"></a><a href="macros.html#boost_functiontypes.reference.macros.BOOST_FT_PREPROCESSING_MODE" title="
BOOST_FT_PREPROCESSING_MODE">
BOOST_FT_PREPROCESSING_MODE</a></h4></div></div></div>
<a name="boost_functiontypes.reference.macros.BOOST_FT_PREPROCESSING_MODE"></a><a class="link" href="macros.html#boost_functiontypes.reference.macros.BOOST_FT_PREPROCESSING_MODE" title="BOOST_FT_PREPROCESSING_MODE">
BOOST_FT_PREPROCESSING_MODE</a>
</h4></div></div></div>
<p>
Makes the compiler preprocess as much as possible of the library code (rather
than loading already-preprocessed header files) if defined.
@ -219,24 +217,27 @@
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h4 class="title">
<a name="boost_functiontypes.reference.macros.BOOST_FT_CC_PREPROCESSING"></a><a href="macros.html#boost_functiontypes.reference.macros.BOOST_FT_CC_PREPROCESSING" title="
BOOST_FT_CC_PREPROCESSING">
BOOST_FT_CC_PREPROCESSING</a></h4></div></div></div>
<a name="boost_functiontypes.reference.macros.BOOST_FT_CC_PREPROCESSING"></a><a class="link" href="macros.html#boost_functiontypes.reference.macros.BOOST_FT_CC_PREPROCESSING" title="BOOST_FT_CC_PREPROCESSING">
BOOST_FT_CC_PREPROCESSING</a>
</h4></div></div></div>
<p>
Makes the compiler preprocess the loop over possible names for custom calling
conventions (rather than loading an already-preprocessed header file) if
defined.
</p>
<p>
This macro is defined automatically if <a href="macros.html#boost_functiontypes.reference.macros.BOOST_FT_CC_NAMES" title="
BOOST_FT_CC_NAMES"><code class="literal">BOOST_FT_CC_NAMES</code></a>
This macro is defined automatically if <a class="link" href="macros.html#boost_functiontypes.reference.macros.BOOST_FT_CC_NAMES" title="BOOST_FT_CC_NAMES"><code class="literal">BOOST_FT_CC_NAMES</code></a>
has been defined.
</p>
</div>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><small>Copyright <20> 2004 -2007 Tobias Schwinger</small></td>
<td align="right"><div class="copyright-footer">Copyright <20> 2004 -2007 Tobias Schwinger<p>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
</p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">

View File

@ -1,23 +1,21 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title> Class templates
for type synthesis</title>
<link rel="stylesheet" href="../../boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
<title>Class templates for type synthesis</title>
<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.73.2">
<link rel="start" href="../../index.html" title="Chapter<65>1.<2E>Boost.FunctionTypes 2.5">
<link rel="up" href="../reference.html" title=" Reference">
<link rel="prev" href="decomposition.html" title=" Class templates
for type decomposition">
<link rel="next" href="tag_types.html" title=" Tag Types">
<link rel="up" href="../reference.html" title="Reference">
<link rel="prev" href="decomposition.html" title="Class templates for type decomposition">
<link rel="next" href="tag_types.html" title="Tag Types">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../index.htm">Home</a></td>
<td align="center"><a href="../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../libraries.htm">Libraries</a></td>
<td align="center"><a href="../../../../../../people/people.htm">People</a></td>
<td align="center"><a href="../../../../../../more/faq.htm">FAQ</a></td>
<td align="center"><a href="http://www.boost.org/people/people.htm">People</a></td>
<td align="center"><a href="http://www.boost.org/more/faq.htm">FAQ</a></td>
<td align="center"><a href="../../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
@ -26,9 +24,9 @@
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_functiontypes.reference.synthesis"></a><a href="synthesis.html" title=" Class templates
for type synthesis"> Class templates
for type synthesis</a></h3></div></div></div>
<a name="boost_functiontypes.reference.synthesis"></a><a class="link" href="synthesis.html" title="Class templates for type synthesis"> Class templates
for type synthesis</a>
</h3></div></div></div>
<div class="toc"><dl>
<dt><span class="section"><a href="synthesis.html#boost_functiontypes.reference.synthesis.function_type">
function_type</a></span></dt>
@ -41,12 +39,11 @@
</dl></div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h4 class="title">
<a name="boost_functiontypes.reference.synthesis.function_type"></a><a href="synthesis.html#boost_functiontypes.reference.synthesis.function_type" title="
function_type">
function_type</a></h4></div></div></div>
<a name="boost_functiontypes.reference.synthesis.function_type"></a><a class="link" href="synthesis.html#boost_functiontypes.reference.synthesis.function_type" title="function_type">
function_type</a>
</h4></div></div></div>
<pre class="programlisting">
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Types</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Tag</span> <span class="special">=</span> <a href="tag_types.html#boost_functiontypes.reference.tag_types.null_tag" title="
null_tag">null_tag</a><span class="special">&gt;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Types</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Tag</span> <span class="special">=</span> <a class="link" href="tag_types.html#boost_functiontypes.reference.tag_types.null_tag" title="null_tag">null_tag</a><span class="special">&gt;</span>
<span class="keyword">struct</span> <span class="identifier">function_type</span><span class="special">;</span>
</pre>
<p>
@ -84,12 +81,11 @@
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h4 class="title">
<a name="boost_functiontypes.reference.synthesis.function_pointer"></a><a href="synthesis.html#boost_functiontypes.reference.synthesis.function_pointer" title="
function_pointer">
function_pointer</a></h4></div></div></div>
<a name="boost_functiontypes.reference.synthesis.function_pointer"></a><a class="link" href="synthesis.html#boost_functiontypes.reference.synthesis.function_pointer" title="function_pointer">
function_pointer</a>
</h4></div></div></div>
<pre class="programlisting">
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Types</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Tag</span> <span class="special">=</span> <a href="tag_types.html#boost_functiontypes.reference.tag_types.null_tag" title="
null_tag">null_tag</a><span class="special">&gt;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Types</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Tag</span> <span class="special">=</span> <a class="link" href="tag_types.html#boost_functiontypes.reference.tag_types.null_tag" title="null_tag">null_tag</a><span class="special">&gt;</span>
<span class="keyword">struct</span> <span class="identifier">function_pointer</span><span class="special">;</span>
</pre>
<p>
@ -127,12 +123,11 @@
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h4 class="title">
<a name="boost_functiontypes.reference.synthesis.function_reference"></a><a href="synthesis.html#boost_functiontypes.reference.synthesis.function_reference" title="
function_reference">
function_reference</a></h4></div></div></div>
<a name="boost_functiontypes.reference.synthesis.function_reference"></a><a class="link" href="synthesis.html#boost_functiontypes.reference.synthesis.function_reference" title="function_reference">
function_reference</a>
</h4></div></div></div>
<pre class="programlisting">
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Types</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Tag</span> <span class="special">=</span> <a href="tag_types.html#boost_functiontypes.reference.tag_types.null_tag" title="
null_tag">null_tag</a><span class="special">&gt;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Types</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Tag</span> <span class="special">=</span> <a class="link" href="tag_types.html#boost_functiontypes.reference.tag_types.null_tag" title="null_tag">null_tag</a><span class="special">&gt;</span>
<span class="keyword">struct</span> <span class="identifier">function_reference</span><span class="special">;</span>
</pre>
<p>
@ -170,12 +165,11 @@
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h4 class="title">
<a name="boost_functiontypes.reference.synthesis.member_function_pointer"></a><a href="synthesis.html#boost_functiontypes.reference.synthesis.member_function_pointer" title="
member_function_pointer">
member_function_pointer</a></h4></div></div></div>
<a name="boost_functiontypes.reference.synthesis.member_function_pointer"></a><a class="link" href="synthesis.html#boost_functiontypes.reference.synthesis.member_function_pointer" title="member_function_pointer">
member_function_pointer</a>
</h4></div></div></div>
<pre class="programlisting">
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Types</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Tag</span> <span class="special">=</span> <a href="tag_types.html#boost_functiontypes.reference.tag_types.null_tag" title="
null_tag">null_tag</a><span class="special">&gt;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Types</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Tag</span> <span class="special">=</span> <a class="link" href="tag_types.html#boost_functiontypes.reference.tag_types.null_tag" title="null_tag">null_tag</a><span class="special">&gt;</span>
<span class="keyword">struct</span> <span class="identifier">member_function_pointer</span><span class="special">;</span>
</pre>
<p>
@ -220,7 +214,11 @@
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><small>Copyright <20> 2004 -2007 Tobias Schwinger</small></td>
<td align="right"><div class="copyright-footer">Copyright <20> 2004 -2007 Tobias Schwinger<p>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
</p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">

View File

@ -1,22 +1,21 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title> Tag Types</title>
<link rel="stylesheet" href="../../boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
<title>Tag Types</title>
<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.73.2">
<link rel="start" href="../../index.html" title="Chapter<65>1.<2E>Boost.FunctionTypes 2.5">
<link rel="up" href="../reference.html" title=" Reference">
<link rel="prev" href="synthesis.html" title=" Class templates
for type synthesis">
<link rel="next" href="macros.html" title=" Macros">
<link rel="up" href="../reference.html" title="Reference">
<link rel="prev" href="synthesis.html" title="Class templates for type synthesis">
<link rel="next" href="macros.html" title="Macros">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../index.htm">Home</a></td>
<td align="center"><a href="../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../libraries.htm">Libraries</a></td>
<td align="center"><a href="../../../../../../people/people.htm">People</a></td>
<td align="center"><a href="../../../../../../more/faq.htm">FAQ</a></td>
<td align="center"><a href="http://www.boost.org/people/people.htm">People</a></td>
<td align="center"><a href="http://www.boost.org/more/faq.htm">FAQ</a></td>
<td align="center"><a href="../../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
@ -25,7 +24,8 @@
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_functiontypes.reference.tag_types"></a><a href="tag_types.html" title=" Tag Types"> Tag Types</a></h3></div></div></div>
<a name="boost_functiontypes.reference.tag_types"></a><a class="link" href="tag_types.html" title="Tag Types"> Tag Types</a>
</h3></div></div></div>
<div class="toc"><dl>
<dt><span class="section"><a href="tag_types.html#boost_functiontypes.reference.tag_types.variadic">
variadic</a></span></dt>
@ -54,9 +54,9 @@
</dl></div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h4 class="title">
<a name="boost_functiontypes.reference.tag_types.variadic"></a><a href="tag_types.html#boost_functiontypes.reference.tag_types.variadic" title="
variadic">
variadic</a></h4></div></div></div>
<a name="boost_functiontypes.reference.tag_types.variadic"></a><a class="link" href="tag_types.html#boost_functiontypes.reference.tag_types.variadic" title="variadic">
variadic</a>
</h4></div></div></div>
<pre class="programlisting">
<span class="keyword">typedef</span> <span class="emphasis"><em>unspecified</em></span> <span class="identifier">variadic</span><span class="special">;</span>
</pre>
@ -73,9 +73,9 @@
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h4 class="title">
<a name="boost_functiontypes.reference.tag_types.non_variadic"></a><a href="tag_types.html#boost_functiontypes.reference.tag_types.non_variadic" title="
non_variadic">
non_variadic</a></h4></div></div></div>
<a name="boost_functiontypes.reference.tag_types.non_variadic"></a><a class="link" href="tag_types.html#boost_functiontypes.reference.tag_types.non_variadic" title="non_variadic">
non_variadic</a>
</h4></div></div></div>
<pre class="programlisting">
<span class="keyword">typedef</span> <span class="emphasis"><em>unspecified</em></span> <span class="identifier">non_variadic</span><span class="special">;</span>
</pre>
@ -91,9 +91,9 @@
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h4 class="title">
<a name="boost_functiontypes.reference.tag_types.default_cc"></a><a href="tag_types.html#boost_functiontypes.reference.tag_types.default_cc" title="
default_cc">
default_cc</a></h4></div></div></div>
<a name="boost_functiontypes.reference.tag_types.default_cc"></a><a class="link" href="tag_types.html#boost_functiontypes.reference.tag_types.default_cc" title="default_cc">
default_cc</a>
</h4></div></div></div>
<pre class="programlisting">
<span class="keyword">typedef</span> <span class="emphasis"><em>unspecified</em></span> <span class="identifier">default_cc</span><span class="special">;</span>
</pre>
@ -109,9 +109,9 @@
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h4 class="title">
<a name="boost_functiontypes.reference.tag_types.const_qualified"></a><a href="tag_types.html#boost_functiontypes.reference.tag_types.const_qualified" title="
const_qualified">
const_qualified</a></h4></div></div></div>
<a name="boost_functiontypes.reference.tag_types.const_qualified"></a><a class="link" href="tag_types.html#boost_functiontypes.reference.tag_types.const_qualified" title="const_qualified">
const_qualified</a>
</h4></div></div></div>
<pre class="programlisting">
<span class="keyword">typedef</span> <span class="emphasis"><em>unspecified</em></span> <span class="identifier">const_qualified</span><span class="special">;</span>
</pre>
@ -127,9 +127,9 @@
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h4 class="title">
<a name="boost_functiontypes.reference.tag_types.non_const"></a><a href="tag_types.html#boost_functiontypes.reference.tag_types.non_const" title="
non_const">
non_const</a></h4></div></div></div>
<a name="boost_functiontypes.reference.tag_types.non_const"></a><a class="link" href="tag_types.html#boost_functiontypes.reference.tag_types.non_const" title="non_const">
non_const</a>
</h4></div></div></div>
<pre class="programlisting">
<span class="keyword">typedef</span> <span class="emphasis"><em>unspecified</em></span> <span class="identifier">non_const</span><span class="special">;</span>
</pre>
@ -145,9 +145,9 @@
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h4 class="title">
<a name="boost_functiontypes.reference.tag_types.volatile_qualified"></a><a href="tag_types.html#boost_functiontypes.reference.tag_types.volatile_qualified" title="
volatile_qualified">
volatile_qualified</a></h4></div></div></div>
<a name="boost_functiontypes.reference.tag_types.volatile_qualified"></a><a class="link" href="tag_types.html#boost_functiontypes.reference.tag_types.volatile_qualified" title="volatile_qualified">
volatile_qualified</a>
</h4></div></div></div>
<pre class="programlisting">
<span class="keyword">typedef</span> <span class="emphasis"><em>unspecified</em></span> <span class="identifier">volatile_qualified</span><span class="special">;</span>
</pre>
@ -163,9 +163,9 @@
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h4 class="title">
<a name="boost_functiontypes.reference.tag_types.non_volatile"></a><a href="tag_types.html#boost_functiontypes.reference.tag_types.non_volatile" title="
non_volatile">
non_volatile</a></h4></div></div></div>
<a name="boost_functiontypes.reference.tag_types.non_volatile"></a><a class="link" href="tag_types.html#boost_functiontypes.reference.tag_types.non_volatile" title="non_volatile">
non_volatile</a>
</h4></div></div></div>
<pre class="programlisting">
<span class="keyword">typedef</span> <span class="emphasis"><em>unspecified</em></span> <span class="identifier">non_volatile</span><span class="special">;</span>
</pre>
@ -181,7 +181,8 @@
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h4 class="title">
<a name="boost_functiontypes.reference.tag_types.non_cv"></a><a href="tag_types.html#boost_functiontypes.reference.tag_types.non_cv" title=" non_cv"> non_cv</a></h4></div></div></div>
<a name="boost_functiontypes.reference.tag_types.non_cv"></a><a class="link" href="tag_types.html#boost_functiontypes.reference.tag_types.non_cv" title="non_cv"> non_cv</a>
</h4></div></div></div>
<pre class="programlisting">
<span class="keyword">typedef</span> <span class="emphasis"><em>unspecified</em></span> <span class="identifier">non_cv</span><span class="special">;</span>
</pre>
@ -199,9 +200,9 @@
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h4 class="title">
<a name="boost_functiontypes.reference.tag_types.const_non_volatile"></a><a href="tag_types.html#boost_functiontypes.reference.tag_types.const_non_volatile" title="
const_non_volatile">
const_non_volatile</a></h4></div></div></div>
<a name="boost_functiontypes.reference.tag_types.const_non_volatile"></a><a class="link" href="tag_types.html#boost_functiontypes.reference.tag_types.const_non_volatile" title="const_non_volatile">
const_non_volatile</a>
</h4></div></div></div>
<pre class="programlisting">
<span class="keyword">typedef</span> <span class="emphasis"><em>unspecified</em></span> <span class="identifier">const_non_volatile</span><span class="special">;</span>
</pre>
@ -219,9 +220,9 @@
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h4 class="title">
<a name="boost_functiontypes.reference.tag_types.volatile_non_const"></a><a href="tag_types.html#boost_functiontypes.reference.tag_types.volatile_non_const" title="
volatile_non_const">
volatile_non_const</a></h4></div></div></div>
<a name="boost_functiontypes.reference.tag_types.volatile_non_const"></a><a class="link" href="tag_types.html#boost_functiontypes.reference.tag_types.volatile_non_const" title="volatile_non_const">
volatile_non_const</a>
</h4></div></div></div>
<pre class="programlisting">
<span class="keyword">typedef</span> <span class="emphasis"><em>unspecified</em></span> <span class="identifier">volatile_non_const</span><span class="special">;</span>
</pre>
@ -239,9 +240,9 @@
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h4 class="title">
<a name="boost_functiontypes.reference.tag_types.cv_qualfied"></a><a href="tag_types.html#boost_functiontypes.reference.tag_types.cv_qualfied" title="
cv_qualfied">
cv_qualfied</a></h4></div></div></div>
<a name="boost_functiontypes.reference.tag_types.cv_qualfied"></a><a class="link" href="tag_types.html#boost_functiontypes.reference.tag_types.cv_qualfied" title="cv_qualfied">
cv_qualfied</a>
</h4></div></div></div>
<pre class="programlisting">
<span class="keyword">typedef</span> <span class="emphasis"><em>unspecified</em></span> <span class="identifier">cv_qualified</span><span class="special">;</span>
</pre>
@ -259,9 +260,9 @@
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h4 class="title">
<a name="boost_functiontypes.reference.tag_types.null_tag"></a><a href="tag_types.html#boost_functiontypes.reference.tag_types.null_tag" title="
null_tag">
null_tag</a></h4></div></div></div>
<a name="boost_functiontypes.reference.tag_types.null_tag"></a><a class="link" href="tag_types.html#boost_functiontypes.reference.tag_types.null_tag" title="null_tag">
null_tag</a>
</h4></div></div></div>
<pre class="programlisting">
<span class="keyword">typedef</span> <span class="emphasis"><em>unspecified</em></span> <span class="identifier">null_tag</span><span class="special">;</span>
</pre>
@ -277,7 +278,8 @@
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h4 class="title">
<a name="boost_functiontypes.reference.tag_types.tag"></a><a href="tag_types.html#boost_functiontypes.reference.tag_types.tag" title=" tag"> tag</a></h4></div></div></div>
<a name="boost_functiontypes.reference.tag_types.tag"></a><a class="link" href="tag_types.html#boost_functiontypes.reference.tag_types.tag" title="tag"> tag</a>
</h4></div></div></div>
<pre class="programlisting">
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">Tag1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Tag2</span><span class="special">,</span>
<span class="keyword">class</span> <span class="identifier">Tag3</span> <span class="special">=</span> <span class="identifier">null_tag</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Tag4</span> <span class="special">=</span> <span class="identifier">null_tag</span><span class="special">&gt;</span>
@ -310,7 +312,11 @@
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><small>Copyright <20> 2004 -2007 Tobias Schwinger</small></td>
<td align="right"><div class="copyright-footer">Copyright <20> 2004 -2007 Tobias Schwinger<p>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
</p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">

View File

@ -1,21 +1,21 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title> Use Cases</title>
<link rel="stylesheet" href="../boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
<title>Use Cases</title>
<link rel="stylesheet" href="../../../../../doc/html/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.73.2">
<link rel="start" href="../index.html" title="Chapter<65>1.<2E>Boost.FunctionTypes 2.5">
<link rel="up" href="../index.html" title="Chapter<65>1.<2E>Boost.FunctionTypes 2.5">
<link rel="prev" href="introduction.html" title=" Introduction">
<link rel="next" href="about_tag_types.html" title=" About Tag Types">
<link rel="prev" href="introduction.html" title="Introduction">
<link rel="next" href="about_tag_types.html" title="About Tag Types">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td>
<td align="center"><a href="../../../../../index.htm">Home</a></td>
<td align="center"><a href="../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../libraries.htm">Libraries</a></td>
<td align="center"><a href="../../../../../people/people.htm">People</a></td>
<td align="center"><a href="../../../../../more/faq.htm">FAQ</a></td>
<td align="center"><a href="http://www.boost.org/people/people.htm">People</a></td>
<td align="center"><a href="http://www.boost.org/more/faq.htm">FAQ</a></td>
<td align="center"><a href="../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
@ -24,7 +24,8 @@
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
<a name="boost_functiontypes.use_cases"></a><a href="use_cases.html" title=" Use Cases"> Use Cases</a></h2></div></div></div>
<a name="boost_functiontypes.use_cases"></a><a class="link" href="use_cases.html" title="Use Cases"> Use Cases</a>
</h2></div></div></div>
<p>
Generic libraries that accept callable arguments are common in C++. Accepting
a callable argument of builin type often involves a lot of repetitive code
@ -143,8 +144,7 @@
arguments from a type sequence in a single expression:
</p>
<pre class="programlisting">
<span class="keyword">static_cast</span><span class="special">&lt;</span><a href="reference/synthesis.html#boost_functiontypes.reference.synthesis.function_pointer" title="
function_pointer">function_pointer</a><span class="special">&lt;</span><span class="identifier">Seq</span><span class="special">&gt;::</span><span class="identifier">type</span><span class="special">&gt;(&amp;</span> <span class="identifier">overloaded</span><span class="special">)</span>
<span class="keyword">static_cast</span><span class="special">&lt;</span><a class="link" href="reference/synthesis.html#boost_functiontypes.reference.synthesis.function_pointer" title="function_pointer">function_pointer</a><span class="special">&lt;</span><span class="identifier">Seq</span><span class="special">&gt;::</span><span class="identifier">type</span><span class="special">&gt;(&amp;</span> <span class="identifier">overloaded</span><span class="special">)</span>
</pre>
<p>
This technique can be occasionally more flexible than template argument deduction
@ -165,7 +165,11 @@
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><small>Copyright <20> 2004 -2007 Tobias Schwinger</small></td>
<td align="right"><div class="copyright-footer">Copyright <20> 2004 -2007 Tobias Schwinger<p>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
</p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">

View File

@ -1,528 +0,0 @@
/*=============================================================================
Copyright (c) 2004 Joel de Guzman
http://spirit.sourceforge.net/
Use, modification and distribution is subject to 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)
=============================================================================*/
/*=============================================================================
Body defaults
=============================================================================*/
body
{
margin: 1em;
font-family: sans-serif;
}
/*=============================================================================
Paragraphs
=============================================================================*/
p
{
text-align: left;
font-size: 10pt;
line-height: 1.15;
}
/*=============================================================================
Program listings
=============================================================================*/
/* Code on paragraphs */
p tt.computeroutput
{
font-size: 9pt;
}
pre.synopsis
{
font-size: 90%;
margin: 1pc 4% 0pc 4%;
padding: 0.5pc 0.5pc 0.5pc 0.5pc;
}
.programlisting,
.screen
{
font-size: 9pt;
display: block;
margin: 1pc 4% 0pc 4%;
padding: 0.5pc 0.5pc 0.5pc 0.5pc;
}
/* Program listings in tables don't get borders */
td .programlisting,
td .screen
{
margin: 0pc 0pc 0pc 0pc;
padding: 0pc 0pc 0pc 0pc;
}
/*=============================================================================
Headings
=============================================================================*/
h1, h2, h3, h4, h5, h6
{
text-align: left;
margin: 1em 0em 0.5em 0em;
font-weight: bold;
}
h1 { font: 140% }
h2 { font: bold 140% }
h3 { font: bold 130% }
h4 { font: bold 120% }
h5 { font: italic 110% }
h6 { font: italic 100% }
/* Top page titles */
title,
h1.title,
h2.title
h3.title,
h4.title,
h5.title,
h6.title,
.refentrytitle
{
font-weight: bold;
margin-bottom: 1pc;
}
h1.title { font-size: 140% }
h2.title { font-size: 140% }
h3.title { font-size: 130% }
h4.title { font-size: 120% }
h5.title { font-size: 110% }
h6.title { font-size: 100% }
.section h1
{
margin: 0em 0em 0.5em 0em;
font-size: 140%;
}
.section h2 { font-size: 140% }
.section h3 { font-size: 130% }
.section h4 { font-size: 120% }
.section h5 { font-size: 110% }
.section h6 { font-size: 100% }
/* Code on titles */
h1 tt.computeroutput { font-size: 140% }
h2 tt.computeroutput { font-size: 140% }
h3 tt.computeroutput { font-size: 130% }
h4 tt.computeroutput { font-size: 120% }
h5 tt.computeroutput { font-size: 110% }
h6 tt.computeroutput { font-size: 100% }
/*=============================================================================
Author
=============================================================================*/
h3.author
{
font-size: 100%
}
/*=============================================================================
Lists
=============================================================================*/
li
{
font-size: 10pt;
line-height: 1.3;
}
/* Unordered lists */
ul
{
text-align: left;
}
/* Ordered lists */
ol
{
text-align: left;
}
/*=============================================================================
Links
=============================================================================*/
a
{
text-decoration: none; /* no underline */
}
a:hover
{
text-decoration: underline;
}
/*=============================================================================
Spirit style navigation
=============================================================================*/
.spirit-nav
{
text-align: right;
}
.spirit-nav a
{
color: white;
padding-left: 0.5em;
}
.spirit-nav img
{
border-width: 0px;
}
/*=============================================================================
Table of contents
=============================================================================*/
.toc
{
margin: 1pc 4% 0pc 4%;
padding: 0.1pc 1pc 0.1pc 1pc;
font-size: 80%;
line-height: 1.15;
}
.boost-toc
{
float: right;
padding: 0.5pc;
}
/*=============================================================================
Tables
=============================================================================*/
.table-title,
div.table p.title
{
margin-left: 4%;
padding-right: 0.5em;
padding-left: 0.5em;
}
.informaltable table,
.table table
{
width: 92%;
margin-left: 4%;
margin-right: 4%;
}
div.informaltable table,
div.table table
{
padding: 4px;
}
/* Table Cells */
div.informaltable table tr td,
div.table table tr td
{
padding: 0.5em;
text-align: left;
font-size: 9pt;
}
div.informaltable table tr th,
div.table table tr th
{
padding: 0.5em 0.5em 0.5em 0.5em;
border: 1pt solid white;
font-size: 80%;
}
/*=============================================================================
Blurbs
=============================================================================*/
div.note,
div.tip,
div.important,
div.caution,
div.warning,
div.sidebar
{
font-size: 9pt; /* A little bit smaller than the main text */
line-height: 1.2;
display: block;
margin: 1pc 4% 0pc 4%;
padding: 0.5pc 0.5pc 0.0pc 0.5pc;
}
div.sidebar img
{
padding: 1pt;
}
/*=============================================================================
Callouts
=============================================================================*/
.line_callout_bug img
{
float: left;
position:relative;
left: 4px;
top: -12px;
clear: left;
margin-left:-22px;
}
.callout_bug img
{
}
/*=============================================================================
Variable Lists
=============================================================================*/
/* Make the terms in definition lists bold */
div.variablelist dl dt,
span.term
{
font-weight: bold;
font-size: 10pt;
}
div.variablelist table tbody tr td
{
text-align: left;
vertical-align: top;
padding: 0em 2em 0em 0em;
font-size: 10pt;
margin: 0em 0em 0.5em 0em;
line-height: 1;
}
div.variablelist dl dt
{
margin-bottom: 0.2em;
}
div.variablelist dl dd
{
margin: 0em 0em 0.5em 2em;
font-size: 10pt;
}
div.variablelist table tbody tr td p,
div.variablelist dl dd p
{
margin: 0em 0em 0.5em 0em;
line-height: 1;
}
/*=============================================================================
Misc
=============================================================================*/
/* Title of books and articles in bibliographies */
span.title
{
font-style: italic;
}
span.underline
{
text-decoration: underline;
}
span.strikethrough
{
text-decoration: line-through;
}
/* Copyright, Legal Notice */
div div.legalnotice p
{
text-align: left
}
/*=============================================================================
Colors
=============================================================================*/
@media screen
{
/* Links */
a
{
color: #005a9c;
}
a:visited
{
color: #9c5a9c;
}
h1 a, h2 a, h3 a, h4 a, h5 a, h6 a,
h1 a:hover, h2 a:hover, h3 a:hover, h4 a:hover, h5 a:hover, h6 a:hover,
h1 a:visited, h2 a:visited, h3 a:visited, h4 a:visited, h5 a:visited, h6 a:visited
{
text-decoration: none; /* no underline */
color: #000000;
}
/* Syntax Highlighting */
.keyword { color: #0000AA; }
.identifier { color: #000000; }
.special { color: #707070; }
.preprocessor { color: #402080; }
.char { color: teal; }
.comment { color: #800000; }
.string { color: teal; }
.number { color: teal; }
.white_bkd { background-color: #FFFFFF; }
.dk_grey_bkd { background-color: #999999; }
/* Copyright, Legal Notice */
.copyright
{
color: #666666;
font-size: small;
}
div div.legalnotice p
{
color: #666666;
}
/* Program listing */
pre.synopsis
{
border: 1px solid #DCDCDC;
}
.programlisting,
.screen
{
border: 1px solid #DCDCDC;
}
td .programlisting,
td .screen
{
border: 0px solid #DCDCDC;
}
/* Blurbs */
div.note,
div.tip,
div.important,
div.caution,
div.warning,
div.sidebar
{
border: 1px solid #DCDCDC;
}
/* Table of contents */
.toc
{
border: 1px solid #DCDCDC;
}
/* Tables */
div.informaltable table tr td,
div.table table tr td
{
border: 1px solid #DCDCDC;
}
div.informaltable table tr th,
div.table table tr th
{
background-color: #F0F0F0;
border: 1px solid #DCDCDC;
}
/* Misc */
span.highlight
{
color: #00A000;
}
}
@media print
{
/* Links */
a
{
color: black;
}
a:visited
{
color: black;
}
.spirit-nav
{
display: none;
}
/* Program listing */
pre.synopsis
{
border: 1px solid gray;
}
.programlisting,
.screen
{
border: 1px solid gray;
}
td .programlisting,
td .screen
{
border: 0px solid #DCDCDC;
}
/* Table of contents */
.toc
{
border: 1px solid gray;
}
.informaltable table,
.table table
{
border: 1px solid gray;
border-collapse: collapse;
}
/* Tables */
div.informaltable table tr td,
div.table table tr td
{
border: 1px solid gray;
}
div.informaltable table tr th,
div.table table tr th
{
border: 1px solid gray;
}
/* Misc */
span.highlight
{
font-weight: bold;
}
}

View File

@ -2,18 +2,18 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Chapter<EFBFBD>1.<2E>Boost.FunctionTypes 2.5</title>
<link rel="stylesheet" href="boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
<link rel="stylesheet" href="../../../../doc/html/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.73.2">
<link rel="start" href="index.html" title="Chapter<65>1.<2E>Boost.FunctionTypes 2.5">
<link rel="next" href="boost_functiontypes/introduction.html" title=" Introduction">
<link rel="next" href="boost_functiontypes/introduction.html" title="Introduction">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../boost.png"></td>
<td align="center"><a href="../../../../index.htm">Home</a></td>
<td align="center"><a href="../../../../index.html">Home</a></td>
<td align="center"><a href="../../../libraries.htm">Libraries</a></td>
<td align="center"><a href="../../../../people/people.htm">People</a></td>
<td align="center"><a href="../../../../more/faq.htm">FAQ</a></td>
<td align="center"><a href="http://www.boost.org/people/people.htm">People</a></td>
<td align="center"><a href="http://www.boost.org/more/faq.htm">FAQ</a></td>
<td align="center"><a href="../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
@ -27,7 +27,7 @@
</h3></div></div>
<div><p class="copyright">Copyright <20> 2004 -2007 Tobias Schwinger</p></div>
<div><div class="legalnotice">
<a name="id905079"></a><p>
<a name="id2626484"></a><p>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
</p>
@ -46,8 +46,8 @@
</div>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"><p><small>Last revised: May 13, 2007 at 13:12:48 GMT</small></p></td>
<td align="right"><small></small></td>
<td align="left"><p><small>Last revised: March 14, 2008 at 18:36:46 +0000</small></p></td>
<td align="right"><div class="copyright-footer"></div></td>
</tr></table>
<hr>
<div class="spirit-nav"><a accesskey="n" href="boost_functiontypes/introduction.html"><img src="../../../../doc/html/images/next.png" alt="Next"></a></div>

View File

@ -101,7 +101,11 @@ int main()
setup_test(v);
t.restart();
#if !BOOST_WORKAROUND(BOOST_MSVC, < 1400)
do_test(v, BOOST_EXAMPLE_FAST_MEM_FN(& test::id));
#else // MSVC<8 does not like the implementation of the deduction macro:
do_test(v, ::example::fast_mem_fn< int (test::*)() const, & test::id >());
#endif
time1 = t.elapsed();
std::cout << "fast_mem_fn | " << time1 << std::endl;

View File

@ -8,6 +8,7 @@
// See interface.hpp in this directory for details.
#include <iostream>
#include <typeinfo>
#include "interface.hpp"

View File

@ -133,8 +133,9 @@ namespace example
void apply(Function func, token_parser & parser, Args const & args)
{
typedef typename mpl::deref<From>::type arg_type;
typedef typename mpl::next<From>::type next_iter_type;
invoker<Function, typename mpl::next<From>::type, To>::apply
interpreter::invoker<Function, next_iter_type, To>::apply
( func, parser, fusion::push_back(args, parser.get<arg_type>()) );
}
};

View File

@ -120,13 +120,14 @@ namespace boost
template
< typename Components
, typename IfTagged
, typename ThenTag
, typename ThenTag
, typename DefaultBase = components_non_func_base
>
struct retagged_if
: mpl::if_
< detail::represents_impl<Components, IfTagged>
, detail::changed_tag<Components,IfTagged,ThenTag>
, components_non_func_base
, DefaultBase
>::type
{ };
@ -213,14 +214,71 @@ namespace boost
: components_impl<T,L>
{ };
#if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x565))
template<typename T, class C>
struct member_obj_ptr_result
{ typedef T & type; };
template<typename T, class C>
struct member_obj_ptr_result<T, C const>
{ typedef T const & type; };
template<typename T, class C>
struct member_obj_ptr_result<T, C volatile>
{ typedef T volatile & type; };
template<typename T, class C>
struct member_obj_ptr_result<T, C const volatile>
{ typedef T const volatile & type; };
template<typename T, class C>
struct member_obj_ptr_result<T &, C>
{ typedef T & type; };
template<typename T, class C>
struct member_obj_ptr_result<T &, C const>
{ typedef T & type; };
template<typename T, class C>
struct member_obj_ptr_result<T &, C volatile>
{ typedef T & type; };
template<typename T, class C>
struct member_obj_ptr_result<T &, C const volatile>
{ typedef T & type; };
template<typename T, class C, typename L>
struct member_obj_ptr_components
: member_object_pointer_base
{
typedef function_types::components<T C::*, L> type;
typedef components_mpl_sequence_tag tag;
typedef mpl::integral_c<std::size_t,1> function_arity;
typedef mpl::vector2< typename detail::member_obj_ptr_result<T,C>::type,
typename detail::class_transform<C,L>::type > types;
};
#if !BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x565))
# define BOOST_FT_variations BOOST_FT_pointer|BOOST_FT_member_pointer
template<typename T, class C, typename L>
struct components_impl<T C::*, L>
: member_obj_ptr_components<T,C,L>
{ };
#else
# define BOOST_FT_variations BOOST_FT_pointer
// This workaround removes the member pointer from the type to allow
// detection of member function pointers with BCC.
template<typename T, typename C, typename L>
struct components_impl<T C::*, L>
: detail::retagged_if
< detail::components_impl<typename boost::remove_cv<T>::type *, L>
, pointer_tag, /* --> */ member_pointer_tag >
, pointer_tag, /* --> */ member_function_pointer_tag
, member_obj_ptr_components<T,C,L> >
{ };
// BCC lets us test the cv-qualification of a function type by template
@ -349,65 +407,13 @@ namespace boost
struct components_bcc
: mpl::if_
< detail::represents_impl< detail::components_impl<T,L>
, member_pointer_tag>
, member_function_pointer_tag>
, detail::mfp_components<detail::components_impl<T,L>,T,OrigT,L>
, detail::components_impl<T,L>
>::type
{ };
// TODO: add data member support for Borland
# define BOOST_FT_variations BOOST_FT_pointer
#else // end of BORLAND WORKAROUND
# define BOOST_FT_variations BOOST_FT_pointer|BOOST_FT_member_pointer
template<typename T, class C>
struct member_obj_ptr_result
{ typedef T & type; };
template<typename T, class C>
struct member_obj_ptr_result<T, C const>
{ typedef T const & type; };
template<typename T, class C>
struct member_obj_ptr_result<T, C volatile>
{ typedef T volatile & type; };
template<typename T, class C>
struct member_obj_ptr_result<T, C const volatile>
{ typedef T const volatile & type; };
template<typename T, class C>
struct member_obj_ptr_result<T &, C>
{ typedef T & type; };
template<typename T, class C>
struct member_obj_ptr_result<T &, C const>
{ typedef T & type; };
template<typename T, class C>
struct member_obj_ptr_result<T &, C volatile>
{ typedef T & type; };
template<typename T, class C>
struct member_obj_ptr_result<T &, C const volatile>
{ typedef T & type; };
template<typename T, class C, typename L>
struct components_impl<T C::*, L>
: member_object_pointer_base
{
typedef function_types::components<T C::*, L> type;
typedef components_mpl_sequence_tag tag;
typedef mpl::integral_c<std::size_t,1> function_arity;
typedef mpl::vector2< typename detail::member_obj_ptr_result<T,C>::type,
typename detail::class_transform<C,L>::type > types;
};
#endif
#endif // end of BORLAND WORKAROUND
#define BOOST_FT_al_path boost/function_types/detail/components_impl
#include <boost/function_types/detail/pp_loop.hpp>

View File

@ -12,7 +12,8 @@
#include <cstddef>
#include <boost/detail/workaround.hpp>
#if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) || BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564))
#if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \
|| BOOST_WORKAROUND(__BORLANDC__, <= 0x582)
# include <boost/type_traits/remove_cv.hpp>
# include <boost/type_traits/remove_pointer.hpp>
# include <boost/type_traits/remove_reference.hpp>
@ -22,10 +23,8 @@
namespace boost { namespace function_types { namespace detail {
namespace ft = boost::function_types;
#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) && !BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564))
#if ! (defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \
|| BOOST_WORKAROUND(__BORLANDC__, <= 0x582))
template<typename T> struct cv_traits
{ typedef non_cv tag; typedef T type; };
@ -109,12 +108,13 @@ struct cv_code
{
static T _t;
BOOST_STATIC_CONSTANT(std::size_t, value =
sizeof(ft::detail::switch_cv(ft::detail::ref_to_ptr(_t) ) ));
sizeof(::boost::function_types::detail::switch_cv(
::boost::function_types::detail::ref_to_ptr(_t) ) ));
};
template<typename T> struct cv_traits
{
typedef typename ft::detail::cv_tag_impl<
typedef typename boost::function_types::detail::cv_tag_impl<
::boost::function_types::detail::cv_code<T>::value >::type
tag;

View File

@ -81,14 +81,16 @@ BOOST_PP_EXPAND(#) include BOOST_FT_AL_PREPROCESSED
# include <boost/preprocessor/repetition/enum_trailing_params.hpp>
# endif
# define BOOST_FT_AL_INCLUDE_FILE <BOOST_FT_al_path/master.hpp>
# define BOOST_FT_ARITY_LOOP_PREFIX 1
# include BOOST_PP_EXPAND(<BOOST_FT_al_path/master.hpp>)
# include BOOST_FT_AL_INCLUDE_FILE
# undef BOOST_FT_ARITY_LOOP_PREFIX
# if !BOOST_PP_IS_ITERATING
# define BOOST_PP_FILENAME_1 <BOOST_FT_al_path/master.hpp>
# define BOOST_PP_FILENAME_1 BOOST_FT_AL_INCLUDE_FILE
# elif BOOST_PP_ITERATION_DEPTH() == 1
# define BOOST_PP_FILENAME_2 <BOOST_FT_al_path/master.hpp>
# define BOOST_PP_FILENAME_2 BOOST_FT_AL_INCLUDE_FILE
# else
# error "loops nested too deeply"
# endif
@ -133,8 +135,10 @@ BOOST_PP_EXPAND(#) include BOOST_FT_AL_PREPROCESSED
# undef BOOST_FT_type
# define BOOST_FT_ARITY_LOOP_SUFFIX 1
# include BOOST_PP_EXPAND(<BOOST_FT_al_path/master.hpp>)
# include BOOST_FT_AL_INCLUDE_FILE
# undef BOOST_FT_ARITY_LOOP_SUFFIX
# undef BOOST_FT_AL_INCLUDE_FILE
# endif
# undef BOOST_FT_FROM_ARITY

View File

@ -42,7 +42,7 @@
# define BOOST_FT_cc_name implicit_cc
# define BOOST_FT_cc BOOST_PP_EMPTY
# define BOOST_FT_cond callable_builtin
# include BOOST_PP_EXPAND ( <BOOST_FT_cc_file> )
# include BOOST_FT_cc_file
# undef BOOST_FT_cond
# undef BOOST_FT_cc_name
# undef BOOST_FT_cc
@ -54,7 +54,7 @@ BOOST_PP_EXPAND(#) define BOOST_FT_cc_name implicit_cc
BOOST_PP_EXPAND(#) define BOOST_FT_cc BOOST_PP_EMPTY
BOOST_PP_EXPAND(#) define BOOST_FT_cond callable_builtin
#define _()
BOOST_PP_EXPAND(#) include BOOST_PP_EXPAND _()( <BOOST_FT_cc_file> )
BOOST_PP_EXPAND(#) include BOOST_FT_cc_file
#undef _
BOOST_PP_EXPAND(#) undef BOOST_FT_cond
BOOST_PP_EXPAND(#) undef BOOST_FT_cc_name
@ -85,7 +85,7 @@ BOOST_PP_EXPAND(#) endif
# if BOOST_FT_cond
# define BOOST_FT_config_valid 1
# include BOOST_PP_EXPAND(<BOOST_FT_cc_file>)
# include BOOST_FT_cc_file
# endif
# undef BOOST_FT_cond
@ -121,7 +121,7 @@ BOOST_PP_EXPAND(#) define BOOST_FT_cond BOOST_FT_cc_cond_v
BOOST_PP_EXPAND(#) if BOOST_FT_cond
BOOST_PP_EXPAND(#) define BOOST_FT_config_valid 1
#define _()
BOOST_PP_EXPAND(#) include BOOST_PP_EXPAND _()(<BOOST_FT_cc_file>)
BOOST_PP_EXPAND(#) include BOOST_FT_cc_file
#undef _
BOOST_PP_EXPAND(#) endif

View File

@ -15,7 +15,7 @@
# define BOOST_FT_cond BOOST_FT_CC_IMPLICIT
# if BOOST_FT_cond
# define BOOST_FT_config_valid 1
# include BOOST_PP_EXPAND ( <BOOST_FT_cc_file> )
# include BOOST_FT_cc_file
# endif
# undef BOOST_FT_cond
# undef BOOST_FT_cc_name
@ -27,7 +27,7 @@
# define BOOST_FT_cond BOOST_FT_CC_CDECL
# if BOOST_FT_cond
# define BOOST_FT_config_valid 1
# include BOOST_PP_EXPAND ( <BOOST_FT_cc_file> )
# include BOOST_FT_cc_file
# endif
# undef BOOST_FT_cond
# undef BOOST_FT_cc_name
@ -39,7 +39,7 @@
# define BOOST_FT_cond BOOST_FT_CC_STDCALL
# if BOOST_FT_cond
# define BOOST_FT_config_valid 1
# include BOOST_PP_EXPAND ( <BOOST_FT_cc_file> )
# include BOOST_FT_cc_file
# endif
# undef BOOST_FT_cond
# undef BOOST_FT_cc_name
@ -51,7 +51,7 @@
# define BOOST_FT_cond BOOST_FT_CC_PASCAL
# if BOOST_FT_cond
# define BOOST_FT_config_valid 1
# include BOOST_PP_EXPAND ( <BOOST_FT_cc_file> )
# include BOOST_FT_cc_file
# endif
# undef BOOST_FT_cond
# undef BOOST_FT_cc_name
@ -63,7 +63,7 @@
# define BOOST_FT_cond BOOST_FT_CC_FASTCALL
# if BOOST_FT_cond
# define BOOST_FT_config_valid 1
# include BOOST_PP_EXPAND ( <BOOST_FT_cc_file> )
# include BOOST_FT_cc_file
# endif
# undef BOOST_FT_cond
# undef BOOST_FT_cc_name
@ -75,7 +75,7 @@
# define BOOST_FT_cond BOOST_FT_CC_CLRCALL
# if BOOST_FT_cond
# define BOOST_FT_config_valid 1
# include BOOST_PP_EXPAND ( <BOOST_FT_cc_file> )
# include BOOST_FT_cc_file
# endif
# undef BOOST_FT_cond
# undef BOOST_FT_cc_name
@ -87,7 +87,7 @@
# define BOOST_FT_cond BOOST_FT_CC_THISCALL
# if BOOST_FT_cond
# define BOOST_FT_config_valid 1
# include BOOST_PP_EXPAND ( <BOOST_FT_cc_file> )
# include BOOST_FT_cc_file
# endif
# undef BOOST_FT_cond
# undef BOOST_FT_cc_name
@ -99,7 +99,7 @@
# define BOOST_FT_cond BOOST_FT_CC_IMPLICIT_THISCALL
# if BOOST_FT_cond
# define BOOST_FT_config_valid 1
# include BOOST_PP_EXPAND ( <BOOST_FT_cc_file> )
# include BOOST_FT_cc_file
# endif
# undef BOOST_FT_cond
# undef BOOST_FT_cc_name
@ -110,7 +110,7 @@
# define BOOST_FT_cc_name implicit_cc
# define BOOST_FT_cc BOOST_PP_EMPTY
# define BOOST_FT_cond 0x00000001
# include BOOST_PP_EXPAND ( <BOOST_FT_cc_file> )
# include BOOST_FT_cc_file
# undef BOOST_FT_cond
# undef BOOST_FT_cc_name
# undef BOOST_FT_cc

View File

@ -28,9 +28,9 @@
#if defined(BOOST_FT_al_path)
# define BOOST_FT_cc_file \
boost/function_types/detail/pp_variate_loop/preprocessed.hpp
<boost/function_types/detail/pp_variate_loop/preprocessed.hpp>
# define BOOST_FT_variate_file \
boost/function_types/detail/pp_arity_loop.hpp
<boost/function_types/detail/pp_arity_loop.hpp>
# ifndef BOOST_FT_type_function
# define BOOST_FT_type_function(cc,name) BOOST_FT_SYNTAX( \

View File

@ -30,8 +30,8 @@ namespace detail
# include BOOST_PP_ASSIGN_SLOT(1)
BOOST_STATIC_CONSTANT(bits_t, value = (
::boost::function_types::detail::bits<Tag>::value & BOOST_FT_default_cc
| ::boost::function_types::detail::bits<RefTag>::value & BOOST_PP_SLOT(1)
(::boost::function_types::detail::bits<Tag>::value & BOOST_FT_default_cc)
| (::boost::function_types::detail::bits<RefTag>::value & BOOST_PP_SLOT(1))
));
};

View File

@ -15,8 +15,8 @@ namespace detail
template<class Tag, class RefTag> struct selector_bits
{
BOOST_STATIC_CONSTANT(bits_t, value = (
::boost::function_types::detail::bits<Tag> ::value & 0x00008000
| ::boost::function_types::detail::bits<RefTag> ::value & 802
(::boost::function_types::detail::bits<Tag> ::value & 0x00008000)
| (::boost::function_types::detail::bits<RefTag> ::value & 802)
));
};
template<bits_t SelectorBits> struct default_cc_tag;

View File

@ -82,7 +82,7 @@ namespace detail {
);
BOOST_STATIC_CONSTANT(bits_t, combined_bits =
LHS_bits & ~RHS_mask | RHS_bits
(LHS_bits & ~RHS_mask) | RHS_bits
);
BOOST_STATIC_CONSTANT(bits_t, combined_mask =

View File

@ -53,7 +53,7 @@ BOOST_STATIC_CONSTANT(bool, match =
RHS_bits == (LHS_bits & RHS_mask & (RHS_bits | ~0x000000ff))
);
BOOST_STATIC_CONSTANT(bits_t, combined_bits =
LHS_bits & ~RHS_mask | RHS_bits
(LHS_bits & ~RHS_mask) | RHS_bits
);
BOOST_STATIC_CONSTANT(bits_t, combined_mask =
LHS_mask | RHS_mask

View File

@ -140,7 +140,7 @@ BOOST_PP_EXPAND(#) define BOOST_FT_cv const volatile
# endif
# endif
BOOST_PP_EXPAND(#) define BOOST_FT_flags BOOST_PP_SLOT(1)
BOOST_PP_EXPAND(#) include BOOST_PP_EXPAND BOOST_PP_EMPTY()(<BOOST_FT_variate_file>)
BOOST_PP_EXPAND(#) include BOOST_FT_variate_file
BOOST_PP_EXPAND(#) undef BOOST_FT_cv
BOOST_PP_EXPAND(#) undef BOOST_FT_ell

View File

@ -15,7 +15,7 @@
# define BOOST_FT_nullary_param BOOST_FT_NULLARY_PARAM
# define BOOST_FT_cv
# define BOOST_FT_flags 519
# include BOOST_PP_EXPAND ( <BOOST_FT_variate_file> )
# include BOOST_FT_variate_file
# undef BOOST_FT_cv
# undef BOOST_FT_ell
# undef BOOST_FT_nullary_param
@ -28,7 +28,7 @@
# define BOOST_FT_nullary_param
# define BOOST_FT_cv
# define BOOST_FT_flags 263
# include BOOST_PP_EXPAND ( <BOOST_FT_variate_file> )
# include BOOST_FT_variate_file
# undef BOOST_FT_cv
# undef BOOST_FT_ell
# undef BOOST_FT_nullary_param
@ -42,7 +42,7 @@
# define BOOST_FT_nullary_param BOOST_FT_NULLARY_PARAM
# define BOOST_FT_cv const
# define BOOST_FT_flags 1543
# include BOOST_PP_EXPAND ( <BOOST_FT_variate_file> )
# include BOOST_FT_variate_file
# undef BOOST_FT_cv
# undef BOOST_FT_ell
# undef BOOST_FT_nullary_param
@ -55,7 +55,7 @@
# define BOOST_FT_nullary_param
# define BOOST_FT_cv const
# define BOOST_FT_flags 1287
# include BOOST_PP_EXPAND ( <BOOST_FT_variate_file> )
# include BOOST_FT_variate_file
# undef BOOST_FT_cv
# undef BOOST_FT_ell
# undef BOOST_FT_nullary_param
@ -68,7 +68,7 @@
# define BOOST_FT_nullary_param BOOST_FT_NULLARY_PARAM
# define BOOST_FT_cv volatile
# define BOOST_FT_flags 2567
# include BOOST_PP_EXPAND ( <BOOST_FT_variate_file> )
# include BOOST_FT_variate_file
# undef BOOST_FT_cv
# undef BOOST_FT_ell
# undef BOOST_FT_nullary_param
@ -81,7 +81,7 @@
# define BOOST_FT_nullary_param
# define BOOST_FT_cv volatile
# define BOOST_FT_flags 2311
# include BOOST_PP_EXPAND ( <BOOST_FT_variate_file> )
# include BOOST_FT_variate_file
# undef BOOST_FT_cv
# undef BOOST_FT_ell
# undef BOOST_FT_nullary_param
@ -94,7 +94,7 @@
# define BOOST_FT_nullary_param BOOST_FT_NULLARY_PARAM
# define BOOST_FT_cv const volatile
# define BOOST_FT_flags 3591
# include BOOST_PP_EXPAND ( <BOOST_FT_variate_file> )
# include BOOST_FT_variate_file
# undef BOOST_FT_cv
# undef BOOST_FT_ell
# undef BOOST_FT_nullary_param
@ -107,7 +107,7 @@
# define BOOST_FT_nullary_param
# define BOOST_FT_cv const volatile
# define BOOST_FT_flags 3335
# include BOOST_PP_EXPAND ( <BOOST_FT_variate_file> )
# include BOOST_FT_variate_file
# undef BOOST_FT_cv
# undef BOOST_FT_ell
# undef BOOST_FT_nullary_param
@ -123,7 +123,7 @@
# define BOOST_FT_nullary_param BOOST_FT_NULLARY_PARAM
# define BOOST_FT_cv
# define BOOST_FT_flags 523
# include BOOST_PP_EXPAND ( <BOOST_FT_variate_file> )
# include BOOST_FT_variate_file
# undef BOOST_FT_cv
# undef BOOST_FT_ell
# undef BOOST_FT_nullary_param
@ -136,7 +136,7 @@
# define BOOST_FT_nullary_param
# define BOOST_FT_cv
# define BOOST_FT_flags 267
# include BOOST_PP_EXPAND ( <BOOST_FT_variate_file> )
# include BOOST_FT_variate_file
# undef BOOST_FT_cv
# undef BOOST_FT_ell
# undef BOOST_FT_nullary_param
@ -151,7 +151,7 @@
# define BOOST_FT_nullary_param BOOST_FT_NULLARY_PARAM
# define BOOST_FT_cv
# define BOOST_FT_flags 531
# include BOOST_PP_EXPAND ( <BOOST_FT_variate_file> )
# include BOOST_FT_variate_file
# undef BOOST_FT_cv
# undef BOOST_FT_ell
# undef BOOST_FT_nullary_param
@ -164,7 +164,7 @@
# define BOOST_FT_nullary_param
# define BOOST_FT_cv
# define BOOST_FT_flags 275
# include BOOST_PP_EXPAND ( <BOOST_FT_variate_file> )
# include BOOST_FT_variate_file
# undef BOOST_FT_cv
# undef BOOST_FT_ell
# undef BOOST_FT_nullary_param
@ -181,7 +181,7 @@
# define BOOST_FT_nullary_param BOOST_FT_NULLARY_PARAM
# define BOOST_FT_cv
# define BOOST_FT_flags 609
# include BOOST_PP_EXPAND ( <BOOST_FT_variate_file> )
# include BOOST_FT_variate_file
# undef BOOST_FT_cv
# undef BOOST_FT_ell
# undef BOOST_FT_nullary_param
@ -194,7 +194,7 @@
# define BOOST_FT_nullary_param
# define BOOST_FT_cv
# define BOOST_FT_flags 353
# include BOOST_PP_EXPAND ( <BOOST_FT_variate_file> )
# include BOOST_FT_variate_file
# undef BOOST_FT_cv
# undef BOOST_FT_ell
# undef BOOST_FT_nullary_param
@ -207,7 +207,7 @@
# define BOOST_FT_nullary_param BOOST_FT_NULLARY_PARAM
# define BOOST_FT_cv const
# define BOOST_FT_flags 1633
# include BOOST_PP_EXPAND ( <BOOST_FT_variate_file> )
# include BOOST_FT_variate_file
# undef BOOST_FT_cv
# undef BOOST_FT_ell
# undef BOOST_FT_nullary_param
@ -220,7 +220,7 @@
# define BOOST_FT_nullary_param
# define BOOST_FT_cv const
# define BOOST_FT_flags 1377
# include BOOST_PP_EXPAND ( <BOOST_FT_variate_file> )
# include BOOST_FT_variate_file
# undef BOOST_FT_cv
# undef BOOST_FT_ell
# undef BOOST_FT_nullary_param
@ -233,7 +233,7 @@
# define BOOST_FT_nullary_param BOOST_FT_NULLARY_PARAM
# define BOOST_FT_cv volatile
# define BOOST_FT_flags 2657
# include BOOST_PP_EXPAND ( <BOOST_FT_variate_file> )
# include BOOST_FT_variate_file
# undef BOOST_FT_cv
# undef BOOST_FT_ell
# undef BOOST_FT_nullary_param
@ -246,7 +246,7 @@
# define BOOST_FT_nullary_param
# define BOOST_FT_cv volatile
# define BOOST_FT_flags 2401
# include BOOST_PP_EXPAND ( <BOOST_FT_variate_file> )
# include BOOST_FT_variate_file
# undef BOOST_FT_cv
# undef BOOST_FT_ell
# undef BOOST_FT_nullary_param
@ -259,7 +259,7 @@
# define BOOST_FT_nullary_param BOOST_FT_NULLARY_PARAM
# define BOOST_FT_cv const volatile
# define BOOST_FT_flags 3681
# include BOOST_PP_EXPAND ( <BOOST_FT_variate_file> )
# include BOOST_FT_variate_file
# undef BOOST_FT_cv
# undef BOOST_FT_ell
# undef BOOST_FT_nullary_param
@ -272,7 +272,7 @@
# define BOOST_FT_nullary_param
# define BOOST_FT_cv const volatile
# define BOOST_FT_flags 3425
# include BOOST_PP_EXPAND ( <BOOST_FT_variate_file> )
# include BOOST_FT_variate_file
# undef BOOST_FT_cv
# undef BOOST_FT_ell
# undef BOOST_FT_nullary_param

View File

@ -24,10 +24,10 @@ namespace boost
< function_types::components<T>
, detail::member_object_pointer_tag >
{
BOOST_MPL_AUX_LAMBDA_SUPPORT(2,is_member_object_pointer,(T,Tag))
BOOST_MPL_AUX_LAMBDA_SUPPORT(1,is_member_object_pointer,(T))
};
}
BOOST_TT_AUX_TEMPLATE_ARITY_SPEC(2,function_types::is_member_object_pointer)
BOOST_TT_AUX_TEMPLATE_ARITY_SPEC(1,function_types::is_member_object_pointer)
}
#endif

View File

@ -141,7 +141,7 @@ template<class Tag, class QueryTag> struct extract
#include <boost/function_types/detail/pp_tags/preprocessed.hpp>
namespace boost { namespace function_types {
#define BOOST_FT_cc_file boost/function_types/detail/pp_tags/cc_tag.hpp
#define BOOST_FT_cc_file <boost/function_types/detail/pp_tags/cc_tag.hpp>
#include <boost/function_types/detail/pp_loop.hpp>
} } // namespace boost::function_types

63
test/CMakeLists.txt Normal file
View File

@ -0,0 +1,63 @@
boost_test_compile(is_function classification/is_function.cpp)
boost_test_compile(is_function_pointer classification/is_function_pointer.cpp)
boost_test_compile(is_function_reference classification/is_function_reference.cpp)
boost_test_compile(is_member_function_pointer classification/is_member_function_pointer.cpp)
boost_test_compile(is_member_object_pointer classification/is_member_object_pointer.cpp)
boost_test_compile(is_callable_builtin classification/is_callable_builtin.cpp)
boost_test_compile(is_nonmember_callable_builtin classification/is_nonmember_callable_builtin.cpp)
boost_test_compile(is_member_pointer classification/is_member_pointer.cpp)
boost_test_compile(is_cv_mem_func_ptr classification/is_cv_mem_func_ptr.cpp)
boost_test_compile(is_variadic classification/is_variadic.cpp)
boost_test_compile(is_cv_pointer classification/is_cv_pointer.cpp)
# [ compile classification/is_cv_function.cpp)
# Decomposition
boost_test_compile(components decomposition/components.cpp)
boost_test_compile(result_type decomposition/result_type.cpp)
boost_test_compile(function_arity decomposition/function_arity.cpp)
boost_test_compile(parameter_types decomposition/parameter_types.cpp)
boost_test_compile(components_seq decomposition/components_seq.cpp)
boost_test_compile(class_type_transform decomposition/class_type_transform.cpp)
boost_test_compile_fail(result_type_fail decomposition/result_type_fail.cpp)
boost_test_compile_fail(parameter_types_fail decomposition/parameter_types_fail.cpp)
boost_test_compile_fail(function_arity_fail decomposition/function_arity_fail.cpp)
# Synthesis
boost_test_compile(function_type synthesis/function_type.cpp)
boost_test_compile(function_pointer synthesis/function_pointer.cpp)
boost_test_compile(function_reference synthesis/function_reference.cpp)
boost_test_compile(member_function_pointer synthesis/member_function_pointer.cpp)
boost_test_compile(member_object_pointer synthesis/member_object_pointer.cpp)
boost_test_compile(transformation synthesis/transformation.cpp)
boost_test_compile(mem_func_ptr_cv1 synthesis/mem_func_ptr_cv1.cpp)
boost_test_compile(mem_func_ptr_cv2 synthesis/mem_func_ptr_cv2.cpp)
boost_test_compile(mem_func_ptr_cv_ptr_to_this synthesis/mem_func_ptr_cv_ptr_to_this.cpp)
boost_test_compile(variadic_function_synthesis synthesis/variadic_function_synthesis.cpp)
# [ compile synthesis/cv_function_synthesis.cpp)
# Reconfiguration
boost_test_compile(preprocessing_mode reconfiguration/preprocessing_mode.cpp)
boost_test_compile(partial_arity_preprocessing reconfiguration/partial_arity_preprocessing.cpp)
boost_test_compile(cc_preprocessing reconfiguration/cc_preprocessing.cpp)
# Custom calling conventions
boost_test_compile(nonmember_ccs custom_ccs/nonmember_ccs.cpp)
boost_test_compile(nonmember_ccs_exact custom_ccs/nonmember_ccs_exact.cpp)
boost_test_compile(member_ccs custom_ccs/member_ccs.cpp)
boost_test_compile(member_ccs_exact custom_ccs/member_ccs_exact.cpp)
# Code from the examples
boost_test_compile(interpreter_example ../example/interpreter_example.cpp)
boost_test_compile(result_of_example ../example/result_of_example.cpp)
boost_test_compile(interface_example ../example/interface_example.cpp)
boost_test_compile(fast_mem_fn_example ../example/fast_mem_fn_example.cpp)
boost_test_compile(macro_type_args_example ../example/macro_type_args_example.cpp)

View File

@ -14,7 +14,7 @@
#include <boost/function_types/is_callable_builtin.hpp>
#ifndef BOOST_FT_CC_STDCALL
# error "test not supported with this compiler"
# error "test not supported with this compiler/platform"
#endif
namespace ft = boost::function_types;

View File

@ -14,7 +14,7 @@
#include <boost/function_types/is_callable_builtin.hpp>
#ifndef BOOST_FT_CC_STDCALL
# error "test not supported with this compiler"
# error "test not supported with this compiler/platform"
#endif
namespace ft = boost::function_types;

View File

@ -16,7 +16,7 @@
#include <boost/function_types/is_callable_builtin.hpp>
#ifndef BOOST_FT_CC_STDCALL
# error "test not supported with this compiler"
# error "test not supported with this compiler/platform"
#endif
namespace ft = boost::function_types;

View File

@ -16,7 +16,7 @@
#include <boost/function_types/is_callable_builtin.hpp>
#ifndef BOOST_FT_CC_STDCALL
# error "test not supported with this compiler"
# error "test not supported with this compiler/platform"
#endif
namespace ft = boost::function_types;