Commit Graph

351 Commits

Author SHA1 Message Date
Eric Friedman
34eb31c151 Added support for substitution in function types.
[SVN r20746]
2003-11-08 09:18:28 +00:00
Eric Friedman
5f5f81504c Moved NO_SFINAE defect macro to config.hpp.
[SVN r20737]
2003-11-08 04:57:55 +00:00
Eric Friedman
c0691d4441 More structured approach to disabling reference support.
[SVN r20736]
2003-11-08 04:57:12 +00:00
Eric Friedman
8aac1c4a7d Added NO_REFERENCE_SUPPORT defect macro.
[SVN r20735]
2003-11-08 04:56:06 +00:00
Eric Friedman
776d56c5db Initial release.
[SVN r20734]
2003-11-08 04:55:09 +00:00
Eric Friedman
758fcbb8f6 Fix in workaround.
[SVN r20731]
2003-11-07 23:17:22 +00:00
Eric Friedman
f839c6bbdc MSVC workaround.
[SVN r20730]
2003-11-07 23:16:50 +00:00
Eric Friedman
51294b1db4 1) Refactored internal_apply_visitor; 2) MSVC workaround.
[SVN r20729]
2003-11-07 23:16:31 +00:00
Eric Friedman
200407418c Updated comments.
[SVN r20726]
2003-11-07 06:05:51 +00:00
Eric Friedman
2d882c0dde 1) variant<type-seq> is now spelled make_variant_over<type-seq>::type; 2) recursive_variant is now spelled make_recursive_variant.
[SVN r20724]
2003-11-07 06:02:05 +00:00
Eric Friedman
2528a06f2c Simplified workaround.
[SVN r20718]
2003-11-07 04:54:21 +00:00
Eric Friedman
83ba0b3bc7 Minor fix.
[SVN r20717]
2003-11-07 04:52:16 +00:00
Eric Friedman
8e97059b38 Renamed boost::empty to boost::blank.
[SVN r20676]
2003-11-05 02:35:12 +00:00
Eric Friedman
aff5dc1069 Reflects boost::empty -> boost::blank change, eliminated variant<> syntax, and variant::empty() always false.
[SVN r20675]
2003-11-05 02:34:53 +00:00
Eric Friedman
eb48bd115b Optimized index lookup for fallback type.
[SVN r20628]
2003-11-04 03:45:00 +00:00
Eric Friedman
0ace0eef47 1) Bug fix-- proper which-index for fallback type; and 2) optimization of backup_assigner.
[SVN r20627]
2003-11-04 03:05:00 +00:00
Eric Friedman
0e76995bff Added missing dependency.
[SVN r20579]
2003-10-31 21:30:07 +00:00
Eric Friedman
85e6ddd879 Fixed variant< empty-seq > bug.
[SVN r20578]
2003-10-31 21:28:44 +00:00
Eric Friedman
c5d4a2fc7b Factored enable_recursive-style substitution into own facility.
[SVN r20492]
2003-10-25 10:39:28 +00:00
Eric Friedman
c989351673 Bug fix.
[SVN r20491]
2003-10-25 09:01:50 +00:00
Eric Friedman
851a870a1c Now prefers boost::empty as falback type.
[SVN r20415]
2003-10-20 02:14:58 +00:00
Eric Friedman
8a6c13fc4c Factored fallback-type search into metafunction.
[SVN r20414]
2003-10-20 00:50:33 +00:00
Eric Friedman
48e0f9b60a null_storage no longer necessary.
[SVN r20413]
2003-10-20 00:32:31 +00:00
Eric Friedman
5e54074563 Now avoids heap if *any* bounded type is nothrow default-constructible.
[SVN r20315]
2003-10-08 23:39:03 +00:00
Eric Friedman
51eb17b4e1 Fix for MSVC6 workaround.
[SVN r20269]
2003-10-07 00:21:57 +00:00
Eric Friedman
6dd8ecbcaf Compile-time optimizations.
[SVN r20260]
2003-10-06 00:06:23 +00:00
Eric Friedman
b38f976f2a Workaround for compilers lacking member class template support.
[SVN r20259]
2003-10-05 22:58:38 +00:00
Eric Friedman
066f5e4152 Minor fix.
[SVN r20258]
2003-10-05 21:20:34 +00:00
Eric Friedman
86f289ea2f Eliminated double-storage in favor of heap backup.
[SVN r20253]
2003-10-04 01:00:57 +00:00
Eric Friedman
e1f3fa6878 Assign works on underlying content rather than via copy-swap.
[SVN r20252]
2003-10-04 00:59:45 +00:00
Eric Friedman
019cd4bf4c Added EDG workaround to binary apply_visitor.
[SVN r20120]
2003-09-19 18:53:34 +00:00
Eric Friedman
72cca13c68 Extended MSVC6 workaround to MSVC7.
[SVN r20119]
2003-09-19 18:49:51 +00:00
Eric Friedman
ffa53ece11 Nothrow default constructor on T0 disables double storage.
[SVN r20114]
2003-09-19 07:57:20 +00:00
Eric Friedman
a7369bd408 Added recursive_wrapper optimization for variant::swap (even if no ADL).
[SVN r20110]
2003-09-19 01:32:41 +00:00
Eric Friedman
ba9472b57d EDG workaround.
[SVN r20105]
2003-09-18 21:35:23 +00:00
Eric Friedman
5571be1da5 Moved temporary enable_if implementation into own header.
[SVN r20104]
2003-09-18 20:38:22 +00:00
Eric Friedman
2a30098782 Extended MSVC6 workaround to MSVC7.
[SVN r20102]
2003-09-18 19:52:16 +00:00
Eric Friedman
242e137df2 MSVC7 workaround.
[SVN r20092]
2003-09-18 01:32:33 +00:00
Eric Friedman
5a2e160099 Simplified free apply_visitor functions.
[SVN r20086]
2003-09-17 05:41:45 +00:00
Eric Friedman
aa135cfa4b Fixed variant-to-variant conversion when holding recursive_wrapper<T>.
[SVN r20082]
2003-09-17 01:41:06 +00:00
Eric Friedman
f378bdc719 Attempted workaround for Intel C++.
[SVN r20081]
2003-09-16 22:11:35 +00:00
Eric Friedman
8f636ccbf1 Employed 'cut-off' technique for variant::initializer.
[SVN r20072]
2003-09-16 04:56:46 +00:00
Eric Friedman
d5fd8ba882 CodeWarrior workaround.
[SVN r20071]
2003-09-16 00:20:37 +00:00
Eric Friedman
66712bfab2 Removed no reference support macro.
[SVN r20069]
2003-09-15 17:20:21 +00:00
Eric Friedman
d16a44eb40 Added support for extracting references.
[SVN r20063]
2003-09-15 05:54:31 +00:00
Eric Friedman
bfbd4ac6f6 Dramatically improved variant reference content support.
[SVN r20061]
2003-09-15 04:55:05 +00:00
Eric Friedman
f888a114d4 Added is_recursive_wrapper and unwrap_recursive.
[SVN r20060]
2003-09-15 04:53:47 +00:00
Eric Friedman
8db6a3ff3f Minor fix and addition.
[SVN r20048]
2003-09-14 03:48:52 +00:00
Eric Friedman
3505b0591b Minor changes.
[SVN r20031]
2003-09-12 04:51:11 +00:00
Eric Friedman
9b0c9e87e5 Renamed boost::incomplete to recursive_wrapper.
[SVN r20011]
2003-09-11 06:47:04 +00:00
Eric Friedman
3babe0b3ea Now prevents variant/non-variant comparisons.
[SVN r19960]
2003-09-08 05:48:01 +00:00
Eric Friedman
3d6606ccbd 1) Replaced variant_before with variant::operator<; 2) Added variant::operator==.
[SVN r19953]
2003-09-08 04:42:10 +00:00
Eric Friedman
d8831df4f7 Optimized variant assign for nothrow copy types.
[SVN r19940]
2003-09-07 06:42:02 +00:00
Eric Friedman
41acddd698 Attempted fix for EDG compilers.
[SVN r19906]
2003-09-02 04:18:35 +00:00
Eric Friedman
ed7d5f5990 Extended MSVC6 workaround to MSVC7.
[SVN r19905]
2003-09-02 04:16:29 +00:00
Eric Friedman
affe11a065 Added missing dependency.
[SVN r19904]
2003-09-02 01:33:29 +00:00
Eric Friedman
8f2dbb6ac5 Added more type_traits specializations.
[SVN r19892]
2003-09-01 07:47:03 +00:00
Eric Friedman
333e3db429 Added variant_before.
[SVN r19886]
2003-08-31 08:22:03 +00:00
Eric Friedman
cfdc8b7f37 1) No longer wraps references in boost::incomplete 2) Pointer substitution handling now considers cv-quals.
[SVN r19885]
2003-08-31 02:55:25 +00:00
Eric Friedman
544c2d2993 Moved reference_content to boost/detail from variant/detail.
[SVN r19884]
2003-08-31 01:59:15 +00:00
Eric Friedman
eddf1c5f4d Minor fix.
[SVN r19878]
2003-08-30 08:45:57 +00:00
Eric Friedman
559868f9ae On unsupporting compilers, handle_reference is no-op.
[SVN r19876]
2003-08-30 03:27:54 +00:00
Eric Friedman
0f4ef33561 Removed CodeWarrior workaround. Not needed?
[SVN r19875]
2003-08-30 03:09:45 +00:00
Eric Friedman
11e0a8941a Added reference support and several fixes.
[SVN r19869]
2003-08-29 20:02:18 +00:00
Eric Friedman
17ea805ff6 Added reference support.
[SVN r19868]
2003-08-29 20:01:57 +00:00
Eric Friedman
e72bb62db7 Initial release.
[SVN r19867]
2003-08-29 20:00:15 +00:00
Eric Friedman
89c26ae837 Now handles pointers, references, and cv-qualified recursive_variant_ tags.
[SVN r19791]
2003-08-26 22:12:45 +00:00
Eric Friedman
82dc545110 Several minor changes.
[SVN r19768]
2003-08-25 06:20:06 +00:00
Eric Friedman
041af39087 Refactored bad_visit into own header.
[SVN r19764]
2003-08-25 02:04:15 +00:00
Eric Friedman
7ac15e614b Added workarounds for MSVC7 and Borland.
[SVN r19730]
2003-08-22 06:38:13 +00:00
Eric Friedman
08f8885dc5 Minor fix.
[SVN r19729]
2003-08-22 06:36:30 +00:00
Eric Friedman
dbcae544b0 Dramatically reduced overhead caused by recursive_variant implementation for non-recursive variants.
[SVN r19720]
2003-08-21 07:16:09 +00:00
Eric Friedman
14f6f4aa99 Minor change.
[SVN r19719]
2003-08-21 07:12:52 +00:00
Eric Friedman
2bf6205214 Updated copyright info.
[SVN r19718]
2003-08-21 07:05:49 +00:00
Eric Friedman
80e3c239f4 1) Reworked enable_recursive implementation and 2) Renamed apply_visitor_impl.hpp to visitation_impl.hpp
[SVN r19574]
2003-08-14 00:37:24 +00:00
Eric Friedman
c908ec0828 Added empty_fwd.hpp.
[SVN r19573]
2003-08-14 00:29:11 +00:00
Eric Friedman
ba28bb9019 Refactored apply_visitor_impl into separate header.
[SVN r19572]
2003-08-13 21:23:48 +00:00
Eric Friedman
943a38b28d Disabled recursive_variant support under MSVC 7.0.
[SVN r19542]
2003-08-12 04:30:45 +00:00
Eric Friedman
87fed2322b Added boost::recursive_variant.
[SVN r19528]
2003-08-11 02:06:01 +00:00
Eric Friedman
390751c03d Minor change.
[SVN r19527]
2003-08-11 02:05:13 +00:00
Eric Friedman
4b4d429b2b Added BOOST_EXPLICIT_TEMPLATE_TYPE_SPEC, etc.
[SVN r19503]
2003-08-10 08:12:31 +00:00
Eric Friedman
dc4f46b960 Allow get of const from non-const variant.
[SVN r19374]
2003-07-30 22:23:54 +00:00
Itay Maman
5404c8476a Warning fixed: "friend class" changed to "friend struct"
[SVN r19328]
2003-07-28 11:47:20 +00:00
Eric Friedman
0c559f4a49 Added BOOST_TEMPLATED_STREAM_* helper macros.
[SVN r19312]
2003-07-26 04:26:58 +00:00
Eric Friedman
8df5bcbe1c Moved variant_io.hpp into detail (now always included).
[SVN r19310]
2003-07-25 21:29:21 +00:00
Eric Friedman
b9d4b893a3 Fixed error w/ nondependent static assertion in assigner.
[SVN r19301]
2003-07-25 05:46:53 +00:00
Eric Friedman
ec73f5dd28 Renamed visitation unrolling limit macro.
[SVN r19295]
2003-07-24 08:17:16 +00:00
Eric Friedman
19652667e3 Bug fix and workarounds.
[SVN r19291]
2003-07-24 07:21:26 +00:00
Eric Friedman
6621f52fe6 Added comparison and streaming operators.
[SVN r19290]
2003-07-24 07:10:51 +00:00
Eric Friedman
f0fc75755f Fixed variant<> (i.e. variant<empty>) syntax.
[SVN r19276]
2003-07-23 06:50:59 +00:00
Eric Friedman
cc0cf3d24c Added missing dependency.
[SVN r19275]
2003-07-23 06:50:10 +00:00
Eric Friedman
421489aba7 Moved variant streaming support into variant_io.hpp.
[SVN r19273]
2003-07-23 02:42:36 +00:00
Eric Friedman
0eab4aaa2b Added missing dependency.
[SVN r19270]
2003-07-23 01:05:12 +00:00
Eric Friedman
effa8a8ce5 Now uses BOOST_EXPLICIT_TEMPLATE_TYPE.
[SVN r19261]
2003-07-22 10:16:10 +00:00
Eric Friedman
8e41a624a2 Replaced general prohibition on top-level const types w/ implicit prohibition for assignment.
[SVN r19260]
2003-07-22 10:15:05 +00:00
Eric Friedman
6cf006edb9 1) uses APPEND_EXPLICIT_TEMPLATE_TYPE; 2) unrolls VARIANT_LIMIT_TYPES.
[SVN r19257]
2003-07-22 09:10:09 +00:00
Eric Friedman
3b25d32276 Now uses BOOST_APPEND_EXPLICIT_TEMPLATE_TYPE.
[SVN r19250]
2003-07-22 08:33:36 +00:00
Eric Friedman
47a426723c Moved VARIANT_NO_TYPE_SEQUENCE_SUPPORT config macro into variant_fwd header.
[SVN r19202]
2003-07-19 04:19:30 +00:00
Eric Friedman
e7fdbb2d29 Fixed variant assignment semantics.
[SVN r19201]
2003-07-18 21:18:00 +00:00
Eric Friedman
684607aa4c Returned to standard copy-assignment form.
[SVN r19200]
2003-07-18 21:12:22 +00:00
Eric Friedman
715c455f78 NULL reference error workaround.
[SVN r19197]
2003-07-18 20:44:58 +00:00
Eric Friedman
d91746c62f Missing dependency.
[SVN r19187]
2003-07-18 06:48:20 +00:00
Eric Friedman
26718e6206 Inlined function templates.
[SVN r19186]
2003-07-18 06:09:35 +00:00
Eric Friedman
2cd0d9f7f1 Update file info.
[SVN r19185]
2003-07-18 06:07:27 +00:00
Eric Friedman
3c54a73928 Moved forced_return into separate header.
[SVN r19184]
2003-07-18 06:04:22 +00:00
Eric Friedman
e464e92c01 Added VARIANT_AUX_RETURN_VOID_TYPE.
[SVN r19183]
2003-07-18 06:03:19 +00:00
Eric Friedman
3ce479aba3 Missing dependency.
[SVN r19181]
2003-07-18 05:01:13 +00:00
Eric Friedman
5b83dd24ca Borland workaround.
[SVN r19180]
2003-07-18 04:57:22 +00:00
Eric Friedman
ecb588d503 ISO conformance fix for make_initializer_node.
[SVN r19179]
2003-07-18 04:52:22 +00:00
Eric Friedman
333ed0a327 NO_VOID_RETURNS workaround.
[SVN r19167]
2003-07-17 08:45:31 +00:00
Eric Friedman
acca3a4fd9 Added unrolling to visitation mechanism.
[SVN r19166]
2003-07-17 06:45:55 +00:00
Eric Friedman
02fb9fffbc Moved general variant::initializer out of class, into detail namespace.
[SVN r19165]
2003-07-17 02:26:21 +00:00
Eric Friedman
0a19bfd00e Refactored variant::apply_visitor_impl as free function in detail namespace.
[SVN r19164]
2003-07-17 01:49:21 +00:00
Eric Friedman
eea0ca8875 VARIANT_MINIMIZE_SIZE introduction plus various cleanup.
[SVN r19163]
2003-07-17 00:53:32 +00:00
Eric Friedman
6a510db892 1) Added mpl/next.hpp dependency; 2) variant::initializer optimization.
[SVN r19159]
2003-07-16 22:47:01 +00:00
Eric Friedman
f21d2dc0cd Added BOOST_VARIANT_ENUM_PARAMS and variant streaming support.
[SVN r19140]
2003-07-16 06:47:45 +00:00
Eric Friedman
a885fdf67d Cleanup and various fixes.
[SVN r19133]
2003-07-16 00:34:03 +00:00
Eric Friedman
457c1545ef Borland 5.51 workaround.
[SVN r19132]
2003-07-16 00:30:42 +00:00
Eric Friedman
d72c9b904f Final (?) MSVC6 workarounds.
[SVN r19131]
2003-07-15 21:15:08 +00:00
Eric Friedman
c317c7b0bd Reworked NO_FUNCTION_TEMPLATE_ORDERING workaround.
[SVN r19122]
2003-07-14 23:07:05 +00:00
Eric Friedman
e7dd9a8b7e MSVC6 workarounds.
[SVN r19083]
2003-07-12 09:14:40 +00:00
Eric Friedman
e116680a9f Initial release.
[SVN r19082]
2003-07-12 09:14:18 +00:00
Eric Friedman
09659d63ba Rolled back mistaken change.
[SVN r19035]
2003-07-10 23:30:29 +00:00
Eric Friedman
5fb554da1d More work toward MSVC6.
[SVN r19013]
2003-07-10 09:20:57 +00:00
Eric Friedman
3a781d826f Attempted workaround for MSVC6.
[SVN r18947]
2003-07-06 02:46:20 +00:00
Eric Friedman
aa398b6601 Attempted MSVC6 fix; and changes to is_static_visitor.
[SVN r18912]
2003-07-01 19:43:40 +00:00
Eric Friedman
97d75494d9 Minor file info changes.
[SVN r18911]
2003-07-01 19:42:01 +00:00
Eric Friedman
06c6a75a0a Attempted MSVC6 workaround.
[SVN r18898]
2003-07-01 06:04:40 +00:00
Eric Friedman
6cbae4695f Attempted fix.
[SVN r18896]
2003-06-30 21:31:06 +00:00
Eric Friedman
02177c60eb Need extraneous include for AUX_NOTHING.
[SVN r18894]
2003-06-30 19:52:49 +00:00
Eric Friedman
e52ca694ab MSVC workarounds.
[SVN r18893]
2003-06-30 19:48:23 +00:00
Eric Friedman
1b0a5bc7e0 Yet another attempt at Borland workarounds.
[SVN r18843]
2003-06-20 02:25:12 +00:00
Eric Friedman
f06fa79dd8 Initial attempt at MSVC6 workarounds.
[SVN r18842]
2003-06-19 23:19:53 +00:00
Eric Friedman
2d92702326 Moved bad_visit into visitor_ptr.hpp.
[SVN r18841]
2003-06-19 22:38:09 +00:00
Eric Friedman
272b5a57ec Attempted fix to Borland/vc7 problem.
[SVN r18840]
2003-06-19 21:28:43 +00:00
Eric Friedman
ec24569d95 Warning 'elimination' only on Borland: *causes* warnings on gcc, etc.
[SVN r18839]
2003-06-19 20:58:16 +00:00
Eric Friedman
fd573ab747 Eliminated warnings on Borland.
[SVN r18825]
2003-06-17 22:08:59 +00:00
Eric Friedman
e0c5685899 Borland workarounds.
[SVN r18817]
2003-06-17 02:27:45 +00:00
Eric Friedman
dcc3a60043 Borland workarounds.
[SVN r18813]
2003-06-16 23:47:06 +00:00
Eric Friedman
a861fd7503 Eliminated unused argument warning.
[SVN r18812]
2003-06-16 22:47:36 +00:00
Eric Friedman
d3c6e3e896 Bug fix: argument forwarding was broken.
[SVN r18811]
2003-06-16 22:28:38 +00:00
Eric Friedman
66051a239e Bug fix: did not return visitation result.
[SVN r18810]
2003-06-16 21:28:08 +00:00
Eric Friedman
9466ba58f8 Visitation implementation handles end-case without throwing exception.
[SVN r18796]
2003-06-15 21:32:57 +00:00
Eric Friedman
cfe11be3cb Borland fixes.
[SVN r18758]
2003-06-10 09:07:20 +00:00
Eric Friedman
349c5c9002 Initial release.
[SVN r18757]
2003-06-10 09:07:08 +00:00
Eric Friedman
343855fa1f Added note explaining transitory (i.e. unfinished) implementation.
[SVN r18749]
2003-06-09 23:40:10 +00:00
Eric Friedman
c62c6388fa Fixed problem re: incomplete type w/ is_base_and_derived.
[SVN r18748]
2003-06-09 23:34:22 +00:00
Eric Friedman
b05ce41613 Made variant::convert_copy_into friend; and eliminated warning.
[SVN r18683]
2003-06-05 21:48:22 +00:00
Eric Friedman
4ea42095c4 Fix in friend declarations.
[SVN r18661]
2003-06-04 04:39:18 +00:00
Eric Friedman
49a95fe3e8 Bug fix.
[SVN r18579]
2003-05-28 08:27:25 +00:00
Eric Friedman
bb596cae89 Migrated from Sandbox CVS.
[SVN r18578]
2003-05-28 08:05:16 +00:00