<html xmlns:v="urn:schemas-microsoft-com:vml"
xmlns:o="urn:schemas-microsoft-com:office:office"
xmlns:w="urn:schemas-microsoft-com:office:word"
xmlns:m="http://schemas.microsoft.com/office/2004/12/omml"
xmlns="http://www.w3.org/TR/REC-html40">

<head>
<meta http-equiv=Content-Type content="text/html; charset=windows-1252">
<meta name=ProgId content=Word.Document>
<meta name=Generator content="Microsoft Word 14">
<meta name=Originator content="Microsoft Word 14">
<link rel=File-List
href="mem_fn_optional_parameter_proposal3_files/filelist.xml">
<link rel=themeData
href="mem_fn_optional_parameter_proposal3_files/themedata.thmx">
<link rel=colorSchemeMapping
href="mem_fn_optional_parameter_proposal3_files/colorschememapping.xml">
<!--[if gte mso 9]><xml>
 <w:WordDocument>
  <w:Zoom>130</w:Zoom>
  <w:SpellingState>Clean</w:SpellingState>
  <w:GrammarState>Clean</w:GrammarState>
  <w:TrackMoves>false</w:TrackMoves>
  <w:TrackFormatting/>
  <w:ValidateAgainstSchemas/>
  <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
  <w:IgnoreMixedContent>false</w:IgnoreMixedContent>
  <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
  <w:DoNotPromoteQF/>
  <w:LidThemeOther>EN-GB</w:LidThemeOther>
  <w:LidThemeAsian>X-NONE</w:LidThemeAsian>
  <w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript>
  <w:Compatibility>
   <w:BreakWrappedTables/>
   <w:SplitPgBreakAndParaMark/>
  </w:Compatibility>
  <w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel>
  <m:mathPr>
   <m:mathFont m:val="Cambria Math"/>
   <m:brkBin m:val="before"/>
   <m:brkBinSub m:val="&#45;-"/>
   <m:smallFrac m:val="off"/>
   <m:dispDef/>
   <m:lMargin m:val="0"/>
   <m:rMargin m:val="0"/>
   <m:defJc m:val="centerGroup"/>
   <m:wrapIndent m:val="1440"/>
   <m:intLim m:val="subSup"/>
   <m:naryLim m:val="undOvr"/>
  </m:mathPr></w:WordDocument>
</xml><![endif]--><!--[if gte mso 9]><xml>
 <w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"
  DefSemiHidden="true" DefQFormat="false" DefPriority="99"
  LatentStyleCount="267">
  <w:LsdException Locked="false" Priority="0" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Normal"/>
  <w:LsdException Locked="false" Priority="9" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="heading 1"/>
  <w:LsdException Locked="false" Priority="9" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="heading 2"/>
  <w:LsdException Locked="false" Priority="9" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="heading 3"/>
  <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4"/>
  <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5"/>
  <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6"/>
  <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7"/>
  <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8"/>
  <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9"/>
  <w:LsdException Locked="false" Priority="39" Name="toc 1"/>
  <w:LsdException Locked="false" Priority="39" Name="toc 2"/>
  <w:LsdException Locked="false" Priority="39" Name="toc 3"/>
  <w:LsdException Locked="false" Priority="39" Name="toc 4"/>
  <w:LsdException Locked="false" Priority="39" Name="toc 5"/>
  <w:LsdException Locked="false" Priority="39" Name="toc 6"/>
  <w:LsdException Locked="false" Priority="39" Name="toc 7"/>
  <w:LsdException Locked="false" Priority="39" Name="toc 8"/>
  <w:LsdException Locked="false" Priority="39" Name="toc 9"/>
  <w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"/>
  <w:LsdException Locked="false" Priority="10" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Title"/>
  <w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font"/>
  <w:LsdException Locked="false" Priority="11" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/>
  <w:LsdException Locked="false" Priority="22" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Strong"/>
  <w:LsdException Locked="false" Priority="20" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/>
  <w:LsdException Locked="false" Priority="59" SemiHidden="false"
   UnhideWhenUsed="false" Name="Table Grid"/>
  <w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"/>
  <w:LsdException Locked="false" Priority="1" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/>
  <w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading"/>
  <w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List"/>
  <w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid"/>
  <w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1"/>
  <w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2"/>
  <w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1"/>
  <w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2"/>
  <w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1"/>
  <w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2"/>
  <w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3"/>
  <w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List"/>
  <w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading"/>
  <w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List"/>
  <w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid"/>
  <w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 1"/>
  <w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 1"/>
  <w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 1"/>
  <w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/>
  <w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/>
  <w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/>
  <w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"/>
  <w:LsdException Locked="false" Priority="34" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/>
  <w:LsdException Locked="false" Priority="29" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Quote"/>
  <w:LsdException Locked="false" Priority="30" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/>
  <w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/>
  <w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/>
  <w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/>
  <w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/>
  <w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 1"/>
  <w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/>
  <w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 1"/>
  <w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/>
  <w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 2"/>
  <w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 2"/>
  <w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 2"/>
  <w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/>
  <w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/>
  <w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/>
  <w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/>
  <w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/>
  <w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/>
  <w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/>
  <w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 2"/>
  <w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/>
  <w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 2"/>
  <w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/>
  <w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 3"/>
  <w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 3"/>
  <w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 3"/>
  <w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/>
  <w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/>
  <w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/>
  <w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/>
  <w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/>
  <w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/>
  <w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/>
  <w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 3"/>
  <w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/>
  <w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 3"/>
  <w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/>
  <w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 4"/>
  <w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 4"/>
  <w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 4"/>
  <w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/>
  <w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/>
  <w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/>
  <w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/>
  <w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/>
  <w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/>
  <w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/>
  <w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 4"/>
  <w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/>
  <w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 4"/>
  <w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/>
  <w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 5"/>
  <w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 5"/>
  <w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 5"/>
  <w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/>
  <w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/>
  <w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/>
  <w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/>
  <w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/>
  <w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/>
  <w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/>
  <w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 5"/>
  <w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/>
  <w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 5"/>
  <w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/>
  <w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 6"/>
  <w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 6"/>
  <w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 6"/>
  <w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/>
  <w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/>
  <w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/>
  <w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/>
  <w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/>
  <w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/>
  <w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/>
  <w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 6"/>
  <w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/>
  <w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 6"/>
  <w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/>
  <w:LsdException Locked="false" Priority="19" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/>
  <w:LsdException Locked="false" Priority="21" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/>
  <w:LsdException Locked="false" Priority="31" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/>
  <w:LsdException Locked="false" Priority="32" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/>
  <w:LsdException Locked="false" Priority="33" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Book Title"/>
  <w:LsdException Locked="false" Priority="37" Name="Bibliography"/>
  <w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"/>
 </w:LatentStyles>
</xml><![endif]-->
<style>
<!--
 /* Font Definitions */
 @font-face
	{font-family:SimSun;
	panose-1:2 1 6 0 3 1 1 1 1 1;
	mso-font-alt:\5B8B\4F53;
	mso-font-charset:134;
	mso-generic-font-family:auto;
	mso-font-pitch:variable;
	mso-font-signature:3 680460288 22 0 262145 0;}
@font-face
	{font-family:"Cambria Math";
	panose-1:2 4 5 3 5 4 6 3 2 4;
	mso-font-charset:1;
	mso-generic-font-family:roman;
	mso-font-format:other;
	mso-font-pitch:variable;
	mso-font-signature:0 0 0 0 0 0;}
@font-face
	{font-family:Cambria;
	panose-1:2 4 5 3 5 4 6 3 2 4;
	mso-font-charset:0;
	mso-generic-font-family:roman;
	mso-font-pitch:variable;
	mso-font-signature:-536870145 1073743103 0 0 415 0;}
@font-face
	{font-family:Calibri;
	panose-1:2 15 5 2 2 2 4 3 2 4;
	mso-font-charset:0;
	mso-generic-font-family:swiss;
	mso-font-pitch:variable;
	mso-font-signature:-536870145 1073786111 1 0 415 0;}
@font-face
	{font-family:Verdana;
	panose-1:2 11 6 4 3 5 4 4 2 4;
	mso-font-charset:0;
	mso-generic-font-family:swiss;
	mso-font-pitch:variable;
	mso-font-signature:-1593833729 1073750107 16 0 415 0;}
@font-face
	{font-family:"Anonymous Pro";
	panose-1:2 6 6 9 3 2 2 0 5 4;
	mso-font-charset:0;
	mso-generic-font-family:modern;
	mso-font-pitch:fixed;
	mso-font-signature:-1610612049 1879091658 0 0 159 0;}
@font-face
	{font-family:"Segoe UI";
	panose-1:2 11 5 2 4 2 4 2 2 3;
	mso-font-charset:0;
	mso-generic-font-family:swiss;
	mso-font-pitch:variable;
	mso-font-signature:-520084737 -1073683329 41 0 479 0;}
@font-face
	{font-family:"Trebuchet MS";
	panose-1:2 11 6 3 2 2 2 2 2 4;
	mso-font-charset:0;
	mso-generic-font-family:swiss;
	mso-font-pitch:variable;
	mso-font-signature:647 0 0 0 159 0;}
@font-face
	{font-family:"Arial Rounded MT Bold";
	panose-1:2 15 7 4 3 5 4 3 2 4;
	mso-font-charset:0;
	mso-generic-font-family:swiss;
	mso-font-pitch:variable;
	mso-font-signature:3 0 0 0 1 0;}
@font-face
	{font-family:"\@SimSun";
	panose-1:2 1 6 0 3 1 1 1 1 1;
	mso-font-charset:134;
	mso-generic-font-family:auto;
	mso-font-pitch:variable;
	mso-font-signature:3 680460288 22 0 262145 0;}
@font-face
	{font-family:Consolas;
	panose-1:2 11 6 9 2 2 4 3 2 4;
	mso-font-charset:0;
	mso-generic-font-family:modern;
	mso-font-pitch:fixed;
	mso-font-signature:-520092929 1073806591 9 0 415 0;}
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
	{mso-style-unhide:no;
	mso-style-qformat:yes;
	mso-style-parent:"";
	margin-top:0cm;
	margin-right:0cm;
	margin-bottom:8.0pt;
	margin-left:0cm;
	line-height:115%;
	mso-pagination:widow-orphan;
	font-size:12.0pt;
	font-family:"Times New Roman","serif";
	mso-fareast-font-family:SimSun;}
h1
	{mso-style-priority:9;
	mso-style-unhide:no;
	mso-style-qformat:yes;
	mso-style-link:"Heading 1 Char";
	margin-top:12.0pt;
	margin-right:0cm;
	margin-bottom:3.0pt;
	margin-left:0cm;
	line-height:115%;
	mso-pagination:widow-orphan;
	page-break-after:avoid;
	mso-outline-level:1;
	font-size:16.0pt;
	font-family:"Verdana","sans-serif";
	mso-fareast-font-family:SimSun;}
h2
	{mso-style-priority:9;
	mso-style-unhide:no;
	mso-style-qformat:yes;
	mso-style-link:"Heading 2 Char";
	margin-top:12.0pt;
	margin-right:0cm;
	margin-bottom:3.0pt;
	margin-left:0cm;
	line-height:115%;
	mso-pagination:widow-orphan;
	page-break-after:avoid;
	mso-outline-level:2;
	font-size:15.0pt;
	font-family:"Times New Roman","serif";
	mso-fareast-font-family:SimSun;}
h3
	{mso-style-priority:9;
	mso-style-unhide:no;
	mso-style-qformat:yes;
	mso-style-link:"Heading 3 Char";
	margin-top:12.0pt;
	margin-right:0cm;
	margin-bottom:3.0pt;
	margin-left:0cm;
	line-height:115%;
	mso-pagination:widow-orphan;
	page-break-after:avoid;
	mso-outline-level:3;
	font-size:13.0pt;
	font-family:"Cambria","serif";
	mso-fareast-font-family:SimSun;}
p.MsoHeader, li.MsoHeader, div.MsoHeader
	{mso-style-noshow:yes;
	mso-style-priority:99;
	mso-style-link:"Header Char";
	margin-top:0cm;
	margin-right:0cm;
	margin-bottom:8.0pt;
	margin-left:0cm;
	line-height:115%;
	mso-pagination:widow-orphan;
	font-size:12.0pt;
	font-family:"Times New Roman","serif";
	mso-fareast-font-family:SimSun;}
p.MsoFooter, li.MsoFooter, div.MsoFooter
	{mso-style-noshow:yes;
	mso-style-priority:99;
	mso-style-link:"Footer Char";
	margin-top:0cm;
	margin-right:0cm;
	margin-bottom:8.0pt;
	margin-left:0cm;
	line-height:115%;
	mso-pagination:widow-orphan;
	font-size:12.0pt;
	font-family:"Times New Roman","serif";
	mso-fareast-font-family:SimSun;}
strong
	{mso-style-priority:22;
	mso-style-unhide:no;
	mso-style-qformat:yes;
	font-family:"Calibri","sans-serif";
	mso-ascii-font-family:Calibri;
	mso-ascii-theme-font:minor-latin;
	mso-hansi-font-family:Calibri;
	mso-hansi-theme-font:minor-latin;
	mso-bidi-font-family:"Courier New";}
p.MsoNoSpacing, li.MsoNoSpacing, div.MsoNoSpacing
	{mso-style-priority:1;
	mso-style-unhide:no;
	mso-style-qformat:yes;
	margin:0cm;
	margin-bottom:.0001pt;
	mso-pagination:widow-orphan;
	font-size:12.0pt;
	font-family:"Times New Roman","serif";
	mso-fareast-font-family:SimSun;}
p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
	{mso-style-priority:34;
	mso-style-unhide:no;
	mso-style-qformat:yes;
	margin-top:0cm;
	margin-right:0cm;
	margin-bottom:8.0pt;
	margin-left:36.0pt;
	mso-add-space:auto;
	line-height:115%;
	mso-pagination:widow-orphan;
	font-size:12.0pt;
	font-family:"Times New Roman","serif";
	mso-fareast-font-family:SimSun;}
p.MsoListParagraphCxSpFirst, li.MsoListParagraphCxSpFirst, div.MsoListParagraphCxSpFirst
	{mso-style-priority:34;
	mso-style-unhide:no;
	mso-style-qformat:yes;
	mso-style-type:export-only;
	margin-top:0cm;
	margin-right:0cm;
	margin-bottom:0cm;
	margin-left:36.0pt;
	margin-bottom:.0001pt;
	mso-add-space:auto;
	line-height:115%;
	mso-pagination:widow-orphan;
	font-size:12.0pt;
	font-family:"Times New Roman","serif";
	mso-fareast-font-family:SimSun;}
p.MsoListParagraphCxSpMiddle, li.MsoListParagraphCxSpMiddle, div.MsoListParagraphCxSpMiddle
	{mso-style-priority:34;
	mso-style-unhide:no;
	mso-style-qformat:yes;
	mso-style-type:export-only;
	margin-top:0cm;
	margin-right:0cm;
	margin-bottom:0cm;
	margin-left:36.0pt;
	margin-bottom:.0001pt;
	mso-add-space:auto;
	line-height:115%;
	mso-pagination:widow-orphan;
	font-size:12.0pt;
	font-family:"Times New Roman","serif";
	mso-fareast-font-family:SimSun;}
p.MsoListParagraphCxSpLast, li.MsoListParagraphCxSpLast, div.MsoListParagraphCxSpLast
	{mso-style-priority:34;
	mso-style-unhide:no;
	mso-style-qformat:yes;
	mso-style-type:export-only;
	margin-top:0cm;
	margin-right:0cm;
	margin-bottom:8.0pt;
	margin-left:36.0pt;
	mso-add-space:auto;
	line-height:115%;
	mso-pagination:widow-orphan;
	font-size:12.0pt;
	font-family:"Times New Roman","serif";
	mso-fareast-font-family:SimSun;}
p.MsoQuote, li.MsoQuote, div.MsoQuote
	{mso-style-priority:29;
	mso-style-unhide:no;
	mso-style-qformat:yes;
	mso-style-link:"Quote Char";
	margin-top:0cm;
	margin-right:0cm;
	margin-bottom:8.0pt;
	margin-left:0cm;
	line-height:115%;
	mso-pagination:widow-orphan;
	font-size:12.0pt;
	font-family:"Trebuchet MS","sans-serif";
	mso-fareast-font-family:SimSun;
	mso-bidi-font-family:"Times New Roman";
	color:black;
	font-style:italic;}
p.MsoIntenseQuote, li.MsoIntenseQuote, div.MsoIntenseQuote
	{mso-style-priority:30;
	mso-style-unhide:no;
	mso-style-qformat:yes;
	mso-style-link:"Intense Quote Char";
	margin-top:10.0pt;
	margin-right:46.8pt;
	margin-bottom:14.0pt;
	margin-left:46.8pt;
	line-height:115%;
	mso-pagination:widow-orphan;
	font-size:12.0pt;
	font-family:"Arial Rounded MT Bold","sans-serif";
	mso-fareast-font-family:SimSun;
	mso-bidi-font-family:"Times New Roman";
	font-weight:bold;}
span.MsoIntenseEmphasis
	{mso-style-priority:21;
	mso-style-unhide:no;
	mso-style-qformat:yes;
	font-family:"Trebuchet MS","sans-serif";
	mso-ascii-font-family:"Trebuchet MS";
	mso-hansi-font-family:"Trebuchet MS";
	color:windowtext;
	font-weight:bold;
	font-style:normal;}
span.Heading1Char
	{mso-style-name:"Heading 1 Char";
	mso-style-priority:9;
	mso-style-unhide:no;
	mso-style-locked:yes;
	mso-style-link:"Heading 1";
	font-family:"Verdana","sans-serif";
	mso-ascii-font-family:Verdana;
	mso-hansi-font-family:Verdana;
	font-weight:bold;}
span.Heading2Char
	{mso-style-name:"Heading 2 Char";
	mso-style-noshow:yes;
	mso-style-priority:9;
	mso-style-unhide:no;
	mso-style-locked:yes;
	mso-style-link:"Heading 2";
	font-family:"Times New Roman","serif";
	mso-ascii-font-family:"Times New Roman";
	mso-hansi-font-family:"Times New Roman";
	mso-bidi-font-family:"Times New Roman";
	font-weight:bold;}
span.Heading3Char
	{mso-style-name:"Heading 3 Char";
	mso-style-noshow:yes;
	mso-style-priority:9;
	mso-style-unhide:no;
	mso-style-locked:yes;
	mso-style-link:"Heading 3";
	font-family:"Cambria","serif";
	mso-ascii-font-family:Cambria;
	mso-hansi-font-family:Cambria;
	font-weight:bold;}
span.HeaderChar
	{mso-style-name:"Header Char";
	mso-style-noshow:yes;
	mso-style-priority:99;
	mso-style-unhide:no;
	mso-style-locked:yes;
	mso-style-link:Header;
	font-family:"Times New Roman","serif";
	mso-ascii-font-family:"Times New Roman";
	mso-hansi-font-family:"Times New Roman";
	mso-bidi-font-family:"Times New Roman";}
span.FooterChar
	{mso-style-name:"Footer Char";
	mso-style-noshow:yes;
	mso-style-priority:99;
	mso-style-unhide:no;
	mso-style-locked:yes;
	mso-style-link:Footer;
	font-family:"Times New Roman","serif";
	mso-ascii-font-family:"Times New Roman";
	mso-hansi-font-family:"Times New Roman";
	mso-bidi-font-family:"Times New Roman";}
span.QuoteChar
	{mso-style-name:"Quote Char";
	mso-style-priority:29;
	mso-style-unhide:no;
	mso-style-locked:yes;
	mso-style-link:Quote;
	font-family:"Trebuchet MS","sans-serif";
	mso-ascii-font-family:"Trebuchet MS";
	mso-hansi-font-family:"Trebuchet MS";
	color:black;
	font-style:italic;}
span.IntenseQuoteChar
	{mso-style-name:"Intense Quote Char";
	mso-style-priority:30;
	mso-style-unhide:no;
	mso-style-locked:yes;
	mso-style-link:"Intense Quote";
	font-family:"Arial Rounded MT Bold","sans-serif";
	mso-ascii-font-family:"Arial Rounded MT Bold";
	mso-hansi-font-family:"Arial Rounded MT Bold";
	font-weight:bold;}
p.ecxmsonormal, li.ecxmsonormal, div.ecxmsonormal
	{mso-style-name:ecxmsonormal;
	mso-style-unhide:no;
	margin-top:0cm;
	margin-right:0cm;
	margin-bottom:16.2pt;
	margin-left:0cm;
	mso-pagination:widow-orphan;
	font-size:12.0pt;
	font-family:"Times New Roman","serif";
	mso-fareast-font-family:SimSun;}
p.msochpdefault, li.msochpdefault, div.msochpdefault
	{mso-style-name:msochpdefault;
	mso-style-unhide:no;
	mso-margin-top-alt:auto;
	margin-right:0cm;
	mso-margin-bottom-alt:auto;
	margin-left:0cm;
	mso-pagination:widow-orphan;
	font-size:10.0pt;
	font-family:"Calibri","sans-serif";
	mso-fareast-font-family:SimSun;
	mso-bidi-font-family:"Times New Roman";}
span.unsafesenderemail1
	{mso-style-name:unsafesenderemail1;
	mso-style-unhide:no;}
span.SpellE
	{mso-style-name:"";
	mso-spl-e:yes;}
span.GramE
	{mso-style-name:"";
	mso-gram-e:yes;}
.MsoChpDefault
	{mso-style-type:export-only;
	mso-default-props:yes;
	font-size:10.0pt;
	mso-ansi-font-size:10.0pt;
	mso-bidi-font-size:10.0pt;
	font-family:"Calibri","sans-serif";
	mso-ascii-font-family:Calibri;
	mso-hansi-font-family:Calibri;}
@page WordSection1
	{size:595.3pt 841.9pt;
	margin:72.0pt 72.0pt 72.0pt 72.0pt;
	mso-header-margin:35.4pt;
	mso-footer-margin:35.4pt;
	mso-paper-source:0;}
div.WordSection1
	{page:WordSection1;}
 /* List Definitions */
 @list l0
	{mso-list-id:1506628674;
	mso-list-type:hybrid;
	mso-list-template-ids:1888769342 134807567 134807577 134807579 134807567 134807577 134807579 134807567 134807577 134807579;}
@list l0:level1
	{mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-18.0pt;}
@list l0:level2
	{mso-level-number-format:alpha-lower;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-18.0pt;}
@list l0:level3
	{mso-level-number-format:roman-lower;
	mso-level-tab-stop:none;
	mso-level-number-position:right;
	text-indent:-9.0pt;}
@list l0:level4
	{mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-18.0pt;}
@list l0:level5
	{mso-level-number-format:alpha-lower;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-18.0pt;}
@list l0:level6
	{mso-level-number-format:roman-lower;
	mso-level-tab-stop:none;
	mso-level-number-position:right;
	text-indent:-9.0pt;}
@list l0:level7
	{mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-18.0pt;}
@list l0:level8
	{mso-level-number-format:alpha-lower;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-18.0pt;}
@list l0:level9
	{mso-level-number-format:roman-lower;
	mso-level-tab-stop:none;
	mso-level-number-position:right;
	text-indent:-9.0pt;}
ol
	{margin-bottom:0cm;}
ul
	{margin-bottom:0cm;}
-->
</style>
<!--[if gte mso 10]>
<style>
 /* Style Definitions */
 table.MsoNormalTable
	{mso-style-name:"Table Normal";
	mso-tstyle-rowband-size:0;
	mso-tstyle-colband-size:0;
	mso-style-noshow:yes;
	mso-style-priority:99;
	mso-style-parent:"";
	mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
	mso-para-margin:0cm;
	mso-para-margin-bottom:.0001pt;
	mso-pagination:widow-orphan;
	font-size:10.0pt;
	font-family:"Calibri","sans-serif";}
</style>
<![endif]--><!--[if gte mso 9]><xml>
 <o:shapedefaults v:ext="edit" spidmax="1026"/>
</xml><![endif]--><!--[if gte mso 9]><xml>
 <o:shapelayout v:ext="edit">
  <o:idmap v:ext="edit" data="1"/>
 </o:shapelayout></xml><![endif]-->
</head>

<body lang=EN-GB style='tab-interval:36.0pt'>

<div class=WordSection1>

<table class=MsoNormalTable border=0 cellspacing=0 cellpadding=0 width=619
 style='width:464.25pt;border-collapse:collapse;mso-yfti-tbllook:1184;
 mso-padding-alt:0cm 0cm 0cm 0cm'>
 <tr style='mso-yfti-irow:0;mso-yfti-firstrow:yes'>
  <td width=123 valign=top style='width:92.4pt;padding:0cm 0cm 0cm 0cm'>
  <p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
  normal'><span style='font-size:10.0pt'>Document number:</span></p>
  </td>
  <td width=496 style='width:371.85pt;padding:0cm 0cm 0cm 0cm'>
  <p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
  normal'><span class=SpellE><span style='font-size:10.0pt'>N3702</span></span></p>
  </td>
 </tr>
 <tr style='mso-yfti-irow:1'>
  <td width=123 valign=top style='width:92.4pt;padding:0cm 0cm 0cm 0cm'>
  <p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
  normal'><span style='font-size:10.0pt'>Date:</span></p>
  </td>
  <td width=496 style='width:371.85pt;padding:0cm 0cm 0cm 0cm'>
  <p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
  normal'><span style='font-size:10.0pt'>2013-06-28</span></p>
  </td>
 </tr>
 <tr style='mso-yfti-irow:2'>
  <td width=123 valign=top style='width:92.4pt;padding:0cm 0cm 0cm 0cm'>
  <p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
  normal'><span style='font-size:10.0pt'>Project:</span></p>
  </td>
  <td width=496 style='width:371.85pt;padding:0cm 0cm 0cm 0cm'>
  <p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
  normal'><span style='font-size:10.0pt'>Programming Language C++, Library
  Working Group</span></p>
  </td>
 </tr>
 <tr style='mso-yfti-irow:3;mso-yfti-lastrow:yes'>
  <td width=123 valign=top style='width:92.4pt;padding:0cm 0cm 0cm 0cm'>
  <p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
  normal'><span style='font-size:10.0pt'>Reply-to:</span></p>
  </td>
  <td width=496 style='width:371.85pt;padding:0cm 0cm 0cm 0cm'>
  <p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
  normal'><span style='font-size:10.0pt'>Mikhail Semenov&lt;<span
  class=unsafesenderemail1><span style='color:black'>mikhailsemenov1957@gmail.com</span></span>&gt;</span></p>
  </td>
 </tr>
</table>

<h1><span style='font-size:10.0pt;line-height:115%;mso-fareast-font-family:
"Times New Roman"'>&nbsp;</span><span style='mso-fareast-font-family:"Times New Roman"'><o:p></o:p></span></h1>

<h1 align=center style='text-align:center'><span style='font-size:15.0pt;
line-height:115%;mso-fareast-font-family:"Times New Roman"'>Introducing an
optional parameter for </span><span class=SpellE><strong><span
style='font-size:15.0pt;line-height:115%;mso-fareast-font-family:"Times New Roman"'>mem_fn</span></strong></span><span
style='font-size:15.0pt;line-height:115%;mso-fareast-font-family:"Times New Roman"'>,
which allows to bind an object to its member function</span><span
style='mso-fareast-font-family:"Times New Roman"'><o:p></o:p></span></h1>

<h2 style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:l0 level1 lfo2'><![if !supportLists]><span
style='mso-fareast-font-family:"Times New Roman"'><span style='mso-list:Ignore'>1.<span
style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><![endif]><span
style='mso-fareast-font-family:"Times New Roman"'>Introduction<o:p></o:p></span></h2>

<p class=MsoNormal>When a member function is used as a parameter to another
function (the latter is usually called a <b style='mso-bidi-font-weight:normal'><i
style='mso-bidi-font-style:normal'>functional</i></b>) it is often necessary to
provide the corresponding class object as a parameter as well. But functionals,
like for example an integral, are often written to accept one global function.
In cases when a member function and an object are needed, it is necessary to
bind them together,<span style='mso-spacerun:yes'> </span>so that the result
can be supplied to the corresponding functional as one parameter. Let us
consider the following functional <b style='mso-bidi-font-weight:normal'>integrate
</b>(it can be part of<span style='mso-spacerun:yes'> </span>a library):&nbsp;</p>

<p class=MsoNormal><strong><span lang=FR style='mso-ascii-font-family:Calibri;
mso-hansi-font-family:Calibri;mso-ansi-language:FR'>double <span class=SpellE><span
class=GramE>integrate</span></span><span class=GramE>(</span><span
class=SpellE>std</span>::<span class=SpellE>function</span>&lt;double(double,
double, double, double, double)&gt; f,</span></strong><span lang=FR
style='mso-ansi-language:FR'><o:p></o:p></span></p>

<p class=MsoNormal><strong><span lang=FR style='mso-ascii-font-family:Calibri;
mso-hansi-font-family:Calibri;mso-ansi-language:FR'>&nbsp;<span
style='mso-spacerun:yes'> </span>double x1, double x2,
double y1, double y2, double z1, double z2,&nbsp; double a1, double a2, double
b1, double b2)&nbsp;;</span></strong><b><span lang=FR style='font-family:"Calibri","sans-serif";
mso-bidi-font-family:"Courier New";mso-ansi-language:FR'><o:p></o:p></span></b></p>

<p class=MsoNormal>We need to call <b style='mso-bidi-font-weight:normal'>integrate</b>
with<span style='mso-spacerun:yes'> </span>the parameterized function <span
class=SpellE><b style='mso-bidi-font-weight:normal'>fa</b></span>, which is
defined as a member of the class <b style='mso-bidi-font-weight:normal'>A</b>:</p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt'><strong><span
style='mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri'>class A</span></strong></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt'><strong><span
style='mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri'>{</span></strong></p>

<p class=ecxmsonormal style='margin-bottom:0cm;margin-bottom:.0001pt;
background:white'><strong><span style='mso-ascii-font-family:Calibri;
mso-hansi-font-family:Calibri'>&nbsp;&nbsp;&nbsp;&nbsp; double p;</span></strong></p>

<p class=ecxmsonormal style='margin-bottom:0cm;margin-bottom:.0001pt;
background:white'><strong><span style='mso-ascii-font-family:Calibri;
mso-hansi-font-family:Calibri'>&nbsp;</span></strong></p>

<p class=ecxmsonormal style='margin-bottom:0cm;margin-bottom:.0001pt;
background:white'><strong><span style='mso-ascii-font-family:Calibri;
mso-hansi-font-family:Calibri'>public:</span></strong></p>

<p class=ecxmsonormal style='margin-bottom:0cm;margin-bottom:.0001pt;
background:white'><strong><span style='mso-ascii-font-family:Calibri;
mso-hansi-font-family:Calibri'>&nbsp;&nbsp;&nbsp;&nbsp; </span></strong><span
class=GramE><strong><span lang=FR style='mso-ascii-font-family:Calibri;
mso-hansi-font-family:Calibri;mso-ansi-language:FR'>A(</span></strong></span><strong><span
lang=FR style='mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri;
mso-ansi-language:FR'>double p1):p(p1) {}<o:p></o:p></span></strong></p>

<p class=ecxmsonormal style='margin-bottom:0cm;margin-bottom:.0001pt;
background:white'><strong><span style='mso-ascii-font-family:Calibri;
mso-hansi-font-family:Calibri'><span style='mso-spacerun:yes'> </span>void <span
class=SpellE>set_param</span>(double p1) {<span style='mso-spacerun:yes'>
</span>p = p1; }</span></strong></p>

<p class=ecxmsonormal style='margin-bottom:0cm;margin-bottom:.0001pt;
background:white'><strong><span style='mso-ascii-font-family:Calibri;
mso-hansi-font-family:Calibri'>&nbsp;&nbsp;&nbsp;&nbsp; </span></strong><strong><span
lang=FR style='mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri;
mso-ansi-language:FR'>double <span class=GramE>fa(</span>double x, double y,
double z, double a, double b);</span></strong><span lang=FR style='mso-ansi-language:
FR'><o:p></o:p></span></p>

<p class=ecxmsonormal style='margin-bottom:0cm;margin-bottom:.0001pt;
background:white'><strong><span style='mso-ascii-font-family:Calibri;
mso-hansi-font-family:Calibri'>};</span></strong></p>

<p class=ecxmsonormal style='margin-bottom:0cm;margin-bottom:.0001pt;
background:white'><o:p>&nbsp;</o:p></p>

<p class=MsoNormal>The member-variable<span style='mso-spacerun:yes'> </span><b
style='mso-bidi-font-weight:normal'>p</b> is a &quot;hidden&quot; parameter of
the function <span class=SpellE><b style='mso-bidi-font-weight:normal'>fa</b></span>.
We create an object:</p>

<p class=ecxmsonormal style='background:white'><strong><span style='font-size:
11.0pt'>A a(5.0);</span></strong></p>

<p class=ecxmsonormal style='background:white'>If we want to call <b
style='mso-bidi-font-weight:normal'>integrate</b> with <span class=SpellE><b
style='mso-bidi-font-weight:normal'>a.fa</b></span><span
style='mso-spacerun:yes'> </span>we have three options:</p>

<p class=ecxmsonormal style='margin-top:0cm;margin-right:0cm;margin-bottom:
0cm;margin-left:36.0pt;margin-bottom:.0001pt;text-indent:-18.0pt;background:
white'><strong><span style='mso-ascii-font-family:Calibri;mso-hansi-font-family:
Calibri;font-weight:normal;mso-bidi-font-weight:bold'>(1)</span></strong><strong><span
style='font-size:7.0pt;font-family:"Times New Roman","serif"'>&nbsp;&nbsp; </span></strong><strong><span
style='mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri'>double r = </span></strong><strong><span
style='font-size:10.5pt;font-family:"Segoe UI","sans-serif";color:black'>&nbsp;</span></strong><strong><span
style='mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri'>integrate(<span
class=SpellE>std</span>::bind(&amp;A::<span class=SpellE>fa</span>, &amp;a, _1,
_2, _3, _4, _5), x1, x2, y1,y2, z1, z2,&nbsp;&nbsp; </span></strong></p>

<p class=ecxmsonormal style='margin-top:0cm;margin-right:0cm;margin-bottom:
0cm;margin-left:36.0pt;margin-bottom:.0001pt;background:white'><strong><span
style='mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
a1, a2, b1, b2);</span></strong></p>

<p class=ecxmsonormal style='margin-bottom:0cm;margin-bottom:.0001pt;
background:white'><strong><span style='mso-ascii-font-family:Calibri;
mso-hansi-font-family:Calibri'>&nbsp;</span></strong></p>

<p class=ecxmsonormal style='margin-top:0cm;margin-right:0cm;margin-bottom:
0cm;margin-left:36.0pt;margin-bottom:.0001pt;text-indent:-18.0pt;background:
white'><strong><span style='mso-ascii-font-family:Calibri;mso-hansi-font-family:
Calibri;font-weight:normal'>(2)</span></strong><strong><span style='font-size:
7.0pt;font-family:"Times New Roman","serif";font-weight:normal'>&nbsp;&nbsp; </span></strong><span
style='font-size:10.5pt;font-family:"Segoe UI","sans-serif";color:black'>&nbsp;</span><strong><span
style='mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri'>double r =
integrate</span></strong></p>

<p class=ecxmsonormal style='margin-bottom:0cm;margin-bottom:.0001pt;
background:white'><strong><span style='mso-ascii-font-family:Calibri;
mso-hansi-font-family:Calibri'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></strong><strong><span lang=FR style='mso-ascii-font-family:Calibri;
mso-hansi-font-family:Calibri;mso-ansi-language:FR'>([&amp;a<span class=GramE>](</span>double
x, double y, double z, double a, double b) { return <span class=SpellE>a.fa</span>(x,
y, z, a, b);},&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></strong><span lang=FR
style='mso-ansi-language:FR'><o:p></o:p></span></p>

<p class=ecxmsonormal style='margin-bottom:0cm;margin-bottom:.0001pt;
background:white'><strong><span lang=FR style='mso-ascii-font-family:Calibri;
mso-hansi-font-family:Calibri;mso-ansi-language:FR'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
x1, x2, y1, y2, z1, z2, a1, a2, b1, b2);&nbsp;<o:p></o:p></span></strong></p>

<p class=ecxmsonormal style='margin-bottom:0cm;margin-bottom:.0001pt;
background:white'><strong><span lang=FR style='mso-ascii-font-family:Calibri;
mso-hansi-font-family:Calibri;mso-ansi-language:FR'><o:p>&nbsp;</o:p></span></strong></p>

<p class=ecxmsonormal style='margin-bottom:0cm;margin-bottom:.0001pt;
background:white'><strong><span lang=FR style='mso-ascii-font-family:Calibri;
mso-hansi-font-family:Calibri;mso-ansi-language:FR'><span
style='mso-spacerun:yes'> </span></span></strong><strong><span
style='mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri;font-weight:
normal;mso-bidi-font-weight:bold'>(3)</span></strong><strong><span
style='mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri'><span
style='mso-spacerun:yes'> </span></span></strong><strong><span
style='mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri;font-weight:
normal;mso-bidi-font-weight:bold'>define a global function (a wrapper), which
we will use as a<span style='mso-spacerun:yes'> </span>parameter to the
function </span></strong><strong><span style='mso-ascii-font-family:Calibri;
mso-hansi-font-family:Calibri'>integrate</span></strong><strong><span
style='mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri;font-weight:
normal;mso-bidi-font-weight:bold'>:<o:p></o:p></span></strong></p>

<p class=ecxmsonormal style='margin-bottom:0cm;margin-bottom:.0001pt;
background:white'><strong><span style='mso-ascii-font-family:Calibri;
mso-hansi-font-family:Calibri'><span
style='mso-spacerun:yes'> </span>double f(double x,
double y, double z, double a, double b) { return <span class=SpellE>a.f</span>(<span
class=SpellE>x,y,z,a,b</span>); }<o:p></o:p></span></strong></p>

<p class=ecxmsonormal style='margin-bottom:0cm;margin-bottom:.0001pt;
background:white'><strong><span style='mso-ascii-font-family:Calibri;
mso-hansi-font-family:Calibri'><span style='mso-spacerun:yes'>
</span><o:p></o:p></span></strong></p>

<p class=ecxmsonormal style='margin-top:0cm;margin-right:0cm;margin-bottom:
0cm;margin-left:36.0pt;margin-bottom:.0001pt;text-indent:-18.0pt;background:
white'><strong><span style='mso-ascii-font-family:Calibri;mso-hansi-font-family:
Calibri'><span style='mso-spacerun:yes'> </span>double r = integrate(f,
x1, x2, y1, y2, z1, z2, a1, a2, b1, b2);</span></strong><strong><span
style='font-family:"Times New Roman","serif";font-weight:normal'><o:p></o:p></span></strong></p>

<p class=ecxmsonormal style='margin-bottom:0cm;margin-bottom:.0001pt;
background:white'><strong><span style='mso-ascii-font-family:Calibri;
mso-hansi-font-family:Calibri'><span style='mso-spacerun:yes'> </span><o:p></o:p></span></strong></p>

<p class=ecxmsonormal style='margin-bottom:0cm;margin-bottom:.0001pt;
background:white'>In all these examples, if the function <span class=SpellE><b>fa</b></span>
had more parameters we would have to write even a longer statement. </p>

<p class=ecxmsonormal style='margin-bottom:0cm;margin-bottom:.0001pt;
background:white'><o:p>&nbsp;</o:p></p>

<p class=ecxmsonormal style='margin-bottom:0cm;margin-bottom:.0001pt;
background:white'>It would be much more convenient to be able to write
something like this:</p>

<p class=ecxmsonormal style='margin-bottom:0cm;margin-bottom:.0001pt;
line-height:150%;background:white'><strong><span style='mso-ascii-font-family:
Calibri;mso-hansi-font-family:Calibri'>double r = integrate(<span class=SpellE><i>some_binder</i></span>(&amp;A::<span
class=SpellE>fa</span>, &amp;a), x1, x2, y1, y2, z1, z2, a1, a2, b1, b2);&nbsp;<o:p></o:p></span></strong></p>

<p class=MsoNormal><strong><span style='font-family:"Times New Roman","serif";
mso-ascii-theme-font:minor-fareast;mso-hansi-theme-font:minor-fareast;
mso-bidi-theme-font:minor-fareast;font-weight:normal;mso-bidi-font-weight:bold'>which
looks more simple and clearer.<o:p></o:p></span></strong></p>

<h2 style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:l0 level1 lfo2'><![if !supportLists]><span
style='mso-fareast-font-family:"Times New Roman"'><span style='mso-list:Ignore'>2.<span
style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><![endif]>Proposal</h2>

<p class=MsoNormal>The proposal is to allow <span class=SpellE><b>mem_fn</b></span>
to accept a second, optional parameter. The full definition is as follows (the
first option is the same as in <b>N3690, </b>section<b> 20.10.10</b>):</p>

<p class=MsoNormal style='margin-left:14.2pt'><strong><span style='font-size:
11.0pt;line-height:115%;font-family:Consolas'>template&lt;class R, class T&gt;
unspecified <span class=SpellE>mem_fn</span>(R T::* pm);</span></strong></p>

<p class=MsoNormal style='margin-left:14.2pt'><strong><i><span
style='font-size:11.0pt;line-height:115%;font-family:"Times New Roman","serif"'>Returns:</span></i></strong><strong><span
style='font-size:11.0pt;line-height:115%;font-family:"Times New Roman","serif";
font-weight:normal'> A simple call wrapper (20.10.1) </span></strong><span
class=SpellE><strong><span style='font-size:11.0pt;line-height:115%;font-family:
"Times New Roman","serif"'>fn</span></strong></span><strong><span
style='font-size:11.0pt;line-height:115%;font-family:"Times New Roman","serif";
font-weight:normal'> such that the expression </span></strong><span
class=SpellE><span class=IntenseQuoteChar><span style='font-size:11.0pt;
line-height:115%;font-family:"Times New Roman","serif"'>fn</span></span></span><span
class=IntenseQuoteChar><span style='font-size:11.0pt;line-height:115%;
font-family:"Times New Roman","serif"'>(t, a2, ..., <span class=SpellE>aN</span>)</span></span><strong><span
style='font-size:11.0pt;line-height:115%;font-family:"Times New Roman","serif";
font-weight:normal'> is equivalent to </span></strong><span
class=IntenseQuoteChar><span style='font-size:11.0pt;line-height:115%;
font-family:"Times New Roman","serif"'>INVOKE (pm, t, a2, ..., <span
class=SpellE>aN</span>)</span></span><strong><span style='font-size:11.0pt;
line-height:115%;font-family:"Times New Roman","serif";font-weight:normal'>
(20.10.2). </span></strong><span class=SpellE><span class=IntenseQuoteChar><span
style='font-size:11.0pt;line-height:115%;font-family:"Times New Roman","serif"'>fn</span></span></span><span
class=IntenseQuoteChar><span style='font-size:11.0pt;line-height:115%;
font-family:"Times New Roman","serif"'> </span></span><strong><span
style='font-size:11.0pt;line-height:115%;font-family:"Times New Roman","serif";
font-weight:normal'>shall have a nested type </span></strong><span
class=SpellE><span class=IntenseQuoteChar><span style='font-size:11.0pt;
line-height:115%;font-family:"Times New Roman","serif"'>result_type</span></span></span><strong><span
style='font-size:11.0pt;line-height:115%;font-family:"Times New Roman","serif";
font-weight:normal'> that is a synonym for the return type of </span></strong><span
class=IntenseQuoteChar><span style='font-size:11.0pt;line-height:115%;
font-family:"Times New Roman","serif"'>pm</span></span><strong><span
style='font-size:11.0pt;line-height:115%;font-family:"Times New Roman","serif";
font-weight:normal'> when </span></strong><span class=IntenseQuoteChar><span
style='font-size:11.0pt;line-height:115%;font-family:"Times New Roman","serif"'>pm</span></span><strong><span
style='font-size:11.0pt;line-height:115%;font-family:"Times New Roman","serif";
font-weight:normal'> is a pointer to member function.</span></strong></p>

<p class=MsoNormal style='margin-left:14.2pt'><strong><span style='font-size:
11.0pt;line-height:115%;font-family:"Times New Roman","serif";font-weight:normal'>The
simple call wrapper shall define two nested types named </span></strong><span
class=SpellE><strong><span style='font-size:11.0pt;line-height:115%;font-family:
"Times New Roman","serif"'>argument_type</span></strong></span><strong><span
style='font-size:11.0pt;line-height:115%;font-family:"Times New Roman","serif";
font-weight:normal'> and </span></strong><span class=SpellE><strong><span
style='font-size:11.0pt;line-height:115%;font-family:"Times New Roman","serif"'>result_type</span></strong></span><strong><span
style='font-size:11.0pt;line-height:115%;font-family:"Times New Roman","serif";
font-weight:normal'> as synonyms for </span></strong><strong><i><span
style='font-size:11.0pt;line-height:115%;font-family:"Times New Roman","serif"'>cv</span></i></strong><strong><span
style='font-size:11.0pt;line-height:115%;font-family:"Times New Roman","serif";
font-weight:normal'> </span></strong><strong><span style='font-size:11.0pt;
line-height:115%;font-family:"Times New Roman","serif"'>T*</span></strong><strong><span
style='font-size:11.0pt;line-height:115%;font-family:"Times New Roman","serif";
font-weight:normal'> and </span></strong><strong><span style='font-size:11.0pt;
line-height:115%;font-family:"Times New Roman","serif"'>Ret</span></strong><strong><span
style='font-size:11.0pt;line-height:115%;font-family:"Times New Roman","serif";
font-weight:normal'>, respectively, when </span></strong><strong><span
style='font-size:11.0pt;line-height:115%;font-family:"Times New Roman","serif"'>pm</span></strong><strong><span
style='font-size:11.0pt;line-height:115%;font-family:"Times New Roman","serif";
font-weight:normal'> is a pointer to member function with <i>cv-</i>qualifier </span></strong><strong><i><span
style='font-size:11.0pt;line-height:115%;font-family:"Times New Roman","serif"'>cv</span></i></strong><strong><span
style='font-size:11.0pt;line-height:115%;font-family:"Times New Roman","serif";
font-weight:normal'> and taking no arguments, where </span></strong><span
class=IntenseQuoteChar><i><span style='font-size:11.0pt;line-height:115%;
font-family:"Times New Roman","serif"'>Ret</span></i></span><strong><span
style='font-size:11.0pt;line-height:115%;font-family:"Times New Roman","serif";
font-weight:normal'>&nbsp; is </span></strong><span class=SpellE><span
class=IntenseQuoteChar><span style='font-size:11.0pt;line-height:115%;
font-family:"Times New Roman","serif"'>pm</span></span><strong><span
style='font-size:11.0pt;line-height:115%;font-family:"Times New Roman","serif";
font-weight:normal'>s</span></strong></span><strong><span style='font-size:
11.0pt;line-height:115%;font-family:"Times New Roman","serif";font-weight:normal'>
return type.</span></strong></p>

<p class=MsoNormal style='margin-left:14.2pt'><strong><span style='font-size:
11.0pt;line-height:115%;font-family:"Times New Roman","serif";font-weight:normal'>The
simple call wrapper shall define three nested types named </span></strong><span
class=SpellE><span class=IntenseQuoteChar><span style='font-size:11.0pt;
line-height:115%;font-family:"Times New Roman","serif"'>first_argument_type</span></span></span><strong><span
style='font-size:11.0pt;line-height:115%;font-family:"Times New Roman","serif";
font-weight:normal'>, </span></strong><span class=SpellE><span
class=IntenseQuoteChar><span style='font-size:11.0pt;line-height:115%;
font-family:"Times New Roman","serif"'>second_argument_type</span></span></span><strong><span
style='font-size:11.0pt;line-height:115%;font-family:"Times New Roman","serif";
font-weight:normal'>, and </span></strong><span class=SpellE><span
class=IntenseQuoteChar><span style='font-size:11.0pt;line-height:115%;
font-family:"Times New Roman","serif"'>result_type</span></span></span><strong><span
style='font-size:11.0pt;line-height:115%;font-family:"Times New Roman","serif";
font-weight:normal'> as synonyms for </span></strong><span
class=IntenseQuoteChar><i><span style='font-size:11.0pt;line-height:115%;
font-family:"Times New Roman","serif"'>cv</span></i></span><strong><span
style='font-size:11.0pt;line-height:115%;font-family:"Times New Roman","serif"'>&nbsp;
</span></strong><span class=IntenseQuoteChar><span style='font-size:11.0pt;
line-height:115%;font-family:"Times New Roman","serif"'>T*</span></span><strong><span
style='font-size:11.0pt;line-height:115%;font-family:"Times New Roman","serif"'>,
</span></strong><span class=IntenseQuoteChar><span style='font-size:11.0pt;
line-height:115%;font-family:"Times New Roman","serif"'>T1</span></span><strong><span
style='font-size:11.0pt;line-height:115%;font-family:"Times New Roman","serif"'>,</span></strong><strong><span
style='font-size:11.0pt;line-height:115%;font-family:"Times New Roman","serif";
font-weight:normal'> and </span></strong><span class=IntenseQuoteChar><span
style='font-size:11.0pt;line-height:115%;font-family:"Times New Roman","serif"'>Ret</span></span><strong><span
style='font-size:11.0pt;line-height:115%;font-family:"Times New Roman","serif";
font-weight:normal'>, respectively, when </span></strong><span
class=IntenseQuoteChar><span style='font-size:11.0pt;line-height:115%;
font-family:"Times New Roman","serif"'>pm</span></span><strong><span
style='font-size:11.0pt;line-height:115%;font-family:"Times New Roman","serif";
font-weight:normal'> is a pointer to member function with </span></strong><span
class=QuoteChar><b><span style='font-size:11.0pt;line-height:115%;font-family:
"Times New Roman","serif"'>cv-</span></b></span><strong><span style='font-size:
11.0pt;line-height:115%;font-family:"Times New Roman","serif";font-weight:normal'>qualifier
</span></strong><span class=IntenseQuoteChar><i><span style='font-size:11.0pt;
line-height:115%;font-family:"Times New Roman","serif"'>cv</span></i></span><strong><span
style='font-size:11.0pt;line-height:115%;font-family:"Times New Roman","serif";
font-weight:normal'> and taking one argument of type </span></strong><span
class=IntenseQuoteChar><span style='font-size:11.0pt;line-height:115%;
font-family:"Times New Roman","serif"'>T1</span></span><strong><span
style='font-size:11.0pt;line-height:115%;font-family:"Times New Roman","serif";
font-weight:normal'>, where </span></strong><span class=IntenseQuoteChar><i><span
style='font-size:11.0pt;line-height:115%;font-family:"Times New Roman","serif"'>Ret</span></i></span><strong><span
style='font-size:11.0pt;line-height:115%;font-family:"Times New Roman","serif";
font-weight:normal'> is </span></strong><span class=SpellE><span
class=IntenseQuoteChar><span style='font-size:11.0pt;line-height:115%;
font-family:"Times New Roman","serif"'>pm</span></span><strong><span
style='font-size:11.0pt;line-height:115%;font-family:"Times New Roman","serif";
font-weight:normal'>s</span></strong></span><strong><span style='font-size:
11.0pt;line-height:115%;font-family:"Times New Roman","serif";font-weight:normal'>
return type.</span></strong></p>

<p class=MsoNormal style='margin-left:14.2pt'><strong><i><span
style='font-size:11.0pt;line-height:115%;font-family:"Times New Roman","serif"'>Throws:
</span></i></strong><strong><span style='font-size:11.0pt;line-height:115%;
font-family:"Times New Roman","serif";font-weight:normal'>Nothing</span></strong><strong><span
style='font-size:11.0pt;line-height:115%;font-family:"Trebuchet MS","sans-serif";
font-weight:normal'>.</span></strong></p>

<p class=MsoIntenseQuote style='margin-left:14.2pt'><span
class=MsoIntenseEmphasis><span style='font-size:11.0pt;line-height:115%;
font-family:Consolas'>template&lt;class R, class T&gt; unspecified <span
class=SpellE>mem_fn</span>(R T::*, cv T* <span class=SpellE>obj</span>);</span></span></p>

<p class=MsoNormal style='margin-left:14.2pt'><strong><i><span
style='font-size:11.0pt;line-height:115%;font-family:"Times New Roman","serif"'>Returns:</span></i></strong><strong><span
style='font-size:11.0pt;line-height:115%;font-family:"Times New Roman","serif";
font-weight:normal'> A simple call wrapper (20.10.1) </span></strong><span
class=SpellE><span class=IntenseQuoteChar><span style='font-size:11.0pt;
line-height:115%;font-family:"Times New Roman","serif"'>fn</span></span></span><strong><span
style='font-size:11.0pt;line-height:115%;font-family:"Times New Roman","serif";
font-weight:normal'> such that the expression </span></strong><span
class=SpellE><strong><span style='font-size:11.0pt;line-height:115%;font-family:
"Times New Roman","serif"'>fn</span></strong></span><strong><span
style='font-size:11.0pt;line-height:115%;font-family:"Times New Roman","serif"'>(a1,
..., <span class=SpellE>aN</span>)</span></strong><strong><span
style='font-size:11.0pt;line-height:115%;font-family:"Times New Roman","serif";
font-weight:normal'> is equivalent to </span></strong><strong><span
style='font-size:11.0pt;line-height:115%;font-family:"Times New Roman","serif"'>INVOKE
(pm, <span class=SpellE>obj</span>, a1, ..., <span class=SpellE>aN</span>)</span></strong><strong><span
style='font-size:11.0pt;line-height:115%;font-family:"Times New Roman","serif";
font-weight:normal'> (20.10.2). </span></strong><span class=SpellE><strong><span
style='font-size:11.0pt;line-height:115%;font-family:"Times New Roman","serif"'>fn</span></strong></span><strong><span
style='font-size:11.0pt;line-height:115%;font-family:"Times New Roman","serif";
font-weight:normal'> shall have a nested type </span></strong><span
class=SpellE><strong><span style='font-size:11.0pt;line-height:115%;font-family:
"Times New Roman","serif"'>result_type</span></strong></span><strong><span
style='font-size:11.0pt;line-height:115%;font-family:"Times New Roman","serif";
font-weight:normal'> that is a synonym for the return type of </span></strong><strong><span
style='font-size:11.0pt;line-height:115%;font-family:"Times New Roman","serif"'>pm</span></strong><strong><span
style='font-size:11.0pt;line-height:115%;font-family:"Times New Roman","serif";
font-weight:normal'> when </span></strong><strong><span style='font-size:11.0pt;
line-height:115%;font-family:"Times New Roman","serif"'>pm</span></strong><strong><span
style='font-size:11.0pt;line-height:115%;font-family:"Times New Roman","serif";
font-weight:normal'> is a pointer to member function.</span></strong></p>

<p class=MsoNormal style='margin-left:14.2pt'><strong><span style='font-size:
11.0pt;line-height:115%;font-family:"Times New Roman","serif";font-weight:normal'>The
simple call wrapper shall define one nested type named </span></strong><span
class=SpellE><strong><span style='font-size:11.0pt;line-height:115%;font-family:
"Times New Roman","serif"'>result_type</span></strong></span><strong><span
style='font-size:11.0pt;line-height:115%;font-family:"Times New Roman","serif";
font-weight:normal'> as a synonym for </span></strong><strong><span
style='font-size:11.0pt;line-height:115%;font-family:"Times New Roman","serif"'>Ret</span></strong><strong><span
style='font-size:11.0pt;line-height:115%;font-family:"Times New Roman","serif";
font-weight:normal'>, when </span></strong><span class=IntenseQuoteChar><span
style='font-family:"Times New Roman","serif"'>pm</span></span><strong><span
style='font-size:11.0pt;line-height:115%;font-family:"Times New Roman","serif";
font-weight:normal'> is a pointer to member function with </span></strong><strong><i><span
style='font-size:11.0pt;line-height:115%;font-family:"Times New Roman","serif"'>cv</span></i></strong><strong><i><span
style='font-size:11.0pt;line-height:115%;font-family:"Times New Roman","serif";
font-weight:normal'>-</span></i></strong><strong><span style='font-size:11.0pt;
line-height:115%;font-family:"Times New Roman","serif";font-weight:normal'>qualifier
</span></strong><strong><i><span style='font-size:11.0pt;line-height:115%;
font-family:"Times New Roman","serif"'>cv</span></i></strong><strong><span
style='font-size:11.0pt;line-height:115%;font-family:"Times New Roman","serif";
font-weight:normal'> and taking no arguments, where </span></strong><span
class=IntenseQuoteChar><i><span style='font-size:11.0pt;line-height:115%;
font-family:"Times New Roman","serif"'>Ret</span></i></span><span
class=IntenseQuoteChar><i><span style='font-size:11.0pt;line-height:115%;
font-family:"Times New Roman","serif";font-weight:normal'> </span></i></span><strong><span
style='font-size:11.0pt;line-height:115%;font-family:"Times New Roman","serif";
font-weight:normal'>&nbsp;is </span></strong><span class=SpellE><span
class=IntenseQuoteChar><span style='font-size:11.0pt;line-height:115%;
font-family:"Times New Roman","serif"'>pm</span></span><strong><span
style='font-size:11.0pt;line-height:115%;font-family:"Times New Roman","serif";
font-weight:normal'>s</span></strong></span><strong><span style='font-size:
11.0pt;line-height:115%;font-family:"Times New Roman","serif";font-weight:normal'>
return type.</span></strong></p>

<p class=MsoNormal style='margin-left:14.2pt'><strong><span style='font-size:
11.0pt;line-height:115%;font-family:"Times New Roman","serif";font-weight:normal'>The
simple call wrapper shall define two nested types named </span></strong><span
class=SpellE><strong><span style='font-size:11.0pt;line-height:115%;font-family:
"Times New Roman","serif"'>argument_type</span></strong></span><strong><span
style='font-size:11.0pt;line-height:115%;font-family:"Times New Roman","serif"'>
</span></strong><strong><span style='font-size:11.0pt;line-height:115%;
font-family:"Times New Roman","serif";font-weight:normal'>and </span></strong><span
class=SpellE><strong><span style='font-size:11.0pt;line-height:115%;font-family:
"Times New Roman","serif"'>result_type</span></strong></span><strong><span
style='font-size:11.0pt;line-height:115%;font-family:"Times New Roman","serif";
font-weight:normal'> as synonyms for </span></strong><strong><span
style='font-size:11.0pt;line-height:115%;font-family:"Times New Roman","serif"'>T1</span></strong><strong><span
style='font-size:11.0pt;line-height:115%;font-family:"Times New Roman","serif";
font-weight:normal'> and </span></strong><strong><span style='font-size:11.0pt;
line-height:115%;font-family:"Times New Roman","serif"'>Ret</span></strong><strong><span
style='font-size:11.0pt;line-height:115%;font-family:"Times New Roman","serif";
font-weight:normal'>, respectively, when </span></strong><span
class=IntenseQuoteChar><span style='font-family:"Times New Roman","serif"'>pm</span></span><strong><span
style='font-size:11.0pt;line-height:115%;font-family:"Times New Roman","serif";
font-weight:normal'> is a pointer to member function with </span></strong><strong><i><span
style='font-size:11.0pt;line-height:115%;font-family:"Times New Roman","serif"'>cv</span></i></strong><strong><i><span
style='font-size:11.0pt;line-height:115%;font-family:"Times New Roman","serif";
font-weight:normal'>-</span></i></strong><strong><span style='font-size:11.0pt;
line-height:115%;font-family:"Times New Roman","serif";font-weight:normal'>qualifier
</span></strong><strong><i><span style='font-size:11.0pt;line-height:115%;
font-family:"Times New Roman","serif"'>cv</span></i></strong><strong><span
style='font-size:11.0pt;line-height:115%;font-family:"Times New Roman","serif";
font-weight:normal'> and taking&nbsp; one argument of type </span></strong><span
class=IntenseQuoteChar><span style='font-family:"Times New Roman","serif"'>T1</span></span><strong><span
style='font-size:11.0pt;line-height:115%;font-family:"Times New Roman","serif";
font-weight:normal'>, where </span></strong><span class=IntenseQuoteChar><i><span
style='font-size:11.0pt;line-height:115%;font-family:"Times New Roman","serif"'>Ret</span></i></span><strong><span
style='font-size:11.0pt;line-height:115%;font-family:"Times New Roman","serif";
font-weight:normal'> is </span></strong><span class=SpellE><span
class=IntenseQuoteChar><span style='font-size:11.0pt;line-height:115%;
font-family:"Times New Roman","serif"'>pm</span></span><strong><span
style='font-size:11.0pt;line-height:115%;font-family:"Times New Roman","serif";
font-weight:normal'>s</span></strong></span><strong><span style='font-size:
11.0pt;line-height:115%;font-family:"Times New Roman","serif";font-weight:normal'>
return type.</span></strong></p>

<p class=MsoNormal style='margin-left:14.2pt'><strong><span style='font-size:
11.0pt;line-height:115%;font-family:"Times New Roman","serif";font-weight:normal'>The
simple call wrapper shall define three nested types named </span></strong><span
class=SpellE><span class=IntenseQuoteChar><span style='font-size:11.0pt;
line-height:115%;font-family:"Times New Roman","serif"'>first_argument_type</span></span></span><strong><span
style='font-size:11.0pt;line-height:115%;font-family:"Times New Roman","serif";
font-weight:normal'>, </span></strong><span class=SpellE><span
class=IntenseQuoteChar><span style='font-size:11.0pt;line-height:115%;
font-family:"Times New Roman","serif"'>second_argument_type</span></span></span><strong><span
style='font-size:11.0pt;line-height:115%;font-family:"Times New Roman","serif";
font-weight:normal'>, and </span></strong><span class=SpellE><span
class=IntenseQuoteChar><span style='font-size:11.0pt;line-height:115%;
font-family:"Times New Roman","serif"'>result_type</span></span></span><strong><span
style='font-size:11.0pt;line-height:115%;font-family:"Times New Roman","serif";
font-weight:normal'> as synonyms for </span></strong><span
class=IntenseQuoteChar><span style='font-size:11.0pt;line-height:115%;
font-family:"Times New Roman","serif"'>T1</span></span><strong><span
style='font-size:11.0pt;line-height:115%;font-family:"Times New Roman","serif"'>,
</span></strong><span class=IntenseQuoteChar><span style='font-size:11.0pt;
line-height:115%;font-family:"Times New Roman","serif"'>T2</span></span><strong><span
style='font-size:11.0pt;line-height:115%;font-family:"Times New Roman","serif"'>,</span></strong><strong><span
style='font-size:11.0pt;line-height:115%;font-family:"Times New Roman","serif";
font-weight:normal'> and </span></strong><span class=IntenseQuoteChar><span
style='font-size:11.0pt;line-height:115%;font-family:"Times New Roman","serif"'>Ret</span></span><strong><span
style='font-size:11.0pt;line-height:115%;font-family:"Times New Roman","serif";
font-weight:normal'>, respectively, when </span></strong><span
class=IntenseQuoteChar><span style='font-size:11.0pt;line-height:115%;
font-family:"Times New Roman","serif"'>pm</span></span><strong><span
style='font-size:11.0pt;line-height:115%;font-family:"Times New Roman","serif";
font-weight:normal'> is a pointer to member function with </span></strong><span
class=QuoteChar><b><span style='font-size:11.0pt;line-height:115%;font-family:
"Times New Roman","serif"'>cv-</span></b></span><strong><span style='font-size:
11.0pt;line-height:115%;font-family:"Times New Roman","serif";font-weight:normal'>qualifier
</span></strong><span class=IntenseQuoteChar><i><span style='font-size:11.0pt;
line-height:115%;font-family:"Times New Roman","serif"'>cv</span></i></span><strong><span
style='font-size:11.0pt;line-height:115%;font-family:"Times New Roman","serif";
font-weight:normal'> and taking two arguments of types </span></strong><span
class=IntenseQuoteChar><span style='font-size:11.0pt;line-height:115%;
font-family:"Times New Roman","serif"'>T1</span></span><span
class=IntenseQuoteChar><span style='font-size:11.0pt;line-height:115%;
font-family:"Times New Roman","serif";font-weight:normal'> and&nbsp; </span></span><span
class=IntenseQuoteChar><span style='font-size:11.0pt;line-height:115%;
font-family:"Times New Roman","serif"'>T2</span></span><strong><span
style='font-size:11.0pt;line-height:115%;font-family:"Times New Roman","serif";
font-weight:normal'>, where </span></strong><span class=IntenseQuoteChar><i><span
style='font-size:11.0pt;line-height:115%;font-family:"Times New Roman","serif"'>Ret</span></i></span><strong><span
style='font-size:11.0pt;line-height:115%;font-family:"Times New Roman","serif";
font-weight:normal'> is </span></strong><span class=SpellE><span
class=IntenseQuoteChar><span style='font-size:11.0pt;line-height:115%;
font-family:"Times New Roman","serif"'>pm</span></span><strong><span
style='font-size:11.0pt;line-height:115%;font-family:"Times New Roman","serif";
font-weight:normal'>s</span></strong></span><strong><span style='font-size:
11.0pt;line-height:115%;font-family:"Times New Roman","serif";font-weight:normal'>
return type.</span></strong></p>

<p class=MsoNormal style='margin-left:14.2pt'><strong><i><span
style='font-size:11.0pt;line-height:115%;font-family:"Times New Roman","serif"'>Throws:
</span></i></strong><strong><span style='font-size:11.0pt;line-height:115%;
font-family:"Times New Roman","serif";font-weight:normal'>Nothing</span></strong><strong><span
style='font-size:11.0pt;line-height:115%;font-family:"Times New Roman","serif"'>.</span></strong></p>

<p class=MsoNormal><strong><span style='font-family:"Times New Roman","serif";
font-weight:normal'>The second option means that the object and the member function
will be bound together.&nbsp; Using this feature we can now write the following
code (the class and the function used here were explained in the introduction):<o:p></o:p></span></strong></p>

<p class=MsoQuote style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><strong><span style='font-style:normal;mso-bidi-font-style:italic'>double
x = 1.0;<o:p></o:p></span></strong></p>

<p class=MsoQuote style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><strong><span style='font-style:normal;mso-bidi-font-style:italic'>double
sum = 0.0;<o:p></o:p></span></strong></p>

<p class=MsoQuote style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><strong><span style='font-style:normal;mso-bidi-font-style:italic'>for
(<span class=SpellE>int</span> <span class=SpellE>i</span> = 0; <span
class=SpellE>i</span> &lt; 10; <span class=SpellE>i</span>++)<o:p></o:p></span></strong></p>

<p class=MsoQuote style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><strong><span style='font-style:normal;mso-bidi-font-style:italic'>{<o:p></o:p></span></strong></p>

<p class=MsoQuote style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><strong><span style='font-style:normal;mso-bidi-font-style:italic'><span
style='mso-spacerun:yes'> </span><span class=SpellE>a.set_param</span>(x);<o:p></o:p></span></strong></p>

<p class=MsoQuote style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><strong><span style='font-style:normal;mso-bidi-font-style:italic'><span
style='mso-spacerun:yes'> </span>sum += integrate(<span class=SpellE>mem_fn</span>(&amp;A::<span
class=SpellE>fa</span>, &amp;a), x1, x2, y1, y2, z1, z2, a1, a2, b1, b2); //
summing up ten values<o:p></o:p></span></strong></p>

<p class=MsoQuote style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><strong><span style='font-style:normal;mso-bidi-font-style:italic'><span
style='mso-spacerun:yes'> </span>x += 0.1;<o:p></o:p></span></strong></p>

<p class=MsoQuote style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><strong><span style='font-style:normal;mso-bidi-font-style:italic'>}<o:p></o:p></span></strong></p>

<h2><span style='mso-fareast-font-family:"Times New Roman"'>Examples</span><span
style='font-size:12.0pt;line-height:115%'><o:p></o:p></span></h2>

<h3><u><span style='mso-fareast-font-family:"Times New Roman"'>Example 1.</span></u><span
style='mso-fareast-font-family:"Times New Roman"'><o:p></o:p></span></h3>

<p class=MsoNormal>Here is a sample program, which shows the application
of<span style='mso-spacerun:yes'> </span><span class=SpellE><b
style='mso-bidi-font-weight:normal'>mem_fn</b></span> to simple member
functions, and also its use with a shared pointer&nbsp; as the second parameter:</p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:11.0pt;font-family:"Anonymous Pro"'>#include
&lt;<span class=SpellE>iostream</span>&gt;</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:11.0pt;font-family:"Anonymous Pro"'>#include
&lt;functional&gt;</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:11.0pt;font-family:"Anonymous Pro"'>#include
&lt;memory&gt;</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:11.0pt;font-family:"Anonymous Pro"'>&nbsp;</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:11.0pt;font-family:"Anonymous Pro"'>class A2</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:11.0pt;font-family:"Anonymous Pro"'>{</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:11.0pt;font-family:"Anonymous Pro"'>&nbsp;&nbsp;&nbsp;
<span class=SpellE>int</span> <span class=SpellE>i</span>;</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:11.0pt;font-family:"Anonymous Pro"'>public:&nbsp;&nbsp;&nbsp;
</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:11.0pt;font-family:"Anonymous Pro"'>&nbsp;&nbsp;&nbsp;
A2(<span class=SpellE>int</span> k):<span class=SpellE>i</span>(k) {}</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:11.0pt;font-family:"Anonymous Pro"'>&nbsp;</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:11.0pt;font-family:"Anonymous Pro"'>&nbsp;&nbsp;&nbsp;
auto get()<span class=SpellE>const</span> -&gt;<span class=SpellE>int</span> {
return <span class=SpellE>i</span>;}&nbsp;&nbsp;&nbsp; </span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:11.0pt;font-family:"Anonymous Pro"'>&nbsp;&nbsp;&nbsp;
auto set(<span class=SpellE>int</span> v)-&gt;void { <span class=SpellE>i</span>
= v;}</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:11.0pt;font-family:"Anonymous Pro"'>&nbsp;</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:11.0pt;font-family:"Anonymous Pro"'>&nbsp;&nbsp;&nbsp;
auto <span class=SpellE>inc</span>(<span class=SpellE>int</span> g)-&gt;<span
class=SpellE>int</span>&amp; { <span class=SpellE>i</span>+=g; return <span
class=SpellE>i</span>;}</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:11.0pt;font-family:"Anonymous Pro"'>&nbsp;&nbsp;&nbsp;
auto <span class=SpellE>incp</span>(<span class=SpellE>int</span>&amp; g)-&gt;<span
class=SpellE>int</span>&amp; { g+=<span class=SpellE>i</span>; return g;}</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:11.0pt;font-family:"Anonymous Pro"'>&nbsp;&nbsp;&nbsp;
</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:11.0pt;font-family:"Anonymous Pro"'>&nbsp;&nbsp;&nbsp;
auto f8 (<span class=SpellE>int</span> a1, <span class=SpellE>int</span> a2, <span
class=SpellE>int</span> a3, <span class=SpellE>int</span> a4, <span
class=SpellE>int</span> a5, <span class=SpellE>int</span> a6, <span
class=SpellE>int</span> a7, <span class=SpellE>int</span> a8) <span
class=SpellE>const</span> -&gt; <span class=SpellE>int</span></span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:11.0pt;font-family:"Anonymous Pro"'>&nbsp;&nbsp;&nbsp;
{</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:11.0pt;font-family:"Anonymous Pro"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
return i+a1+a2+a3+a4+a5+a6+a7+a8;</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:11.0pt;font-family:"Anonymous Pro"'>&nbsp;&nbsp;&nbsp;
}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:11.0pt;font-family:"Anonymous Pro"'>};</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:11.0pt;font-family:"Anonymous Pro"'>&nbsp;</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:11.0pt;font-family:"Anonymous Pro"'>&nbsp;</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><span class=SpellE><b><span style='font-size:11.0pt;font-family:"Anonymous Pro"'>int</span></b></span><b><span
style='font-size:11.0pt;font-family:"Anonymous Pro"'> main()</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:11.0pt;font-family:"Anonymous Pro"'>{</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:11.0pt;font-family:"Anonymous Pro"'>&nbsp;&nbsp;&nbsp;
A2 <span class=SpellE>a</span>(11);&nbsp; </span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:11.0pt;font-family:"Anonymous Pro"'>&nbsp;&nbsp;&nbsp;
</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:11.0pt;font-family:"Anonymous Pro"'>&nbsp;&nbsp;&nbsp;
auto <span class=SpellE>a_get</span> = <span class=SpellE>mem_fn</span>(&amp;A2::<span
class=SpellE>get,&amp;a</span>);&nbsp;&nbsp;&nbsp; </span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:11.0pt;font-family:"Anonymous Pro"'>&nbsp;&nbsp;&nbsp;
<span class=SpellE>std</span>::<span class=SpellE>cout</span> &lt;&lt; <span
class=SpellE>a_get</span>() &lt;&lt; <span class=SpellE>std</span>::<span
class=SpellE>endl</span>;</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:11.0pt;font-family:"Anonymous Pro"'>&nbsp;&nbsp;&nbsp;
auto a_get1 = <span class=SpellE>mem_fn</span>(&amp;A2::get);</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:11.0pt;font-family:"Anonymous Pro"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:11.0pt;font-family:"Anonymous Pro"'>&nbsp;&nbsp;&nbsp;
<span class=SpellE>std</span>::<span class=SpellE>cout</span> &lt;&lt;
a_get1(&amp;a) &lt;&lt; <span class=SpellE>std</span>::<span class=SpellE>endl</span>;</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:11.0pt;font-family:"Anonymous Pro"'>&nbsp;</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:11.0pt;font-family:"Anonymous Pro"'>&nbsp;&nbsp;&nbsp;
auto set1 = <span class=SpellE>mem_fn</span>(&amp;A2::set, &amp;a);</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:11.0pt;font-family:"Anonymous Pro"'>&nbsp;&nbsp;&nbsp;
</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:11.0pt;font-family:"Anonymous Pro"'>&nbsp;&nbsp;&nbsp;
<span class=SpellE>std</span>::<span class=SpellE>shared_ptr</span>&lt;A2&gt; <span
class=SpellE>sh_a</span>(new A2(22));</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:11.0pt;font-family:"Anonymous Pro"'>&nbsp;&nbsp;&nbsp;
auto <span class=SpellE>inc</span> = <span class=SpellE>mem_fn</span>(&amp;A2::<span
class=SpellE>inc</span>, <span class=SpellE>sh_a</span>);</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:11.0pt;font-family:"Anonymous Pro"'>&nbsp;&nbsp;&nbsp;
auto <span class=SpellE>incp</span> = <span class=SpellE>mem_fn</span>(&amp;A2::<span
class=SpellE>incp</span>, <span class=SpellE>sh_a</span>);</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:11.0pt;font-family:"Anonymous Pro"'>&nbsp;&nbsp;&nbsp;
auto af8&nbsp; = <span class=SpellE>mem_fn</span>(&amp;A2::f8,sh_a);</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:11.0pt;font-family:"Anonymous Pro"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:11.0pt;font-family:"Anonymous Pro"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:11.0pt;font-family:"Anonymous Pro"'>&nbsp;&nbsp;&nbsp;
set1(15);</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:11.0pt;font-family:"Anonymous Pro"'>&nbsp;&nbsp;&nbsp;
<span class=SpellE>std</span>::<span class=SpellE>cout</span> &lt;&lt; &quot;<span
class=SpellE>a.get</span>():&quot; &lt;&lt; <span class=SpellE>a.get</span>()
&lt;&lt; <span class=SpellE>std</span>::<span class=SpellE>endl</span>;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp; </span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:11.0pt;font-family:"Anonymous Pro"'>&nbsp;</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:11.0pt;font-family:"Anonymous Pro"'>&nbsp;&nbsp;&nbsp;
<span class=SpellE>int</span> x = 5;</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:11.0pt;font-family:"Anonymous Pro"'>&nbsp;&nbsp;&nbsp;
<span class=SpellE>int</span> k = <span class=SpellE>inc</span>(x);</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:11.0pt;font-family:"Anonymous Pro"'>&nbsp;&nbsp;&nbsp;
<span class=SpellE>int</span>&amp; k2 = <span class=SpellE>incp</span>(x);</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:11.0pt;font-family:"Anonymous Pro"'>&nbsp;&nbsp;&nbsp;
</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:11.0pt;font-family:"Anonymous Pro"'>&nbsp;&nbsp;&nbsp;
k2 *= 7;</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:11.0pt;font-family:"Anonymous Pro"'>&nbsp;&nbsp;&nbsp;
<span class=SpellE>std</span>::<span class=SpellE>cout</span> &lt;&lt; &quot;<span
class=SpellE>a.get</span>():&quot; &lt;&lt; <span class=SpellE>a.get</span>()
&lt;&lt; <span class=SpellE>std</span>::<span class=SpellE>endl</span>;</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:11.0pt;font-family:"Anonymous Pro"'>&nbsp;&nbsp;&nbsp;
<span class=SpellE>std</span>::<span class=SpellE>cout</span> &lt;&lt; &quot;k:
&quot; &lt;&lt; k &lt;&lt; <span class=SpellE>std</span>::<span class=SpellE>endl</span>;</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:11.0pt;font-family:"Anonymous Pro"'>&nbsp;&nbsp;&nbsp;
<span class=SpellE>std</span>::<span class=SpellE>cout</span> &lt;&lt; &quot;x:
&quot; &lt;&lt; x &lt;&lt; <span class=SpellE>std</span>::<span class=SpellE>endl</span>;</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;text-indent:
24.0pt;line-height:normal'><span class=SpellE><b><span style='font-size:11.0pt;
font-family:"Anonymous Pro"'>std</span></b></span><b><span style='font-size:
11.0pt;font-family:"Anonymous Pro"'>::<span class=SpellE>cout</span> &lt;&lt;
&quot;af8(1,2,3,4,5,6,7,8): &quot; </span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;text-indent:
24.0pt;line-height:normal'><b><span style='font-size:11.0pt;font-family:"Anonymous Pro"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&lt;&lt; af8(1,2,3,4,5,6,7,8) &lt;&lt; <span class=SpellE>std</span>::<span
class=SpellE>endl</span>;&nbsp;&nbsp;&nbsp; </span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:11.0pt;font-family:"Anonymous Pro"'>}</span></b></p>

<p class=MsoNormal>This program will print:</p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt'><span
class=MsoIntenseEmphasis>11</span></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt'><span
class=MsoIntenseEmphasis>11</span></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt'><span
class=SpellE><span class=MsoIntenseEmphasis>a.get</span></span><span
class=MsoIntenseEmphasis>():15</span></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt'><span
class=SpellE><span class=MsoIntenseEmphasis>a.get</span></span><span
class=MsoIntenseEmphasis>():15</span></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt'><span
class=MsoIntenseEmphasis>k: 27</span></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt'><span
class=MsoIntenseEmphasis>x: 224</span></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt'><span
class=MsoIntenseEmphasis>af8(1,2,3,4,5,6,7,8): 63</span></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt'><span
class=MsoIntenseEmphasis>&nbsp;</span></p>

<h3><span class=MsoIntenseEmphasis><u><span style='mso-fareast-font-family:
"Times New Roman"'>Example 2.</span></u></span><span style='mso-fareast-font-family:
"Times New Roman"'><o:p></o:p></span></h3>

<p class=MsoNormal>This program<span style='mso-spacerun:yes'> </span>shows
how to apply <span class=SpellE><b>mem_fn</b></span> to&nbsp; overloaded member
functions:</p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:11.0pt;font-family:"Anonymous Pro"'>#include
&lt;<span class=SpellE>iostream</span>&gt;</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:11.0pt;font-family:"Anonymous Pro"'>#include
&lt;functional&gt;</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:11.0pt;font-family:"Anonymous Pro"'>#include
&lt;vector&gt;</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><strong><span style='font-size:11.0pt;font-family:"Anonymous Pro"'>&nbsp;</span></strong></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><strong><span style='font-size:11.0pt;font-family:"Anonymous Pro"'>class
B</span></strong></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><strong><span style='font-size:11.0pt;font-family:"Anonymous Pro"'>{</span></strong></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><strong><span style='font-size:11.0pt;font-family:"Anonymous Pro"'>&nbsp;&nbsp;&nbsp;
double x;</span></strong></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><strong><span style='font-size:11.0pt;font-family:"Anonymous Pro"'>&nbsp;&nbsp;&nbsp;
<span class=SpellE>std</span>::vector&lt;double&gt; y;</span></strong></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><span class=GramE><strong><span lang=FR style='font-size:11.0pt;
font-family:"Anonymous Pro";mso-ansi-language:FR'>public</span></strong></span><strong><span
lang=FR style='font-size:11.0pt;font-family:"Anonymous Pro";mso-ansi-language:
FR'>:</span></strong><span lang=FR style='mso-ansi-language:FR'><o:p></o:p></span></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><strong><span lang=FR style='font-size:11.0pt;font-family:"Anonymous Pro";
mso-ansi-language:FR'>&nbsp;&nbsp;&nbsp; <span class=GramE>B(</span>double
x1):x(x1),y(3) </span></strong><span lang=FR style='mso-ansi-language:FR'><o:p></o:p></span></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><strong><span lang=FR style='font-size:11.0pt;font-family:"Anonymous Pro";
mso-ansi-language:FR'>&nbsp;&nbsp;&nbsp; </span></strong><strong><span
style='font-size:11.0pt;font-family:"Anonymous Pro"'>{</span></strong></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><strong><span style='font-size:11.0pt;font-family:"Anonymous Pro"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
y[0] = 1.5;</span></strong></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><strong><span style='font-size:11.0pt;font-family:"Anonymous Pro"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
y[1] = 2.7;</span></strong></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><strong><span style='font-size:11.0pt;font-family:"Anonymous Pro"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
y[2] = 4.9;</span></strong></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><strong><span style='font-size:11.0pt;font-family:"Anonymous Pro"'>&nbsp;&nbsp;&nbsp;
}</span></strong></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><strong><span style='font-size:11.0pt;font-family:"Anonymous Pro"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></strong></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><strong><span style='font-size:11.0pt;font-family:"Anonymous Pro"'>&nbsp;&nbsp;&nbsp;
</span></strong></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><strong><span style='font-size:11.0pt;font-family:"Anonymous Pro"'>&nbsp;&nbsp;&nbsp;
<span class=SpellE>std</span>::vector&lt;double&gt; <span class=SpellE>add_vector</span>(<span
class=SpellE>std</span>::vector&lt;double&gt;&amp;&amp; z)</span></strong></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><strong><span style='font-size:11.0pt;font-family:"Anonymous Pro"'>&nbsp;&nbsp;&nbsp;
{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></strong></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><strong><span style='font-size:11.0pt;font-family:"Anonymous Pro"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<span class=SpellE>std</span>::<span class=SpellE>cout</span> &lt;&lt;
&quot;move&quot; &lt;&lt; <span class=SpellE>std</span>::<span class=SpellE>endl</span>;&nbsp;&nbsp;&nbsp;
</span></strong></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><strong><span style='font-size:11.0pt;font-family:"Anonymous Pro"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
for (<span class=SpellE>int</span> <span class=SpellE>i</span> = 0; <span
class=SpellE>i</span> &lt; 3; <span class=SpellE>i</span>++)</span></strong></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><strong><span style='font-size:11.0pt;font-family:"Anonymous Pro"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
{</span></strong></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><strong><span style='font-size:11.0pt;font-family:"Anonymous Pro"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
z[<span class=SpellE>i</span>] += y[<span class=SpellE>i</span>];</span></strong></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><strong><span style='font-size:11.0pt;font-family:"Anonymous Pro"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
}</span></strong></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><strong><span style='font-size:11.0pt;font-family:"Anonymous Pro"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
return <span class=SpellE>std</span>::move(z);</span></strong></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><strong><span style='font-size:11.0pt;font-family:"Anonymous Pro"'>&nbsp;&nbsp;&nbsp;
}</span></strong></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><strong><span style='font-size:11.0pt;font-family:"Anonymous Pro"'>&nbsp;&nbsp;&nbsp;
</span></strong></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><strong><span style='font-size:11.0pt;font-family:"Anonymous Pro"'>&nbsp;</span></strong></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><strong><span style='font-size:11.0pt;font-family:"Anonymous Pro"'>&nbsp;</span></strong></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><strong><span style='font-size:11.0pt;font-family:"Anonymous Pro"'>&nbsp;</span></strong></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><strong><span style='font-size:11.0pt;font-family:"Anonymous Pro"'>&nbsp;&nbsp;&nbsp;
<span class=SpellE>std</span>::vector&lt;double&gt; <span class=SpellE>add_vector</span>(<span
class=SpellE>const</span> <span class=SpellE>std</span>::vector&lt;double&gt;&amp;
z) <span class=SpellE>const</span></span></strong></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><strong><span style='font-size:11.0pt;font-family:"Anonymous Pro"'>&nbsp;&nbsp;&nbsp;
{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></strong></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><strong><span style='font-size:11.0pt;font-family:"Anonymous Pro"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<span class=SpellE>std</span>::<span class=SpellE>cout</span> &lt;&lt;
&quot;copy&quot; &lt;&lt; <span class=SpellE>std</span>::<span class=SpellE>endl</span>;&nbsp;&nbsp;&nbsp;
</span></strong></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><strong><span style='font-size:11.0pt;font-family:"Anonymous Pro"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<span class=SpellE>std</span>::vector&lt;double&gt; c(z);&nbsp;&nbsp; </span></strong></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><strong><span style='font-size:11.0pt;font-family:"Anonymous Pro"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
for (<span class=SpellE>int</span> <span class=SpellE>i</span> = 0; <span
class=SpellE>i</span> &lt; 3; <span class=SpellE>i</span>++)</span></strong></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><strong><span style='font-size:11.0pt;font-family:"Anonymous Pro"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
{</span></strong></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><strong><span style='font-size:11.0pt;font-family:"Anonymous Pro"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
c[<span class=SpellE>i</span>] += y[<span class=SpellE>i</span>];</span></strong></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><strong><span style='font-size:11.0pt;font-family:"Anonymous Pro"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
}</span></strong></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><strong><span style='font-size:11.0pt;font-family:"Anonymous Pro"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
return c;</span></strong></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><strong><span style='font-size:11.0pt;font-family:"Anonymous Pro"'>&nbsp;&nbsp;&nbsp;
}</span></strong></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><strong><span style='font-size:11.0pt;font-family:"Anonymous Pro"'>&nbsp;&nbsp;&nbsp;
</span></strong></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><strong><span style='font-size:11.0pt;font-family:"Anonymous Pro"'>&nbsp;&nbsp;&nbsp;
void <span class=SpellE>add_vector</span>(<span class=SpellE>std</span>::vector&lt;double&gt;&amp;
z)</span></strong></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><strong><span style='font-size:11.0pt;font-family:"Anonymous Pro"'>&nbsp;&nbsp;&nbsp;
{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></strong></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><strong><span style='font-size:11.0pt;font-family:"Anonymous Pro"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<span class=SpellE>std</span>::<span class=SpellE>cout</span> &lt;&lt;
&quot;out&quot; &lt;&lt; <span class=SpellE>std</span>::<span class=SpellE>endl</span>;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></strong></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><strong><span style='font-size:11.0pt;font-family:"Anonymous Pro"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
for (<span class=SpellE>int</span> <span class=SpellE>i</span> = 0; <span
class=SpellE>i</span> &lt; 3; <span class=SpellE>i</span>++)</span></strong></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><strong><span style='font-size:11.0pt;font-family:"Anonymous Pro"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
{</span></strong></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><strong><span style='font-size:11.0pt;font-family:"Anonymous Pro"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
z[<span class=SpellE>i</span>] += y[<span class=SpellE>i</span>];</span></strong></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><strong><span style='font-size:11.0pt;font-family:"Anonymous Pro"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></strong></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><strong><span style='font-size:11.0pt;font-family:"Anonymous Pro"'>&nbsp;&nbsp;&nbsp;
}</span></strong></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><strong><span style='font-size:11.0pt;font-family:"Anonymous Pro"'>};</span></strong></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><strong><span style='font-size:11.0pt;font-family:"Anonymous Pro"'>&nbsp;</span></strong></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><span class=SpellE><strong><span style='font-size:11.0pt;font-family:
"Anonymous Pro"'>int</span></strong></span><strong><span style='font-size:11.0pt;
font-family:"Anonymous Pro"'> main()</span></strong></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><strong><span style='font-size:11.0pt;font-family:"Anonymous Pro"'>{&nbsp;&nbsp;&nbsp;
</span></strong></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><strong><span style='font-size:11.0pt;font-family:"Anonymous Pro"'>&nbsp;&nbsp;&nbsp;
B b(3.5);</span></strong></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><strong><span style='font-size:11.0pt;font-family:"Anonymous Pro"'>&nbsp;&nbsp;&nbsp;
</span></strong></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><strong><span style='font-size:11.0pt;font-family:"Anonymous Pro"'>&nbsp;&nbsp;&nbsp;
<span class=SpellE>std</span>::vector&lt;double&gt; v(3);</span></strong></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><strong><span style='font-size:11.0pt;font-family:"Anonymous Pro"'>&nbsp;&nbsp;&nbsp;
v[0] = 10.0;</span></strong></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><strong><span style='font-size:11.0pt;font-family:"Anonymous Pro"'>&nbsp;&nbsp;&nbsp;
v[1] = 100.0;</span></strong></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><strong><span style='font-size:11.0pt;font-family:"Anonymous Pro"'>&nbsp;&nbsp;&nbsp;
v[2] = 1000.0;&nbsp;&nbsp; </span></strong></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><strong><span style='font-size:11.0pt;font-family:"Anonymous Pro"'>&nbsp;&nbsp;&nbsp;
</span></strong></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;text-indent:
24.0pt;line-height:normal'><strong><span style='font-size:11.0pt;font-family:
"Anonymous Pro"'>auto <span class=SpellE>b_add_vector_copy</span> = </span></strong></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;text-indent:
24.0pt;line-height:normal'><strong><span style='font-size:11.0pt;font-family:
"Anonymous Pro"'>&nbsp;&nbsp; <span class=SpellE>std</span>::<span
class=SpellE>mem_fn</span></span></strong></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;text-indent:
24.0pt;line-height:normal'><strong><span style='font-size:11.0pt;font-family:
"Anonymous Pro"'>&nbsp;&nbsp;&nbsp;&nbsp; ((<span class=SpellE>std</span>::vector&lt;double&gt;(B::*)(<span
class=SpellE>const</span> <span class=SpellE>std</span>::vector&lt;double&gt;&amp;)
<span class=SpellE>const</span>)</span></strong></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;text-indent:
24.0pt;line-height:normal'><strong><span style='font-size:11.0pt;font-family:
"Anonymous Pro"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &amp;B::<span
class=SpellE>add_vector</span>, &amp;b); </span></strong></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;text-indent:
24.0pt;line-height:normal'><strong><span style='font-size:11.0pt;font-family:
"Anonymous Pro"'>&nbsp;</span></strong></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><strong><span style='font-size:11.0pt;font-family:"Anonymous Pro"'>&nbsp;&nbsp;&nbsp;
<span class=SpellE>std</span>::vector&lt;double&gt; v1 = <span class=SpellE>b_add_vector_copy</span>(v);
</span></strong></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><strong><span style='font-size:11.0pt;font-family:"Anonymous Pro"'>&nbsp;&nbsp;&nbsp;
<span class=SpellE>std</span>::<span class=SpellE>cout</span> &lt;&lt; &quot;<span
class=SpellE>v.size</span>(): &quot; &lt;&lt; <span class=SpellE>v.size</span>()
&lt;&lt; <span class=SpellE>std</span>::<span class=SpellE>endl</span>;</span></strong></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><strong><span style='font-size:11.0pt;font-family:"Anonymous Pro"'>&nbsp;&nbsp;&nbsp;
for (<span class=SpellE>int</span> <span class=SpellE>i</span> = 0; <span
class=SpellE>i</span> &lt; 3; <span class=SpellE>i</span>++)</span></strong></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><strong><span style='font-size:11.0pt;font-family:"Anonymous Pro"'>&nbsp;&nbsp;&nbsp;
{</span></strong></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><strong><span style='font-size:11.0pt;font-family:"Anonymous Pro"'>&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;<span class=SpellE>std</span>::<span class=SpellE>cout</span>
&lt;&lt; &quot;v1: &quot; &lt;&lt; v1[<span class=SpellE>i</span>] &lt;&lt; <span
class=SpellE>std</span>::<span class=SpellE>endl</span>;</span></strong></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><strong><span style='font-size:11.0pt;font-family:"Anonymous Pro"'>&nbsp;&nbsp;&nbsp;
}</span></strong></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><strong><span style='font-size:11.0pt;font-family:"Anonymous Pro"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></strong></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;text-indent:
24.0pt;line-height:normal'><strong><span style='font-size:11.0pt;font-family:
"Anonymous Pro"'>auto <span class=SpellE>b_add_vector_move</span> = </span></strong></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;text-indent:
24.0pt;line-height:normal'><strong><span style='font-size:11.0pt;font-family:
"Anonymous Pro"'>&nbsp;&nbsp;&nbsp;&nbsp; <span class=SpellE>std</span>::<span
class=SpellE>mem_fn</span></span></strong></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;text-indent:
24.0pt;line-height:normal'><strong><span style='font-size:11.0pt;font-family:
"Anonymous Pro"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ((<span class=SpellE>std</span>::vector&lt;double&gt;(B::*)(<span
class=SpellE>std</span>::vector&lt;double&gt;&amp;&amp;))</span></strong></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;text-indent:
24.0pt;line-height:normal'><strong><span style='font-size:11.0pt;font-family:
"Anonymous Pro"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &amp;B::<span
class=SpellE>add_vector,&amp;b</span>);</span></strong></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><strong><span style='font-size:11.0pt;font-family:"Anonymous Pro"'>&nbsp;&nbsp;&nbsp;
<span class=SpellE>std</span>::vector&lt;double&gt; v2 = <span class=SpellE>b_add_vector_move</span>(<span
class=SpellE>std</span>::move(v));</span></strong></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><strong><span style='font-size:11.0pt;font-family:"Anonymous Pro"'>&nbsp;&nbsp;&nbsp;
<span class=SpellE>std</span>::<span class=SpellE>cout</span> &lt;&lt; &quot;<span
class=SpellE>v.size</span>(): &quot; &lt;&lt; <span class=SpellE>v.size</span>()
&lt;&lt; <span class=SpellE>std</span>::<span class=SpellE>endl</span>; // v
size is now 0</span></strong></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><strong><span style='font-size:11.0pt;font-family:"Anonymous Pro"'>&nbsp;&nbsp;&nbsp;
for (<span class=SpellE>int</span> <span class=SpellE>i</span> = 0; <span
class=SpellE>i</span> &lt; 3; <span class=SpellE>i</span>++)</span></strong></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><strong><span style='font-size:11.0pt;font-family:"Anonymous Pro"'>&nbsp;&nbsp;&nbsp;
{</span></strong></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><strong><span style='font-size:11.0pt;font-family:"Anonymous Pro"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<span class=SpellE>std</span>::<span class=SpellE>cout</span> &lt;&lt;
&quot;v2: &quot; &lt;&lt; v2[<span class=SpellE>i</span>] &lt;&lt; <span
class=SpellE>std</span>::<span class=SpellE>endl</span>;</span></strong></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><strong><span style='font-size:11.0pt;font-family:"Anonymous Pro"'>&nbsp;&nbsp;&nbsp;
}</span></strong></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><strong><span style='font-size:11.0pt;font-family:"Anonymous Pro"'>&nbsp;</span></strong></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><strong><span style='font-size:11.0pt;font-family:"Anonymous Pro"'>&nbsp;&nbsp;&nbsp;
<span class=SpellE>std</span>::vector&lt;double&gt; v3(3);</span></strong></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><strong><span style='font-size:11.0pt;font-family:"Anonymous Pro"'>&nbsp;&nbsp;&nbsp;
v3[0] = 10.0;</span></strong></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><strong><span style='font-size:11.0pt;font-family:"Anonymous Pro"'>&nbsp;&nbsp;&nbsp;
v3[1] = 100.0;</span></strong></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><strong><span style='font-size:11.0pt;font-family:"Anonymous Pro"'>&nbsp;&nbsp;&nbsp;
v3[2] = 1000.0;&nbsp; &nbsp;&nbsp;</span></strong></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><strong><span style='font-size:11.0pt;font-family:"Anonymous Pro"'>&nbsp;&nbsp;&nbsp;
</span></strong></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><strong><span style='font-size:11.0pt;font-family:"Anonymous Pro"'>&nbsp;&nbsp;&nbsp;
</span></strong></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;text-indent:
24.0pt;line-height:normal'><strong><span style='font-size:11.0pt;font-family:
"Anonymous Pro"'>auto <span class=SpellE>b_add_vector_ref</span> =&nbsp; </span></strong></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;text-indent:
24.0pt;line-height:normal'><strong><span style='font-size:11.0pt;font-family:
"Anonymous Pro"'>&nbsp;&nbsp;&nbsp;&nbsp; <span class=SpellE>std</span>::<span
class=SpellE>mem_fn</span></span></strong></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;text-indent:
24.0pt;line-height:normal'><strong><span style='font-size:11.0pt;font-family:
"Anonymous Pro"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ((void(B::*)(<span
class=SpellE>std</span>::vector&lt;double&gt;&amp;))&amp;B::<span class=SpellE>add_vector,&amp;b</span>);</span></strong></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><strong><span style='font-size:11.0pt;font-family:"Anonymous Pro"'>&nbsp;&nbsp;&nbsp;
<span class=SpellE>b_add_vector_ref</span>(v3);</span></strong></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><strong><span style='font-size:11.0pt;font-family:"Anonymous Pro"'>&nbsp;&nbsp;&nbsp;
for (<span class=SpellE>int</span> <span class=SpellE>i</span> = 0; <span
class=SpellE>i</span> &lt; 3; <span class=SpellE>i</span>++)</span></strong></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><strong><span style='font-size:11.0pt;font-family:"Anonymous Pro"'>&nbsp;&nbsp;&nbsp;
{</span></strong></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><strong><span style='font-size:11.0pt;font-family:"Anonymous Pro"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<span class=SpellE>std</span>::<span class=SpellE>cout</span> &lt;&lt;
&quot;v3: &quot; &lt;&lt; v3[<span class=SpellE>i</span>] &lt;&lt; <span
class=SpellE>std</span>::<span class=SpellE>endl</span>;</span></strong></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><strong><span style='font-size:11.0pt;font-family:"Anonymous Pro"'>&nbsp;&nbsp;&nbsp;
}</span></strong></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><strong><span style='font-size:11.0pt;font-family:"Anonymous Pro"'>}</span></strong></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><strong><span style='font-size:11.0pt;font-family:"Anonymous Pro"'>&nbsp;</span></strong></p>

<p class=MsoNormal><strong><span style='font-family:"Times New Roman","serif";
font-weight:normal'>This program will print:</span></strong></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><strong><span style='font-family:"Trebuchet MS","sans-serif"'>copy</span></strong></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><span class=SpellE><strong><span style='font-family:"Trebuchet MS","sans-serif"'>v.size</span></strong></span><strong><span
style='font-family:"Trebuchet MS","sans-serif"'>(): 3</span></strong></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><strong><span style='font-family:"Trebuchet MS","sans-serif"'>v1: 11.5</span></strong></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><strong><span style='font-family:"Trebuchet MS","sans-serif"'>v1: 102.7</span></strong></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><strong><span style='font-family:"Trebuchet MS","sans-serif"'>v1:
1004.9</span></strong></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><strong><span style='font-family:"Trebuchet MS","sans-serif"'>move</span></strong></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><span class=SpellE><strong><span style='font-family:"Trebuchet MS","sans-serif"'>v.size</span></strong></span><strong><span
style='font-family:"Trebuchet MS","sans-serif"'>(): 0</span></strong></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><strong><span style='font-family:"Trebuchet MS","sans-serif"'>v2: 11.5</span></strong></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><strong><span style='font-family:"Trebuchet MS","sans-serif"'>v2: 102.7</span></strong></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><strong><span style='font-family:"Trebuchet MS","sans-serif"'>v2:
1004.9</span></strong></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><strong><span style='font-family:"Trebuchet MS","sans-serif"'>out</span></strong></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><strong><span style='font-family:"Trebuchet MS","sans-serif"'>v3: 11.5</span></strong></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><strong><span style='font-family:"Trebuchet MS","sans-serif"'>v3: 102.7</span></strong></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><strong><span style='font-family:"Trebuchet MS","sans-serif"'>v3:
1004.9</span></strong></p>

<p class=MsoNormal>&nbsp;</p>

<h2 style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:l0 level1 lfo2'><![if !supportLists]><span
style='mso-fareast-font-family:"Times New Roman"'><span style='mso-list:Ignore'>3.<span
style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><![endif]><span
style='mso-fareast-font-family:"Times New Roman"'>Implementation<o:p></o:p></span></h2>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>namespace
<span class=SpellE>std</span> </span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>{</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>&nbsp;</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>#define
_two_param_delegate2(_SIG, _NAME)\</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>template&lt;class
_OBJECT1, class _T, class _R, class _Arg1, class _Arg2,\</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>&nbsp;&nbsp;&nbsp;
class ... _<span class=SpellE>Arg</span>&gt;\</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>class
_delegate2 ## _NAME\</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>{\</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>&nbsp;&nbsp;&nbsp;
</span></b><b><span lang=FR style='font-size:10.0pt;font-family:"Anonymous Pro";
mso-ansi-language:FR'>_OBJECT1 _<span class=SpellE>obj</span>;\</span></b><span
lang=FR style='mso-ansi-language:FR'><o:p></o:p></span></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span lang=FR style='font-size:10.0pt;font-family:"Anonymous Pro";
mso-ansi-language:FR'>&nbsp;&nbsp;&nbsp; _R (_T::*f1<span class=GramE>)(</span>_Arg1,
_Arg2, _<span class=SpellE>Arg</span> ... ) </span></b><b><span
style='font-size:10.0pt;font-family:"Anonymous Pro"'>_SIG;\</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>public:\</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>&nbsp;&nbsp;&nbsp;
<span class=SpellE>typedef</span> _Arg1 <span class=SpellE>first_argument_type</span>;\</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>&nbsp;&nbsp;&nbsp;
<span class=SpellE>typedef</span> _Arg2 <span class=SpellE>second_argument_type</span>;\</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>&nbsp;&nbsp;&nbsp;
<span class=SpellE>typedef</span> _R <span class=SpellE>return_type</span>;\</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>\</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;text-indent:
21.0pt;line-height:normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>_delegate2
## _NAME(_R (_T::*_<span class=SpellE>fx</span>)(_Arg1, _Arg2, _<span
class=SpellE>Arg</span> ... )\</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;text-indent:
21.0pt;line-height:normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
_SIG, _OBJECT1 _obj1):_<span class=SpellE>obj</span>(_obj1),f1(_<span
class=SpellE>fx</span>)\</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>&nbsp;&nbsp;&nbsp;
{\</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>&nbsp;&nbsp;&nbsp;
} \</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>\</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>&nbsp;&nbsp;&nbsp;
_R operator()(_Arg1 _x1, _Arg2 _x2, _<span class=SpellE>Arg</span> ...&nbsp;
_x) _SIG\</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>&nbsp;&nbsp;&nbsp;
{\</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
return ((*_<span class=SpellE>obj</span>).*f1)(<span class=SpellE>std</span>::forward&lt;_Arg1&gt;(_x1),\</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<span class=SpellE>std</span>::forward&lt;_Arg2&gt;(_x2), <span class=SpellE>std</span>::forward&lt;_<span
class=SpellE>Arg</span>&gt;(_x) ...);\</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>&nbsp;&nbsp;&nbsp;
}\</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>};</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>&nbsp;</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>&nbsp;</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>&nbsp;</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>&nbsp;</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>_two_param_delegate2(,_simple)</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>_two_param_delegate2(<span
class=SpellE>const</span>, _<span class=SpellE>const</span>)</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>_two_param_delegate2(<span
class=SpellE>const</span> volatile, _<span class=SpellE>const_volatile</span>)</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>_two_param_delegate2(volatile,
_volatile)</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>&nbsp;</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>&nbsp;</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>#define
_two_param_delegate1(_SIG, _NAME)\</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>template&lt;class
_OBJECT1, class _T, class _R, class _Arg1&gt;\</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>class
_delegate1 ## _NAME\</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>{\</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>&nbsp;&nbsp;&nbsp;
_OBJECT1 _<span class=SpellE>obj</span>;\</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>&nbsp;&nbsp;&nbsp;
</span></b><b><span lang=FR style='font-size:10.0pt;font-family:"Anonymous Pro";
mso-ansi-language:FR'>_R (_T<span class=GramE>::*</span>f1)(_Arg1) _SIG;\</span></b><span
lang=FR style='mso-ansi-language:FR'><o:p></o:p></span></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><span class=GramE><b><span lang=FR style='font-size:10.0pt;font-family:
"Anonymous Pro";mso-ansi-language:FR'>public</span></b></span><b><span lang=FR
style='font-size:10.0pt;font-family:"Anonymous Pro";mso-ansi-language:FR'>:\</span></b><span
lang=FR style='mso-ansi-language:FR'><o:p></o:p></span></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span lang=FR style='font-size:10.0pt;font-family:"Anonymous Pro";
mso-ansi-language:FR'>&nbsp;&nbsp;&nbsp; </span></b><span class=SpellE><b><span
style='font-size:10.0pt;font-family:"Anonymous Pro"'>typedef</span></b></span><b><span
style='font-size:10.0pt;font-family:"Anonymous Pro"'> _Arg1 <span class=SpellE>argument_type</span>;\</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>&nbsp;&nbsp;&nbsp;
<span class=SpellE>typedef</span> _R <span class=SpellE>return_type</span>;\</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>\</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;text-indent:
21.0pt;line-height:normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>_delegate1
## _NAME(_R (_T::*_<span class=SpellE>fx</span>)(_Arg1)\</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;text-indent:
21.0pt;line-height:normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
_SIG, _OBJECT1 _obj1):_<span class=SpellE>obj</span>(_obj1),f1(_<span
class=SpellE>fx</span>)\</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>&nbsp;&nbsp;&nbsp;
{\</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>&nbsp;&nbsp;&nbsp;
} \</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>\</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>&nbsp;&nbsp;&nbsp;
_R operator()(_Arg1 _x1) _SIG\</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>&nbsp;&nbsp;&nbsp;
{\</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
return ((*_<span class=SpellE>obj</span>).*f1)(<span class=SpellE>std</span>::forward&lt;_Arg1&gt;(_x1));\</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>&nbsp;&nbsp;&nbsp;
}\</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>};</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>&nbsp;</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>_two_param_delegate1(,_simple)</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>_two_param_delegate1(<span
class=SpellE>const</span>, _<span class=SpellE>const</span>)</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>_two_param_delegate1(<span
class=SpellE>const</span> volatile, _<span class=SpellE>const_volatile</span>)</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>_two_param_delegate1(volatile,
_volatile)</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>&nbsp;</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>#define _two_param_delegate0(_SIG,
_NAME)\</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>template&lt;class
_OBJECT1, class _T, class _R&gt;\</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>class
_delegate0 ## _NAME\</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>{\</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>&nbsp;&nbsp;&nbsp;
_OBJECT1 _<span class=SpellE>obj</span>;\</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>&nbsp;&nbsp;&nbsp;
</span></b><b><span lang=FR style='font-size:10.0pt;font-family:"Anonymous Pro";
mso-ansi-language:FR'>_R (_T<span class=GramE>::*</span>f1)() _SIG;\</span></b><span
lang=FR style='mso-ansi-language:FR'><o:p></o:p></span></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><span class=GramE><b><span lang=FR style='font-size:10.0pt;font-family:
"Anonymous Pro";mso-ansi-language:FR'>public</span></b></span><b><span lang=FR
style='font-size:10.0pt;font-family:"Anonymous Pro";mso-ansi-language:FR'>:\</span></b><span
lang=FR style='mso-ansi-language:FR'><o:p></o:p></span></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span lang=FR style='font-size:10.0pt;font-family:"Anonymous Pro";
mso-ansi-language:FR'>&nbsp;&nbsp;&nbsp; </span></b><span class=SpellE><b><span
style='font-size:10.0pt;font-family:"Anonymous Pro"'>typedef</span></b></span><b><span
style='font-size:10.0pt;font-family:"Anonymous Pro"'> _R <span class=SpellE>return_type</span>;\</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>\</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>&nbsp;&nbsp;&nbsp;
_delegate0 ## _NAME(_R (_T::*_<span class=SpellE>fx</span>)() _SIG, _OBJECT1
_obj1):_<span class=SpellE>obj</span>(_obj1),f1(_<span class=SpellE>fx</span>)\</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>&nbsp;&nbsp;&nbsp;
{\</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>&nbsp;&nbsp;&nbsp;
} \</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>\</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>&nbsp;&nbsp;&nbsp;
_R operator()() _SIG\</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>&nbsp;&nbsp;&nbsp;
{\</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
return ((*_<span class=SpellE>obj</span>).*f1)();\</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>&nbsp;&nbsp;&nbsp;
}\</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>};</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>&nbsp;</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>_two_param_delegate0(,_simple)</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>_two_param_delegate0(<span
class=SpellE>const</span>, _<span class=SpellE>const</span>)</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>_two_param_delegate0(<span
class=SpellE>const</span> volatile, _<span class=SpellE>const_volatile</span>)</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>_two_param_delegate0(volatile,
_volatile)</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>&nbsp;</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>&nbsp;</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>&nbsp;</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>&nbsp;</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>#define
_one_param_delegate1(_SIG, _NAME)\</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>template&lt;class
_T, class _R, class _Arg1, class ... _<span class=SpellE>Arg</span>&gt;\</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>class
_one_p_delegate1 ## _NAME\</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span lang=FR style='font-size:10.0pt;font-family:"Anonymous Pro";
mso-ansi-language:FR'>{\</span></b><span lang=FR style='mso-ansi-language:FR'><o:p></o:p></span></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span lang=FR style='font-size:10.0pt;font-family:"Anonymous Pro";
mso-ansi-language:FR'>&nbsp;&nbsp;&nbsp; _R (_T::*f1<span class=GramE>)(</span>_Arg1,
_<span class=SpellE>Arg</span> ... ) _SIG;\</span></b><span lang=FR
style='mso-ansi-language:FR'><o:p></o:p></span></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>public:\</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>&nbsp;&nbsp;&nbsp;
<span class=SpellE>typedef</span> _SIG _T* <span class=SpellE>first_argument_type</span>;\</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>&nbsp;&nbsp;&nbsp;
<span class=SpellE>typedef</span> _Arg1 <span class=SpellE>second_argument_type</span>;\</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>&nbsp;&nbsp;&nbsp;
<span class=SpellE>typedef</span> _R <span class=SpellE>return_type</span>;\</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>\</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>&nbsp;&nbsp;&nbsp;
_one_p_delegate1 ## _NAME(_R (_T::*_<span class=SpellE>fx</span>)(_Arg1, _<span
class=SpellE>Arg</span> ... ) _SIG):f1(_<span class=SpellE>fx</span>)\</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>&nbsp;&nbsp;&nbsp;
{\</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>&nbsp;&nbsp;&nbsp;
} \</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>\</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>&nbsp;&nbsp;&nbsp;
template&lt;class _OBJECT&gt;\</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>&nbsp;&nbsp;&nbsp;
_R operator()(_OBJECT _obj,_Arg1 _x1, _<span class=SpellE>Arg</span> ...&nbsp;
_x) _SIG\</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>&nbsp;&nbsp;&nbsp;
{\</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
return ((*_<span class=SpellE>obj</span>).*f1)(<span class=SpellE>std</span>::forward&lt;_Arg1&gt;(_x1),
<span class=SpellE>std</span>::forward&lt;_<span class=SpellE>Arg</span>&gt;(_x)
...);\</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>&nbsp;&nbsp;&nbsp;
}\</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>};</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>&nbsp;</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>_one_param_delegate1(,_simple)</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>_one_param_delegate1(<span
class=SpellE>const</span>, _<span class=SpellE>const</span>)</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>_one_param_delegate1(<span
class=SpellE>const</span> volatile, _<span class=SpellE>const_volatile</span>)</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>_one_param_delegate1(volatile,
_volatile)</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>&nbsp;</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>#define
_one_param_delegate0(_SIG, _NAME)\</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>template&lt;class
_T, class _R&gt;\</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>class
_one_p_delegate0 ## _NAME\</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span lang=FR style='font-size:10.0pt;font-family:"Anonymous Pro";
mso-ansi-language:FR'>{\</span></b><span lang=FR style='mso-ansi-language:FR'><o:p></o:p></span></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span lang=FR style='font-size:10.0pt;font-family:"Anonymous Pro";
mso-ansi-language:FR'>&nbsp;&nbsp;&nbsp; _R (_T<span class=GramE>::*</span>f1)()
_SIG;\</span></b><span lang=FR style='mso-ansi-language:FR'><o:p></o:p></span></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><span class=GramE><b><span lang=FR style='font-size:10.0pt;font-family:
"Anonymous Pro";mso-ansi-language:FR'>public</span></b></span><b><span lang=FR
style='font-size:10.0pt;font-family:"Anonymous Pro";mso-ansi-language:FR'>:\</span></b><span
lang=FR style='mso-ansi-language:FR'><o:p></o:p></span></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span lang=FR style='font-size:10.0pt;font-family:"Anonymous Pro";
mso-ansi-language:FR'>&nbsp;&nbsp;&nbsp; </span></b><span class=SpellE><b><span
style='font-size:10.0pt;font-family:"Anonymous Pro"'>typedef</span></b></span><b><span
style='font-size:10.0pt;font-family:"Anonymous Pro"'> _SIG _T* <span
class=SpellE>argument_type</span>;\</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>&nbsp;&nbsp;&nbsp;
<span class=SpellE>typedef</span> _R <span class=SpellE>return_type</span>;\</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>\</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>&nbsp;&nbsp;&nbsp;
_one_p_delegate0 ## _NAME(_R (_T::*_<span class=SpellE>fx</span>)() _SIG):f1(_<span
class=SpellE>fx</span>)\</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>&nbsp;&nbsp;&nbsp;
{\</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>&nbsp;&nbsp;&nbsp;
} \</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>\</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>&nbsp;&nbsp;&nbsp;
template&lt;class _OBJECT&gt;\</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>&nbsp;
&nbsp;&nbsp;_R operator()(_OBJECT _<span class=SpellE>obj</span>) _SIG\</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>&nbsp;&nbsp;&nbsp;
{\</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
return ((*_<span class=SpellE>obj</span>).*f1)();\</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>&nbsp;&nbsp;&nbsp;
}\</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>};</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>&nbsp;</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>_one_param_delegate0(,_simple)</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>_one_param_delegate0(<span
class=SpellE>const</span>, _<span class=SpellE>const</span>)</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>_one_param_delegate0(<span
class=SpellE>const</span> volatile, _<span class=SpellE>const_volatile</span>)</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>_one_param_delegate0(volatile,
_volatile)</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>&nbsp;</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>#define
_mem_fn_macro2(_SIG,_NAME)\</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>template&lt;class
_OBJECT, class _T, class _R, class _Arg1, class _Arg2, class ... _<span
class=SpellE>Arg</span>&gt;\</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>_delegate2
## _NAME&lt;_OBJECT,_T,_R,_Arg1, _Arg2, _<span class=SpellE>Arg</span> ...
&gt;\</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>&nbsp;<span
class=SpellE>mem_fn</span>(_R (_T::*_f)(_Arg1, _Arg2, _<span class=SpellE>Arg</span>
... ) _SIG, _OBJECT _<span class=SpellE>obj</span>)\</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>{\</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>&nbsp;&nbsp;
&nbsp;return _delegate2 ## _NAME &lt;_OBJECT,_T,_R, _Arg1, _Arg2, _<span
class=SpellE>Arg</span> ... &gt;(_f, _<span class=SpellE>obj</span>);\</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>}</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>&nbsp;</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>_mem_fn_macro2(,_simple)</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>_mem_fn_macro2(<span
class=SpellE>const</span>,_<span class=SpellE>const</span>)</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>_mem_fn_macro2(<span
class=SpellE>const</span> volatile, _<span class=SpellE>const_volatile</span>)</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>_mem_fn_macro2(volatile,
_volatile)</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>&nbsp;</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>#define
_mem_fn_macro1(_SIG,_NAME)\</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>template&lt;class
_OBJECT, class _T, class _R, class _Arg1&gt;\</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>_delegate1
## _NAME&lt;_OBJECT,_T,_R,_Arg1&gt;\</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>&nbsp;<span
class=SpellE>mem_fn</span>(_R (_T::*_f)(_Arg1) _SIG, _OBJECT _<span
class=SpellE>obj</span>)\</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>{\</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>&nbsp;&nbsp;&nbsp;
return _delegate1 ## _NAME &lt;_OBJECT,_T,_R, _Arg1&gt;(_f, _<span
class=SpellE>obj</span>);\</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>}</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>&nbsp;</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>_mem_fn_macro1(,_simple)</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>_mem_fn_macro1(<span
class=SpellE>const</span>,_<span class=SpellE>const</span>)</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>_mem_fn_macro1(<span
class=SpellE>const</span> volatile, _<span class=SpellE>const_volatile</span>)</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>_mem_fn_macro1(volatile,
_volatile)</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>&nbsp;</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>&nbsp;</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>&nbsp;</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>#define
_mem_fn_macro0(_SIG,_NAME)\</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>template&lt;class
_OBJECT, class _T, class _R&gt;\</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>_delegate0
## _NAME&lt;_OBJECT,_T,_R&gt; <span class=SpellE>mem_fn</span>(_R (_T::*_f)()
_SIG, _OBJECT _<span class=SpellE>obj</span>)\</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>{\</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>&nbsp;&nbsp;&nbsp;
return _delegate0 ## _NAME &lt;_OBJECT,_T,_R&gt;(_f, _<span class=SpellE>obj</span>);\</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>}</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>&nbsp;</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>_mem_fn_macro0(,_simple)</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>_mem_fn_macro0(<span
class=SpellE>const</span>,_<span class=SpellE>const</span>)</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>_mem_fn_macro0(<span
class=SpellE>const</span> volatile, _<span class=SpellE>const_volatile</span>)</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>_mem_fn_macro0(volatile,
_volatile)</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>&nbsp;</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>#define
_one_p_mem_fn_macro1(_SIG,_NAME)\</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>template&lt;class
_T, class _R, class _Arg1, class ... _<span class=SpellE>Arg</span>&gt;\</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>_one_p_delegate1
## _NAME&lt;_T,_R,_Arg1, _<span class=SpellE>Arg</span> ... </span></b><b><span
lang=FR style='font-size:10.0pt;font-family:"Anonymous Pro";mso-ansi-language:
FR'>&gt;\</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span lang=FR style='font-size:10.0pt;font-family:"Anonymous Pro";
mso-ansi-language:FR'>&nbsp;&nbsp;&nbsp;&nbsp; <span class=SpellE>mem_<span
class=GramE>fn</span></span><span class=GramE>(</span>_R (_T::*_f)(_Arg1, _<span
class=SpellE>Arg</span> ... ) </span></b><b><span style='font-size:10.0pt;
font-family:"Anonymous Pro"'>_SIG)\</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>{\</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>&nbsp;&nbsp;&nbsp;
return _one_p_delegate1 ## _NAME &lt;_T,_R,_Arg1, _<span class=SpellE>Arg</span>
... &gt;(_f);\</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>}</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>_one_p_mem_fn_macro1(,_simple)</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>_one_p_mem_fn_macro1(<span
class=SpellE>const</span>,_<span class=SpellE>const</span>)</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>_one_p_mem_fn_macro1(<span
class=SpellE>const</span> volatile, _<span class=SpellE>const_volatile</span>)</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>_one_p_mem_fn_macro1(volatile,
_volatile)</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>&nbsp;</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>#define
_one_p_mem_fn_macro0(_SIG,_NAME)\</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>template&lt;class
_T, class _R&gt;\</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>_one_p_delegate0
## _NAME&lt;_T,_R&gt; <span class=SpellE>mem_fn</span>(_R (_T::*_f)() _SIG)\</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>{\</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>&nbsp;&nbsp;&nbsp;
return _one_p_delegate0 ## _NAME &lt;_T,_R&gt;(_f);\</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>}</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>&nbsp;</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>_one_p_mem_fn_macro0(,_simple)</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>_one_p_mem_fn_macro0(<span
class=SpellE>const</span>,_<span class=SpellE>const</span>)</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>_one_p_mem_fn_macro0(<span
class=SpellE>const</span> volatile, _<span class=SpellE>const_volatile</span>)</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>_one_p_mem_fn_macro0(volatile,
_volatile)</span></b></p>

<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'><b><span style='font-size:10.0pt;font-family:"Anonymous Pro"'>&nbsp;</span></b></p>

<p class=MsoNormal><b><span style='font-size:10.0pt;line-height:115%;
font-family:"Anonymous Pro"'>}</span></b></p>

</div>

</body>

</html>
