Fixed license & copyright issues.

From Mark Rodgers Fri Dec 1 12:59:14 2006
X-Apparently-To: ahd6974-boostorg -at- yahoo.com via 68.142.206.160; Fri, 01 Dec 2006 12:59:41 -0800
X-Originating-IP: [195.112.4.54]
Return-Path: <mark.rodgers -at- cadenza.co.nz>
Authentication-Results: mta550.mail.mud.yahoo.com from=cadenza.co.nz; domainkeys=neutral (no sig)
Received: from 195.112.4.54 (EHLO smtp.nildram.co.uk) (195.112.4.54) by mta550.mail.mud.yahoo.com with SMTP; Fri, 01 Dec 2006 12:59:40 -0800
Received: from snagglepuss.cadenza.co.nz (81-6-246-87.dyn.gotadsl.co.uk [81.6.246.87]) by smtp.nildram.co.uk (Postfix) with ESMTP id D32EA2B6D8C for <ahd6974-boostorg -at- yahoo.com>; Fri, 1 Dec 2006 20:59:35 +0000 (GMT)
Received: from penfold.cadenza.co.nz ([192.168.55.56]) by snagglepuss.cadenza.co.nz with esmtp (Exim 4.63) (envelope-from <mark.rodgers -at- cadenza.co.nz>) id J9M4Y9-0009TO-9K for ahd6974-boostorg -at- yahoo.com; Fri, 01 Dec 2006 20:58:57 +0000
Message-ID: <457097A2.1090305@cadenza.co.nz>
Date: Fri, 01 Dec 2006 20:59:14 +0000
From: "Mark Rodgers" <mark.rodgers -at- cadenza.co.nz>
User-Agent: Thunderbird 1.5.0.8 (Macintosh/20061025)
MIME-Version: 1.0
To: ahd6974-boostorg -at- yahoo.com [Edit - Delete]
Subject: Re: [boost] Reminder: Need your permission to correct license & copyright issues
References: <379990.36007.qm@web33507.mail.mud.yahoo.com>
In-Reply-To: <379990.36007.qm@web33507.mail.mud.yahoo.com>
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit
Content-Length: 812
Gidday Andreas

Sure that's fine.  I'm happy for you to do 1, 2 and 3.

Regards
Mark

Andreas Huber wrote:
> Hello Mark
>
> Quite a while ago it was decided that every file that goes into the
> 1.34 release of the Boost distribution (www.boost.org) needs uniform
> license and copyright information. For more information please see:
>
> <http://www.boost.org/more/license_info.html>
>
> You are receiving this email because several files you contributed
> lack such information or have an old license:
>
> boost/functional/functional.hpp
> boost/libs/functional/binders.html
> boost/libs/functional/function_test.cpp
> boost/libs/functional/function_traits.html
> boost/libs/functional/index.html
> boost/libs/functional/mem_fun.html
> boost/libs/functional/negators.html
> boost/libs/functional/ptr_fun.html
> boost/people/mark_rodgers.htm
>
> I therefore kindly ask you to grant the permission to do the
> following:
>
> 1. For the files above that already have a license text (all except
> mark_rodgers.htm), replace the license text with:
>
> "Distributed under the Boost Software License, Version 1.0. (See
> accompanying file LICENSE_1_0.txt or copy at
> http://www.boost.org/LICENSE_1_0.txt)"
>
> 2. For the file that does not yet have a license and copyright
> (mark_rodgers.htm) add the same license text as under 1. and add the
> following copyright:
>
> "(c) Copyright Mark Rodgers 2000"
>
> 3. (Optional) I would also want to convert all HTML files to conform
> the HTML 4.01 Standard by running them through HTML Tidy, see
> <http://tidy.sf.net>
>
> It would be great if you could grant me permission to do 1 & 2 and
> optionally also 3.
>
> Thank you!
>
> Regards,
>
> Andreas Huber
>


[SVN r36245]
This commit is contained in:
Andreas Huber
2006-12-02 13:57:33 +00:00
parent 585813f9fe
commit 792ee1fee1
8 changed files with 987 additions and 697 deletions
+179 -142
View File
@@ -1,137 +1,166 @@
<html>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Boost Function Object Adapter Library</title>
<meta http-equiv="Content-Language" content="en-us">
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<title>Boost Function Object Adapter Library</title>
</head>
<body bgcolor="#FFFFFF" text="#000000">
<table border="1" bgcolor="#007F7F" cellpadding="2" summary="">
<tr>
<td bgcolor="#FFFFFF"><img src="../../boost.png" alt=
"boost.png (6897 bytes)" width="277" height="86"></td>
<table border="1" bgcolor="#007F7F" cellpadding="2">
<tr>
<td bgcolor="#FFFFFF"><img src="../../boost.png" alt="boost.png (6897 bytes)" WIDTH="277" HEIGHT="86"></td>
<td><a href="../../index.htm"><font face="Arial" color="#FFFFFF"><big>Home </big></font></a></td>
<td><a href="../libraries.htm"><font face="Arial" color="#FFFFFF"><big>Libraries </big></font></a></td>
<td><a href="../../people/people.htm"><font face="Arial" color="#FFFFFF"><big>People </big></font></a></td>
<td><a href="../../more/faq.htm"><font face="Arial" color="#FFFFFF"><big>FAQ </big></font></a></td>
<td><a href="../../more/index.htm"><font face="Arial" color="#FFFFFF"><big>More </big></font></a></td>
</tr>
</table>
<td><a href="../../index.htm"><font face="Arial" color=
"#FFFFFF"><big>Home</big></font></a></td>
<h1>Function Object Traits</h1>
<td><a href="../libraries.htm"><font face="Arial" color=
"#FFFFFF"><big>Libraries</big></font></a></td>
<p>The header <nobr><a
href="../../boost/functional.hpp">functional.hpp</a></nobr> provides two
traits class templates for functions and function objects:</p>
<td><a href="../../people/people.htm"><font face="Arial" color=
"#FFFFFF"><big>People</big></font></a></td>
<table border="1">
<tr>
<th>Type</th>
<th>Contents</th>
<th>Description</th>
</tr>
<tr>
<td valign="top" rowspan="4"><tt><nobr>template &lt;typename T&gt;</nobr><br><nobr>struct unary_traits<nobr></tt>
</td>
<td valign="top"><tt><nobr>function_type</nobr></tt>
</td>
<td valign="top">The type of the function or function object itself (i.e., <tt>T</tt>).
</td>
</tr>
<tr>
<td valign="top"><tt><nobr>param_type</nobr></tt>
</td>
<td valign="top">The type that should be used to pass the function or function object as a parameter.
</td>
</tr>
<tr>
<td valign="top"><tt><nobr>result_type</nobr></tt>
</td>
<td valign="top">The type returned by the function or function object.
</td>
</tr>
<tr>
<td valign="top"><tt><nobr>argument_type</nobr></tt>
</td>
<td valign="top">The type of the argument to the function or function object.
</td>
</tr>
<tr>
<td valign="top" rowspan="5"><tt><nobr>template &lt;typename T&gt;</nobr><br><nobr>struct binary_traits<nobr></tt>
</td>
<td valign="top"><tt><nobr>function_type</nobr></tt>
</td>
<td valign="top">The type of the function or function object itself (i.e., <tt>T</tt>).
</td>
</tr>
<tr>
<td valign="top"><tt><nobr>param_type</nobr></tt>
</td>
<td valign="top">The type that should be used to pass the function or function object as a parameter.
</td>
</tr>
<tr>
<td valign="top"><tt><nobr>result_type</nobr></tt>
</td>
<td valign="top">The type returned by the function or function object.
</td>
</tr>
<tr>
<td valign="top"><tt><nobr>first_argument_type</nobr></tt>
</td>
<td valign="top">The type of the first argument to the function or function object.
</td>
</tr>
<tr>
<td valign="top"><tt><nobr>second_argument_type</nobr></tt>
</td>
<td valign="top">The type of the second argument to the function or function object.
</td>
</tr>
</table>
<td><a href="../../more/faq.htm"><font face="Arial" color=
"#FFFFFF"><big>FAQ</big></font></a></td>
<h3>Usage</h3>
<td><a href="../../more/index.htm"><font face="Arial" color=
"#FFFFFF"><big>More</big></font></a></td>
</tr>
</table>
<p><tt><nobr>unary_traits</nobr></tt> should be instantiated with
either a function taking a single parameter, or an adaptable unary
function object (i.e., a class derived from
<tt><nobr>std::unary_function</nobr></tt> or one which provides the
same typedefs). (See &sect;20.3.1 in the C++ Standard.)
<h1>Function Object Traits</h1>
<p><tt><nobr>binary_traits</nobr></tt> should be instantiated with
either a function taking two parameters, or an adaptable binary
function object (i.e., a class derived from
<tt><nobr>std::binary_function</nobr></tt> or one which provides the
same typedefs). (See &sect;20.3.1 in the C++ Standard.)
<p>The header <a href="../../boost/functional.hpp">functional.hpp</a>
provides two traits class templates for functions and function objects:</p>
<p>The most common usage of these templates is in function object
adapters, thus allowing them to adapt plain functions as well as
function objects. You can do this by wherever you would normally
write, for example,
<table border="1" summary="">
<tr>
<th>Type</th>
<blockquote><pre>
<th>Contents</th>
<th>Description</th>
</tr>
<tr>
<td valign="top" rowspan="4">
<tt>template&nbsp;&lt;typename&nbsp;T&gt;<br>
struct&nbsp;unary_traits</tt></td>
<td valign="top"><tt>function_type</tt></td>
<td valign="top">The type of the function or function object itself
(i.e., <tt>T</tt>).</td>
</tr>
<tr>
<td valign="top"><tt>param_type</tt></td>
<td valign="top">The type that should be used to pass the function or
function object as a parameter.</td>
</tr>
<tr>
<td valign="top"><tt>result_type</tt></td>
<td valign="top">The type returned by the function or function
object.</td>
</tr>
<tr>
<td valign="top"><tt>argument_type</tt></td>
<td valign="top">The type of the argument to the function or function
object.</td>
</tr>
<tr>
<td valign="top" rowspan="5">
<tt>template&nbsp;&lt;typename&nbsp;T&gt;<br>
struct&nbsp;binary_traits</tt></td>
<td valign="top"><tt>function_type</tt></td>
<td valign="top">The type of the function or function object itself
(i.e., <tt>T</tt>).</td>
</tr>
<tr>
<td valign="top"><tt>param_type</tt></td>
<td valign="top">The type that should be used to pass the function or
function object as a parameter.</td>
</tr>
<tr>
<td valign="top"><tt>result_type</tt></td>
<td valign="top">The type returned by the function or function
object.</td>
</tr>
<tr>
<td valign="top"><tt>first_argument_type</tt></td>
<td valign="top">The type of the first argument to the function or
function object.</td>
</tr>
<tr>
<td valign="top"><tt>second_argument_type</tt></td>
<td valign="top">The type of the second argument to the function or
function object.</td>
</tr>
</table>
<h3>Usage</h3>
<p><tt>unary_traits</tt> should be instantiated with either a function
taking a single parameter, or an adaptable unary function object (i.e., a
class derived from <tt>std::unary_function</tt> or one which provides the
same typedefs). (See &sect;20.3.1 in the C++ Standard.)</p>
<p><tt>binary_traits</tt> should be instantiated with either a function
taking two parameters, or an adaptable binary function object (i.e., a
class derived from <tt>std::binary_function</tt> or one which provides the
same typedefs). (See &sect;20.3.1 in the C++ Standard.)</p>
<p>The most common usage of these templates is in function object adapters,
thus allowing them to adapt plain functions as well as function objects.
You can do this by wherever you would normally write, for example,</p>
<blockquote>
<pre>
typename Operation::argument_type
</pre></blockquote>
</pre>
</blockquote>
<p>simply writing
<p>simply writing</p>
<blockquote><pre>
<blockquote>
<pre>
typename boost::unary_traits&lt;Operation&gt;::argument_type
</pre></blockquote>
</pre>
</blockquote>
<p>instead.
<p>instead.</p>
<h3>Additional Types Defined</h3>
<h3>Additional Types Defined</h3>
<p>In addition to the standard result and argument typedefs, these
traits templates define two additional types.
<p>In addition to the standard result and argument typedefs, these traits
templates define two additional types.</p>
<h4><tt>function_type</tt></h4>
<h4><tt>function_type</tt></h4>
<p>This is the type of the function or function object, and can be
used in declarations such as</p>
<p>This is the type of the function or function object, and can be used in
declarations such as</p>
<blockquote><pre>
<blockquote>
<pre>
template &lt;class Predicate&gt;
class unary_negate : // ...
{
@@ -139,19 +168,21 @@ class unary_negate : // ...
private:
<strong>typename unary_traits&lt;Predicate&gt;::function_type</strong> pred;
};
</pre></blockquote>
</pre>
</blockquote>
<p>If this typedef were not provided, it would not be possible to
declare <tt>pred</tt> in a way that would allow
<tt><nobr>unary_negate</nobr></tt> to be instantiated with a function
type (see the C++ Standard &sect;14.3.1 &para;3).
<p>If this typedef were not provided, it would not be possible to declare
<tt>pred</tt> in a way that would allow <tt>unary_negate</tt> to be
instantiated with a function type (see the C++ Standard &sect;14.3.1
&para;3).</p>
<h4><tt>param_type</tt></h4>
<h4><tt>param_type</tt></h4>
<p>This is a type suitable for passing the function or function object
as a parameter to another function. For example,
<p>This is a type suitable for passing the function or function object as a
parameter to another function. For example,</p>
<blockquote><pre>
<blockquote>
<pre>
template &lt;class Predicate&gt;
class unary_negate : // ...
{
@@ -162,35 +193,41 @@ class unary_negate : // ...
{}
// ...
};
</pre></blockquote>
</pre>
</blockquote>
<p>Function objects are passed by reference to const; function
pointers are passed by value.</p>
<p>Function objects are passed by reference to const; function pointers are
passed by value.</p>
<h3>Limitations</h3>
<h3>Limitations</h3>
<p>This library uses these traits within all function object adapters,
theoretically rendering <tt>ptr_fun</tt> obsolete. However, third party
adapters probably won't take advantage of this mechanism, and so
<tt>ptr_fun</tt> may still be required. Accordingly, this library also
provides <a href="ptr_fun.html">improved versions of the standard function
pointer adapters</a>.</p>
<p>This library uses these traits within all function object adapters,
theoretically rendering <tt><nobr>ptr_fun</nobr></tt> obsolete.
However, third party adapters probably won't take advantage of this
mechanism, and so <tt><nobr>ptr_fun</nobr></tt> may still be required.
Accordingly, this library also provides <a
href="ptr_fun.html">improved versions of the standard function pointer
adapters</a>.</p>
<p>These traits templates will also not work with compilers that fail to
support partial specialisation of templates. With these compilers, the
traits templates can only be instantiated with adaptable function objects,
thus requiring <tt>ptr_fun</tt> to be used, even with the function object
adapters in this library.</p>
<hr>
<p>These traits templates will also not work with compilers that fail
to support partial specialisation of templates. With these compilers,
the traits templates can only be instantiated with adaptable function
objects, thus requiring <tt><nobr>ptr_fun</nobr></tt> to be used, even
with the function object adapters in this library.
<p><a href="http://validator.w3.org/check?uri=referer"><img border="0" src=
"http://www.w3.org/Icons/valid-html401" alt="Valid HTML 4.01 Transitional"
height="31" width="88"></a></p>
<hr>
<p>Copyright &copy; 2000 Cadenza New Zealand Ltd. Permission to copy,
use, modify, sell and distribute this document is granted provided
this copyright notice appears in all copies. This document is provided
"as is" without express or implied warranty, and with no claim as to
its suitability for any purpose.</p>
<p>Revised
<!--webbot bot="Timestamp" s-type="EDITED" s-format="%d %B, %Y" startspan -->02
December, 2006<!--webbot bot="Timestamp" endspan i-checksum="38510" --></p>
<p>Revised 28 June 2000</p>
<p><i>Copyright &copy; 2000 Cadenza New Zealand Ltd.</i></p>
<p><i>Distributed under the Boost Software License, Version 1.0. (See
accompanying file <a href="../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
copy at <a href=
"http://www.boost.org/LICENSE_1_0.txt">http://www.boost.org/LICENSE_1_0.txt</a>)</i></p>
</body>
</html>