Add C++11 examples to documentation.
diff --git a/asio/release.pl b/asio/release.pl
index b00bd97..05b39e8 100755
--- a/asio/release.pl
+++ b/asio/release.pl
@@ -5,6 +5,7 @@
 use Date::Format;
 use File::Path;
 use File::Copy;
+use File::Basename;
 
 our $version_major;
 our $version_minor;
@@ -178,6 +179,27 @@
   system("cp -vR src/doc/html/* doc");
 }
 
+sub build_example_diffs
+{
+  my @cpp11_files = `find src/examples/cpp11 -type f -name "*.*pp"`;
+  foreach my $cpp11_file (@cpp11_files)
+  {
+    chomp($cpp11_file);
+
+    my $cpp03_file = $cpp11_file;
+    $cpp03_file =~ s/\/cpp11\//\/cpp03\//;
+    my $output_diff = $cpp11_file;
+    $output_diff =~ s/src\/examples\/cpp11\///g;
+    my ($output_diff_name, $output_dir) = fileparse($output_diff);
+    my $output_html = $output_diff . ".html";
+
+    mkpath("doc/examples/diffs/$output_dir");
+    system("diff -U1000000 $cpp03_file $cpp11_file > doc/examples/diffs/$output_diff");
+    system("cd doc/examples/diffs && diff2html.py -i $output_diff -o $output_html");
+    unlink("doc/examples/diffs/$output_diff");
+  }
+}
+
 sub make_asio_packages
 {
   system("./autogen.sh");
@@ -359,6 +381,7 @@
 update_asio_version_hpp();
 update_boost_asio_version_hpp();
 build_asio_doc();
+build_example_diffs();
 make_asio_packages();
 build_boost_asio_doc();
 create_boost_asio_content();
diff --git a/asio/src/doc/examples.qbk b/asio/src/doc/examples.qbk
index 296ae7d..c34f7f6 100644
--- a/asio/src/doc/examples.qbk
+++ b/asio/src/doc/examples.qbk
@@ -8,6 +8,20 @@
 [section:examples Examples]
 
 
+* [link asio.examples.cpp03_examples C++03 Examples]: Illustrates the use of
+Asio using only C++03 language and library features. Where necessary, the
+examples make use of selected Boost C++ libraries.
+
+* [link asio.examples.cpp11_examples C++11 Examples]: Contains a limited set of
+the C++03 Asio examples, updated to use only C++11 library and language
+facilities. These examples do not make direct use of Boost C++ libraries. To
+show the changes between C++03 and C++11, these examples include a diff between
+the C++03 and C++11 versions.
+
+
+[section:cpp03_examples C++03 Examples]
+
+
 [heading Allocation]
 
 This example shows how to customise the allocation of memory associated with
@@ -313,3 +327,86 @@
 
 
 [endsect]
+
+
+[section:cpp11_examples C++11 Examples]
+
+
+[heading Allocation]
+
+This example shows how to customise the allocation of memory associated with
+asynchronous operations.
+
+* [@../src/examples/cpp11/allocation/server.cpp] ([@examples/diffs/allocation/server.cpp.html diff to C++03])
+
+
+[heading Buffers]
+
+This example demonstrates how to create reference counted buffers that can be
+used with socket read and write operations.
+
+* [@../src/examples/cpp11/buffers/reference_counted.cpp] ([@examples/diffs/buffers/reference_counted.cpp.html diff to C++03])
+
+
+[heading Chat]
+
+This example implements a chat server and client. The programs use a custom
+protocol with a fixed length message header and variable length message body.
+
+* [@../src/examples/cpp11/chat/chat_message.hpp] ([@examples/diffs/chat/chat_message.hpp.html diff to C++03])
+* [@../src/examples/cpp11/chat/chat_client.cpp] ([@examples/diffs/chat/chat_client.cpp.html diff to C++03])
+* [@../src/examples/cpp11/chat/chat_server.cpp] ([@examples/diffs/chat/chat_server.cpp.html diff to C++03])
+
+
+[heading Echo]
+
+A collection of simple clients and servers, showing the use of both synchronous
+and asynchronous operations.
+
+* [@../src/examples/cpp11/echo/async_tcp_echo_server.cpp] ([@examples/diffs/echo/async_tcp_echo_server.cpp.html diff to C++03])
+* [@../src/examples/cpp11/echo/async_udp_echo_server.cpp] ([@examples/diffs/echo/async_udp_echo_server.cpp.html diff to C++03])
+* [@../src/examples/cpp11/echo/blocking_tcp_echo_client.cpp] ([@examples/diffs/echo/blocking_tcp_echo_client.cpp.html diff to C++03])
+* [@../src/examples/cpp11/echo/blocking_tcp_echo_server.cpp] ([@examples/diffs/echo/blocking_tcp_echo_server.cpp.html diff to C++03])
+* [@../src/examples/cpp11/echo/blocking_udp_echo_client.cpp] ([@examples/diffs/echo/blocking_udp_echo_client.cpp.html diff to C++03])
+* [@../src/examples/cpp11/echo/blocking_udp_echo_server.cpp] ([@examples/diffs/echo/blocking_udp_echo_server.cpp.html diff to C++03])
+
+
+[heading HTTP Server]
+
+This example illustrates the use of asio in a simple single-threaded server
+implementation of HTTP 1.0. It demonstrates how to perform a clean shutdown by
+cancelling all outstanding asynchronous operations.
+
+* [@../src/examples/cpp11/http/server/connection.cpp] ([@examples/diffs/http/server/connection.cpp.html diff to C++03])
+* [@../src/examples/cpp11/http/server/connection.hpp] ([@examples/diffs/http/server/connection.hpp.html diff to C++03])
+* [@../src/examples/cpp11/http/server/connection_manager.cpp] ([@examples/diffs/http/server/connection_manager.cpp.html diff to C++03])
+* [@../src/examples/cpp11/http/server/connection_manager.hpp] ([@examples/diffs/http/server/connection_manager.hpp.html diff to C++03])
+* [@../src/examples/cpp11/http/server/header.hpp] ([@examples/diffs/http/server/header.hpp.html diff to C++03])
+* [@../src/examples/cpp11/http/server/main.cpp] ([@examples/diffs/http/server/main.cpp.html diff to C++03])
+* [@../src/examples/cpp11/http/server/mime_types.cpp] ([@examples/diffs/http/server/mime_types.cpp.html diff to C++03])
+* [@../src/examples/cpp11/http/server/mime_types.hpp] ([@examples/diffs/http/server/mime_types.hpp.html diff to C++03])
+* [@../src/examples/cpp11/http/server/reply.cpp] ([@examples/diffs/http/server/reply.cpp.html diff to C++03])
+* [@../src/examples/cpp11/http/server/reply.hpp] ([@examples/diffs/http/server/reply.hpp.html diff to C++03])
+* [@../src/examples/cpp11/http/server/request.hpp] ([@examples/diffs/http/server/request.hpp.html diff to C++03])
+* [@../src/examples/cpp11/http/server/request_handler.cpp] ([@examples/diffs/http/server/request_handler.cpp.html diff to C++03])
+* [@../src/examples/cpp11/http/server/request_handler.hpp] ([@examples/diffs/http/server/request_handler.hpp.html diff to C++03])
+* [@../src/examples/cpp11/http/server/request_parser.cpp] ([@examples/diffs/http/server/request_parser.cpp.html diff to C++03])
+* [@../src/examples/cpp11/http/server/request_parser.hpp] ([@examples/diffs/http/server/request_parser.hpp.html diff to C++03])
+* [@../src/examples/cpp11/http/server/server.cpp] ([@examples/diffs/http/server/server.cpp.html diff to C++03])
+* [@../src/examples/cpp11/http/server/server.hpp] ([@examples/diffs/http/server/server.hpp.html diff to C++03])
+
+
+[heading Spawn]
+
+Example of using the asio::spawn() function, a wrapper around the
+[@www.boost.org/doc/libs/release/libs/coroutine/index.html Boost.Coroutine]
+library, to implement a chain of asynchronous operations using stackful
+coroutines.
+
+* [@../src/examples/cpp11/spawn/echo_server.cpp] ([@examples/diffs/spawn/echo_server.cpp.html diff to C++03])
+
+
+[endsect]
+
+
+[endsect]
diff --git a/asio/src/doc/overview/allocation.qbk b/asio/src/doc/overview/allocation.qbk
index aa7051a..5cbd489 100644
--- a/asio/src/doc/overview/allocation.qbk
+++ b/asio/src/doc/overview/allocation.qbk
@@ -52,6 +52,7 @@
 
 [link asio.reference.asio_handler_allocate asio_handler_allocate],
 [link asio.reference.asio_handler_deallocate asio_handler_deallocate],
-[link asio.examples.allocation custom memory allocation example].
+[link asio.examples.cpp03_examples.allocation custom memory allocation example (C++03)],
+[link asio.examples.cpp11_examples.allocation custom memory allocation example (C++11)].
 
 [endsect]
diff --git a/asio/src/doc/overview/buffers.qbk b/asio/src/doc/overview/buffers.qbk
index aab8d72..89c037a 100644
--- a/asio/src/doc/overview/buffers.qbk
+++ b/asio/src/doc/overview/buffers.qbk
@@ -157,6 +157,7 @@
 [link asio.reference.streambuf streambuf],
 [link asio.reference.ConstBufferSequence ConstBufferSequence],
 [link asio.reference.MutableBufferSequence MutableBufferSequence],
-[link asio.examples.buffers buffers example].
+[link asio.examples.cpp03_examples.buffers buffers example (C++03)],
+[link asio.examples.cpp11_examples.buffers buffers example (c++11)].
 
 [endsect]
diff --git a/asio/src/doc/overview/iostreams.qbk b/asio/src/doc/overview/iostreams.qbk
index a526de5..ef69aba 100644
--- a/asio/src/doc/overview/iostreams.qbk
+++ b/asio/src/doc/overview/iostreams.qbk
@@ -62,7 +62,7 @@
 
 [link asio.reference.ip__tcp.iostream ip::tcp::iostream],
 [link asio.reference.basic_socket_iostream basic_socket_iostream],
-[link asio.examples.iostreams iostreams examples].
+[link asio.examples.cpp03_examples.iostreams iostreams examples].
 
 [heading Notes]
 
diff --git a/asio/src/doc/overview/line_based.qbk b/asio/src/doc/overview/line_based.qbk
index 339d7ac..736ada4 100644
--- a/asio/src/doc/overview/line_based.qbk
+++ b/asio/src/doc/overview/line_based.qbk
@@ -113,6 +113,6 @@
 [link asio.reference.is_match_condition is_match_condition],
 [link asio.reference.read_until read_until()],
 [link asio.reference.streambuf streambuf],
-[link asio.examples.http_client HTTP client example].
+[link asio.examples.cpp03_examples.http_client HTTP client example].
 
 [endsect]
diff --git a/asio/src/doc/overview/posix.qbk b/asio/src/doc/overview/posix.qbk
index 4989a4b..bcb331d 100644
--- a/asio/src/doc/overview/posix.qbk
+++ b/asio/src/doc/overview/posix.qbk
@@ -61,7 +61,7 @@
 [link asio.reference.local__stream_protocol.endpoint local::stream_protocol::endpoint],
 [link asio.reference.local__stream_protocol.iostream local::stream_protocol::iostream],
 [link asio.reference.local__stream_protocol.socket local::stream_protocol::socket],
-[link asio.examples.unix_domain_sockets UNIX domain sockets examples].
+[link asio.examples.cpp03_examples.unix_domain_sockets UNIX domain sockets examples].
 
 [heading Notes]
 
diff --git a/asio/src/doc/overview/protocols.qbk b/asio/src/doc/overview/protocols.qbk
index 1e780cd..0ea1811 100644
--- a/asio/src/doc/overview/protocols.qbk
+++ b/asio/src/doc/overview/protocols.qbk
@@ -150,6 +150,6 @@
 [link asio.reference.ip__udp ip::udp],
 [link asio.reference.ip__icmp ip::icmp],
 [link asio.tutorial.tutdaytime1 daytime protocol tutorials],
-[link asio.examples.icmp ICMP ping example].
+[link asio.examples.cpp03_examples.icmp ICMP ping example].
 
 [endsect]
diff --git a/asio/src/doc/overview/reactor.qbk b/asio/src/doc/overview/reactor.qbk
index 4bd6fe8..37a883e 100644
--- a/asio/src/doc/overview/reactor.qbk
+++ b/asio/src/doc/overview/reactor.qbk
@@ -39,6 +39,6 @@
 [link asio.reference.null_buffers null_buffers],
 [link asio.reference.basic_socket.non_blocking basic_socket::non_blocking()],
 [link asio.reference.basic_socket.native_non_blocking basic_socket::native_non_blocking()],
-[link asio.examples.nonblocking nonblocking example].
+[link asio.examples.cpp03_examples.nonblocking nonblocking example].
 
 [endsect]
diff --git a/asio/src/doc/overview/signals.qbk b/asio/src/doc/overview/signals.qbk
index 1750b67..87f99a7 100644
--- a/asio/src/doc/overview/signals.qbk
+++ b/asio/src/doc/overview/signals.qbk
@@ -38,6 +38,7 @@
 [heading See Also]
 
 [link asio.reference.signal_set signal_set],
-[link asio.examples.http_server HTTP server example].
+[link asio.examples.cpp03_examples.http_server HTTP server example (C++03)],
+[link asio.examples.cpp11_examples.http_server HTTP server example (C++11)].
 
 [endsect]
diff --git a/asio/src/doc/overview/ssl.qbk b/asio/src/doc/overview/ssl.qbk
index 74349c7..1da540b 100644
--- a/asio/src/doc/overview/ssl.qbk
+++ b/asio/src/doc/overview/ssl.qbk
@@ -110,7 +110,7 @@
 [link asio.reference.ssl__context ssl::context],
 [link asio.reference.ssl__rfc2818_verification ssl::rfc2818_verification],
 [link asio.reference.ssl__stream ssl::stream],
-[link asio.examples.ssl SSL example].
+[link asio.examples.cpp03_examples.ssl SSL example].
 
 [heading Notes]
 
diff --git a/asio/src/doc/overview/strands.qbk b/asio/src/doc/overview/strands.qbk
index 749ee37..932b964 100644
--- a/asio/src/doc/overview/strands.qbk
+++ b/asio/src/doc/overview/strands.qbk
@@ -57,6 +57,6 @@
 
 [link asio.reference.io_service__strand io_service::strand],
 [link asio.tutorial.tuttimer5 tutorial Timer.5],
-[link asio.examples.http_server_3 HTTP server 3 example].
+[link asio.examples.cpp03_examples.http_server_3 HTTP server 3 example].
 
 [endsect]