[PATCH] Move optional into the experimental namespace (first bit of the TSes)

Marshall Clow mclow.lists at gmail.com
Tue Nov 12 13:48:28 PST 2013


Along with C++14, the standard committee is working on several "Technical Specifications", designed to bring features that for one reason or another weren't able to be in C++14 to people before the next version of the standard (C++17??).  Those of you who remember TR1 (from about 2005) - this is a similar process under a new name.

There are several being worked on:
	* Library Fundamentals 
	* Arrays of Runtime Bound
	* Networking
	* Concepts
	* Filesystem

This patch takes the implementation of <optional> that Howard wrote and committed into libc++ (before the committee removed the feature from C++14), and moves it into the new "experimental" area, which is where these TSes will live until they are enshrined in a future version of the standard.

That area can be described as:
	namespace std::experimental (feel free to alias this to something shorter in your code)
	files live in the "experimental/" directory.

If you're already using the <optional> in libc++, you'll have to change your code to:
	#include <experimental/optional>
and
	std::experimental::optional<T>

It's a big patch, but it's just renaming things; if I actually changed some code, then I did it wrong.

-- Marshall

Marshall Clow     Idio Software   <mailto:mclow.lists at gmail.com>

A.D. 1517: Martin Luther nails his 95 Theses to the church door and is promptly moderated down to (-1, Flamebait).
        -- Yu Suzuki

-------------- next part --------------
A non-text attachment was scrubbed...
Name: optional-ts.patch
Type: application/octet-stream
Size: 108670 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20131112/870f0377/attachment.obj>


More information about the cfe-commits mailing list