Release 0.3.0
diff --git a/Cargo.toml b/Cargo.toml
index ad40cad..f5e5b9f 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "cxx"
-version = "0.2.12" # remember to update html_root_url
+version = "0.3.0" # remember to update html_root_url
 authors = ["David Tolnay <dtolnay@gmail.com>"]
 edition = "2018"
 links = "cxxbridge03"
@@ -15,14 +15,14 @@
 travis-ci = { repository = "dtolnay/cxx" }
 
 [dependencies]
-cxxbridge-macro = { version = "=0.2.12", path = "macro" }
+cxxbridge-macro = { version = "=0.3.0", path = "macro" }
 link-cplusplus = "1.0"
 
 [build-dependencies]
 cc = "1.0.49"
 
 [dev-dependencies]
-cxx-build = { version = "=0.2.12", path = "gen/build" }
+cxx-build = { version = "=0.3.0", path = "gen/build" }
 cxx-test-suite = { version = "0", path = "tests/ffi" }
 rustversion = "1.0"
 trybuild = { version = "1.0.21", features = ["diff"] }
diff --git a/README.md b/README.md
index 78a62a2..f1cf00f 100644
--- a/README.md
+++ b/README.md
@@ -17,7 +17,7 @@
 
 ```toml
 [dependencies]
-cxx = "0.2"
+cxx = "0.3"
 ```
 
 *Compiler support: requires rustc 1.42+*<br>
@@ -219,7 +219,7 @@
 # Cargo.toml
 
 [build-dependencies]
-cxx-build = "0.2"
+cxx-build = "0.3"
 ```
 
 ```rust
@@ -307,11 +307,11 @@
 <tr><td>String</td><td>rust::String</td><td></td></tr>
 <tr><td>&amp;str</td><td>rust::Str</td><td></td></tr>
 <tr><td>&amp;[u8]</td><td>rust::Slice&lt;uint8_t&gt;</td><td><sup><i>arbitrary &amp;[T] not implemented yet</i></sup></td></tr>
-<tr><td><a href="https://docs.rs/cxx/0.2/cxx/struct.CxxString.html">CxxString</a></td><td>std::string</td><td><sup><i>cannot be passed by value</i></sup></td></tr>
+<tr><td><a href="https://docs.rs/cxx/0.3/cxx/struct.CxxString.html">CxxString</a></td><td>std::string</td><td><sup><i>cannot be passed by value</i></sup></td></tr>
 <tr><td>Box&lt;T&gt;</td><td>rust::Box&lt;T&gt;</td><td><sup><i>cannot hold opaque C++ type</i></sup></td></tr>
-<tr><td><a href="https://docs.rs/cxx/0.2/cxx/struct.UniquePtr.html">UniquePtr&lt;T&gt;</a></td><td>std::unique_ptr&lt;T&gt;</td><td><sup><i>cannot hold opaque Rust type</i></sup></td></tr>
+<tr><td><a href="https://docs.rs/cxx/0.3/cxx/struct.UniquePtr.html">UniquePtr&lt;T&gt;</a></td><td>std::unique_ptr&lt;T&gt;</td><td><sup><i>cannot hold opaque Rust type</i></sup></td></tr>
 <tr><td>Vec&lt;T&gt;</td><td>rust::Vec&lt;T&gt;</td><td><sup><i>cannot hold opaque C++ type</i></sup></td></tr>
-<tr><td><a href="https://docs.rs/cxx/0.2/cxx/struct.CxxVector.html">CxxVector&lt;T&gt;</a></td><td>std::vector&lt;T&gt;</td><td><sup><i>cannot be passed by value, cannot hold opaque Rust type</i></sup></td></tr>
+<tr><td><a href="https://docs.rs/cxx/0.3/cxx/struct.CxxVector.html">CxxVector&lt;T&gt;</a></td><td>std::vector&lt;T&gt;</td><td><sup><i>cannot be passed by value, cannot hold opaque Rust type</i></sup></td></tr>
 <tr><td>fn(T, U) -&gt; V</td><td>rust::Fn&lt;V(T, U)&gt;</td><td><sup><i>only passing from Rust to C++ is implemented so far</i></sup></td></tr>
 <tr><td>Result&lt;T&gt;</td><td>throw/catch</td><td><sup><i>allowed as return type only</i></sup></td></tr>
 </table>
diff --git a/gen/build/Cargo.toml b/gen/build/Cargo.toml
index 3552524..869f543 100644
--- a/gen/build/Cargo.toml
+++ b/gen/build/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "cxx-build"
-version = "0.2.12"
+version = "0.3.0"
 authors = ["David Tolnay <dtolnay@gmail.com>"]
 edition = "2018"
 license = "MIT OR Apache-2.0"
diff --git a/gen/cmd/Cargo.toml b/gen/cmd/Cargo.toml
index 742d54b..9927d3f 100644
--- a/gen/cmd/Cargo.toml
+++ b/gen/cmd/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "cxxbridge-cmd"
-version = "0.2.12"
+version = "0.3.0"
 authors = ["David Tolnay <dtolnay@gmail.com>"]
 edition = "2018"
 license = "MIT OR Apache-2.0"
diff --git a/macro/Cargo.toml b/macro/Cargo.toml
index c7c48ec..51fba71 100644
--- a/macro/Cargo.toml
+++ b/macro/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "cxxbridge-macro"
-version = "0.2.12"
+version = "0.3.0"
 authors = ["David Tolnay <dtolnay@gmail.com>"]
 edition = "2018"
 license = "MIT OR Apache-2.0"
@@ -20,7 +20,7 @@
 syn = { version = "1.0", features = ["full"] }
 
 [dev-dependencies]
-cxx = { version = "0.2", path = ".." }
+cxx = { version = "0.3", path = ".." }
 
 [package.metadata.docs.rs]
 targets = ["x86_64-unknown-linux-gnu"]
diff --git a/src/lib.rs b/src/lib.rs
index f97ab96..37fc5ef 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -224,7 +224,7 @@
 //! # Cargo.toml
 //!
 //! [build-dependencies]
-//! cxx-build = "0.2"
+//! cxx-build = "0.3"
 //! ```
 //!
 //! ```no_run
@@ -343,7 +343,7 @@
 //!
 //! [https://github.com/dtolnay/cxx]: https://github.com/dtolnay/cxx
 
-#![doc(html_root_url = "https://docs.rs/cxx/0.2.12")]
+#![doc(html_root_url = "https://docs.rs/cxx/0.3.0")]
 #![deny(improper_ctypes)]
 #![allow(
     clippy::cognitive_complexity,
diff --git a/third-party/Cargo.lock b/third-party/Cargo.lock
index b778e5b..f4e5903 100644
--- a/third-party/Cargo.lock
+++ b/third-party/Cargo.lock
@@ -65,7 +65,7 @@
 
 [[package]]
 name = "cxx"
-version = "0.2.12"
+version = "0.3.0"
 dependencies = [
  "cc",
  "cxx-build",
@@ -78,7 +78,7 @@
 
 [[package]]
 name = "cxx-build"
-version = "0.2.12"
+version = "0.3.0"
 dependencies = [
  "anyhow",
  "cc",
@@ -98,7 +98,7 @@
 
 [[package]]
 name = "cxxbridge-cmd"
-version = "0.2.12"
+version = "0.3.0"
 dependencies = [
  "anyhow",
  "codespan-reporting",
@@ -118,7 +118,7 @@
 
 [[package]]
 name = "cxxbridge-macro"
-version = "0.2.12"
+version = "0.3.0"
 dependencies = [
  "cxx",
  "proc-macro2",