<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
</head>
<body bgcolor="#FFFFFF" text="#000000">
From the C++14 spec...<br>
<br>
<blockquote>17.6.5.2 Headers [res.on.headers]<br>
1 A C++ header may include other C++ headers. A C++ header shall
provide the declarations and definitions<br>
that appear in its synopsis. A C++ header shown in its synopsis as
including other C++ headers shall provide<br>
the declarations and definitions that appear in the synopses of
those other headers.<br>
</blockquote>
<br>
I'm not 100% sure I know what this means. If a header (say...
<system_error>) mentions a class (like std::string), is it
required to provide the full definition for std::string, or is the
forward declared template good enough? Right now, libcxx uses the
forward declaration. What about entities that have specializations
scattered all over the place, like std::hash? Is the unspecialized
forward declaration good enough, or does the full bulk of all the
std::hash specializations have to come along too?<br>
<br>
<br>
<pre class="moz-signature" cols="72">--
Employee of Qualcomm Innovation Center, Inc.
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, a Linux Foundation Collaborative Project
</pre>
</body>
</html>