ajwong@chromium.org
1b9718f6af
Allow construction and assignment of one scoped_ptr from another if the types are convertible.
...
This allows for depth subtyping during a move operation on a scoped_ptr. With the additional constructor and operator=, we maintain move semantics but allow a scoped_ptr<A> to be constructed from a scoped_ptr<B> if B can be converted to A.
=DEFICIENCY=
This conversion sequence will _not_ implicitly work when calling an API. Specifically, if you have
void Func(scoped_ptr<Parent> p);
scoped_ptr<Child> c;
Func(c.Pass()); // COMPILE ERROR
This is a limitation of C++03 move emulation. The workaround is Func(scoped_ptr<Parent>(c.Pass());
BUG=109026
TEST=new unittests
Review URL: http://codereview.chromium.org/8968032
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@117317 0039d316-1c4b-4281-b951-d872f2087c98
2012-01-11 23:10:05 +00:00
..
2011-12-21 20:51:26 +00:00
2011-12-12 12:33:36 +00:00
2010-12-23 05:56:05 +00:00
2011-12-31 22:53:51 +00:00
2012-01-06 22:12:28 +00:00
2012-01-10 17:55:45 +00:00
2012-01-05 09:46:42 +00:00
2012-01-11 21:35:51 +00:00
2012-01-11 23:10:05 +00:00
2012-01-06 02:13:28 +00:00
2011-11-15 13:31:49 +00:00
2011-12-14 01:36:48 +00:00
2011-12-31 22:53:51 +00:00
2011-11-15 01:59:49 +00:00
2012-01-04 16:48:49 +00:00
2011-11-15 13:31:49 +00:00
2012-01-11 00:15:53 +00:00
2011-11-14 19:23:46 +00:00
2011-12-22 22:07:41 +00:00
2011-11-21 19:23:44 +00:00
2012-01-06 22:12:28 +00:00
2011-09-06 23:14:47 +00:00
2011-03-28 01:54:15 +00:00
2011-04-15 06:15:04 +00:00
2011-08-05 15:34:00 +00:00
2011-04-15 06:15:04 +00:00
2011-04-04 18:04:37 +00:00
2011-07-28 16:51:25 +00:00
2011-06-28 02:20:02 +00:00
2011-07-22 13:22:23 +00:00
2011-08-05 15:34:00 +00:00
2011-08-05 15:34:00 +00:00
2011-08-02 16:11:16 +00:00
2011-11-29 20:06:18 +00:00
2011-11-14 19:15:25 +00:00
2011-04-25 18:03:12 +00:00
2011-04-25 18:03:12 +00:00
2011-09-01 00:46:33 +00:00
2011-07-06 22:26:45 +00:00
2011-07-06 22:26:45 +00:00
2012-01-06 22:12:28 +00:00
2012-01-11 21:35:51 +00:00
2011-11-05 02:40:54 +00:00
2012-01-06 22:12:28 +00:00
2012-01-06 22:12:28 +00:00
2012-01-06 22:12:28 +00:00
2011-11-28 22:13:54 +00:00
2011-11-28 22:13:54 +00:00
2011-12-22 21:12:58 +00:00
2011-12-22 21:12:58 +00:00
2011-12-22 21:12:58 +00:00
2011-11-21 19:23:44 +00:00
2011-12-20 00:10:04 +00:00
2011-12-20 00:10:04 +00:00
2011-11-11 16:09:31 +00:00
2011-11-11 16:09:31 +00:00
2011-11-11 16:09:31 +00:00
2011-11-28 22:00:29 +00:00
2011-12-20 00:10:04 +00:00
2011-12-22 21:12:58 +00:00
2012-01-03 19:36:57 +00:00
2011-09-10 03:14:35 +00:00
2012-01-04 00:57:39 +00:00
2012-01-04 00:57:39 +00:00
2011-11-30 20:33:52 +00:00
2011-12-20 00:10:04 +00:00
2011-12-02 07:31:09 +00:00
2011-09-13 15:45:34 +00:00
2011-10-26 21:48:00 +00:00
2011-08-05 15:34:00 +00:00
2011-05-20 00:48:35 +00:00
2011-02-24 10:50:25 +00:00
2011-04-04 18:04:37 +00:00
2011-08-05 15:34:00 +00:00
2011-08-18 20:23:04 +00:00
2011-06-22 02:39:30 +00:00
2011-10-26 21:48:00 +00:00
2011-03-28 01:54:15 +00:00
2011-03-28 01:54:15 +00:00
2011-08-05 15:34:00 +00:00
2011-10-26 21:48:00 +00:00
2011-08-05 15:34:00 +00:00
2011-12-20 04:20:15 +00:00
2011-06-28 22:56:33 +00:00
2011-04-04 18:04:37 +00:00
2011-11-16 00:08:08 +00:00
2011-11-02 04:55:23 +00:00
2011-11-02 04:55:23 +00:00
2011-11-02 04:55:23 +00:00
2011-12-06 18:07:05 +00:00
2011-08-05 15:34:00 +00:00
2011-03-24 19:45:02 +00:00
2011-12-06 18:07:05 +00:00
2011-12-22 22:31:44 +00:00
2011-11-21 19:23:44 +00:00
2011-11-09 06:46:39 +00:00
2011-12-31 22:53:51 +00:00
2011-12-20 23:44:32 +00:00
2011-10-26 21:48:00 +00:00
2011-12-06 18:07:05 +00:00
2011-11-16 00:08:08 +00:00
2011-05-05 21:27:07 +00:00
2011-03-28 01:54:15 +00:00
2011-04-22 23:55:45 +00:00
2011-11-16 00:08:08 +00:00
2011-08-05 15:34:00 +00:00
2011-10-26 21:48:00 +00:00
2011-08-05 15:34:00 +00:00
2011-06-27 19:13:10 +00:00
2011-06-25 04:33:18 +00:00
2011-03-08 02:07:29 +00:00
2011-12-31 22:53:51 +00:00
2011-11-15 13:31:49 +00:00
2011-11-15 13:31:49 +00:00
2011-11-23 02:07:45 +00:00
2011-08-05 15:34:00 +00:00
2011-10-24 18:55:16 +00:00
2011-11-08 17:09:21 +00:00
2011-12-16 06:01:23 +00:00
2011-03-28 01:54:15 +00:00
2011-08-05 15:34:00 +00:00
2012-01-11 00:15:53 +00:00
2011-12-22 21:54:49 +00:00
2011-08-05 15:34:00 +00:00
2011-03-31 20:52:05 +00:00
2011-07-26 23:39:50 +00:00
2011-07-26 23:39:50 +00:00
2011-08-08 12:58:59 +00:00
2011-12-30 06:46:30 +00:00
2012-01-05 02:18:18 +00:00
2012-01-05 02:18:18 +00:00
2012-01-05 02:18:18 +00:00
2011-08-18 23:13:01 +00:00
2011-12-30 06:46:30 +00:00
2012-01-06 22:12:28 +00:00
2012-01-06 22:12:28 +00:00
2012-01-05 02:18:18 +00:00
2012-01-06 22:12:28 +00:00
2011-08-26 16:43:59 +00:00
2011-08-02 16:11:16 +00:00
2011-10-29 03:44:44 +00:00
2011-11-16 00:08:08 +00:00
2012-01-06 22:12:28 +00:00
2011-12-14 16:34:31 +00:00
2011-12-14 16:34:31 +00:00
2011-12-14 16:34:31 +00:00
2011-12-14 16:34:31 +00:00
2012-01-04 19:02:38 +00:00
2011-12-06 15:09:56 +00:00
2011-11-16 00:08:08 +00:00
2011-12-06 23:32:43 +00:00
2011-12-13 23:59:01 +00:00
2011-10-05 17:14:33 +00:00
2011-12-14 16:34:31 +00:00
2011-10-04 00:10:47 +00:00
2011-10-04 00:10:47 +00:00
2011-12-14 16:34:31 +00:00
2011-12-14 16:34:31 +00:00
2010-09-28 22:54:58 +00:00
2011-08-05 15:34:00 +00:00
2011-04-18 22:06:22 +00:00
2011-11-14 19:15:25 +00:00
2011-04-18 22:06:22 +00:00
2011-08-05 15:34:00 +00:00
2012-01-06 22:12:28 +00:00
2011-12-09 23:06:02 +00:00
2011-10-25 18:00:02 +00:00
2011-12-16 03:18:13 +00:00
2011-12-16 03:18:13 +00:00
2011-12-21 21:16:18 +00:00
2011-08-26 16:43:59 +00:00
2011-12-14 18:47:26 +00:00
2011-08-05 15:34:00 +00:00
2011-11-17 23:26:53 +00:00
2011-11-18 06:08:02 +00:00
2011-03-28 01:54:15 +00:00
2011-10-10 22:20:33 +00:00
2011-09-25 03:08:13 +00:00
2011-11-18 20:09:39 +00:00
2011-09-01 23:04:07 +00:00
2011-12-29 22:59:22 +00:00
2011-01-07 18:06:45 +00:00
2011-09-01 23:04:07 +00:00
2011-08-03 05:28:10 +00:00
2011-12-12 03:05:04 +00:00
2011-12-22 22:34:58 +00:00
2011-12-02 16:14:46 +00:00
2011-12-04 14:19:41 +00:00
2012-01-04 01:06:06 +00:00
2011-11-23 18:32:00 +00:00
2011-11-08 00:36:01 +00:00
2011-12-31 22:53:51 +00:00
2011-12-31 22:53:51 +00:00
2011-12-13 03:09:14 +00:00
2011-08-26 16:43:59 +00:00
2011-12-04 14:19:41 +00:00
2011-12-02 16:14:46 +00:00
2011-12-02 16:14:46 +00:00
2011-11-23 00:58:23 +00:00
2011-11-23 00:58:23 +00:00
2011-11-23 00:58:23 +00:00
2011-08-05 15:34:00 +00:00
2011-11-15 13:31:49 +00:00
2011-11-29 20:06:18 +00:00
2010-10-14 20:34:59 +00:00
2011-11-29 20:06:18 +00:00
2011-11-29 20:06:18 +00:00
2010-11-12 18:00:35 +00:00
2011-08-05 15:34:00 +00:00
2011-05-19 23:34:17 +00:00
2011-05-19 23:34:17 +00:00
2011-08-05 15:34:00 +00:00
2011-12-19 23:24:10 +00:00
2011-10-26 21:48:00 +00:00
2011-08-05 15:34:00 +00:00
2011-03-13 21:17:20 +00:00
2011-09-28 21:15:27 +00:00
2011-10-26 21:48:00 +00:00
2011-09-28 21:15:27 +00:00
2011-12-02 01:32:54 +00:00
2011-12-31 22:53:51 +00:00
2011-12-31 22:53:51 +00:00
2011-12-01 23:19:31 +00:00
2011-12-01 23:19:31 +00:00
2011-12-31 22:53:51 +00:00
2011-03-28 01:54:15 +00:00
2011-07-21 08:39:51 +00:00
2010-11-13 20:05:47 +00:00
2011-08-26 13:07:29 +00:00
2011-08-05 15:34:00 +00:00
2011-12-19 16:10:55 +00:00
2011-12-19 16:10:55 +00:00
2011-12-19 16:10:55 +00:00
2012-01-10 18:00:42 +00:00
2011-12-22 21:54:49 +00:00
2011-12-22 21:54:49 +00:00
2011-09-23 20:42:11 +00:00
2011-11-21 19:02:48 +00:00
2011-09-23 20:42:11 +00:00
2011-06-27 17:23:28 +00:00
2011-11-12 19:58:58 +00:00
2011-11-29 20:06:18 +00:00
2011-11-10 15:08:41 +00:00
2011-11-29 20:06:18 +00:00
2010-11-18 02:15:12 +00:00
2010-11-18 02:15:12 +00:00
2011-08-05 15:34:00 +00:00
2011-12-22 19:33:27 +00:00
2011-12-22 19:33:27 +00:00
2011-12-22 19:33:27 +00:00
2011-12-28 23:18:21 +00:00
2011-12-19 16:10:55 +00:00
2011-10-24 22:05:27 +00:00
2011-10-24 22:05:27 +00:00
2011-06-15 15:46:26 +00:00
2011-10-24 22:05:27 +00:00
2011-06-25 04:54:41 +00:00
2011-10-24 23:47:26 +00:00
2011-06-15 15:46:26 +00:00
2011-08-05 15:34:00 +00:00
2011-04-29 15:06:32 +00:00
2011-11-14 19:15:25 +00:00
2011-06-20 17:44:05 +00:00
2011-12-13 00:13:00 +00:00
2011-11-21 19:23:44 +00:00
2011-11-21 19:23:44 +00:00
2012-01-10 00:22:35 +00:00
2012-01-10 00:22:35 +00:00
2012-01-10 00:22:35 +00:00
2011-12-31 22:53:51 +00:00
2011-09-20 21:46:48 +00:00
2011-08-03 05:28:10 +00:00
2011-09-02 20:42:04 +00:00
2012-01-06 22:12:28 +00:00
2011-12-15 19:35:49 +00:00
2012-01-04 00:46:57 +00:00
2011-12-31 22:53:51 +00:00
2011-12-21 12:54:47 +00:00
2011-12-14 01:36:48 +00:00
2011-12-14 01:36:48 +00:00
2011-10-31 22:36:21 +00:00
2011-10-31 22:36:21 +00:00
2011-09-28 00:33:59 +00:00
2011-09-08 02:18:10 +00:00
2011-09-08 02:18:10 +00:00
2011-12-22 21:54:49 +00:00
2011-12-04 03:14:54 +00:00
2010-10-04 00:34:04 +00:00
2011-01-28 02:40:46 +00:00
2011-08-05 15:34:00 +00:00
2011-11-02 04:55:23 +00:00
2011-08-05 15:34:00 +00:00
2011-11-26 01:11:44 +00:00
2011-11-26 01:11:44 +00:00
2011-11-26 01:11:44 +00:00
2011-08-01 17:45:08 +00:00
2011-08-01 17:45:08 +00:00
2011-11-30 13:27:05 +00:00
2010-11-04 15:50:49 +00:00
2011-10-26 21:48:00 +00:00
2011-08-05 15:34:00 +00:00