<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://www.developer.nokia.com/Community/Wiki/skins/common/feed.css?1917"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>http://www.developer.nokia.com/Community/Wiki/index.php?title=Archived:EUserHL_Core_Idiom_Library&amp;feed=atom&amp;action=history</id>
		<title>Archived:EUserHL Core Idiom Library - Revision history</title>
		<link rel="self" type="application/atom+xml" href="http://www.developer.nokia.com/Community/Wiki/index.php?title=Archived:EUserHL_Core_Idiom_Library&amp;feed=atom&amp;action=history"/>
		<link rel="alternate" type="text/html" href="http://www.developer.nokia.com/Community/Wiki/index.php?title=Archived:EUserHL_Core_Idiom_Library&amp;action=history"/>
		<updated>2013-05-25T11:30:15Z</updated>
		<subtitle>Revision history for this page on the wiki</subtitle>
		<generator>MediaWiki 1.18.6</generator>

	<entry>
		<id>http://www.developer.nokia.com/Community/Wiki/index.php?title=Archived:EUserHL_Core_Idiom_Library&amp;diff=159551&amp;oldid=prev</id>
		<title>Hamishwillee: Hamishwillee - Bot update - Fix links</title>
		<link rel="alternate" type="text/html" href="http://www.developer.nokia.com/Community/Wiki/index.php?title=Archived:EUserHL_Core_Idiom_Library&amp;diff=159551&amp;oldid=prev"/>
				<updated>2012-06-29T04:11:02Z</updated>
		
		<summary type="html">&lt;p&gt;Hamishwillee - Bot update - Fix links&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
		&lt;tr valign='top'&gt;
		&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;← Older revision&lt;/td&gt;
		&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Revision as of 04:11, 29 June 2012&lt;/td&gt;
		&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;{{Archived|timestamp=20120313092102|user=roy.debjit| }}&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;{{Archived|timestamp=20120313092102|user=roy.debjit| }}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;{{ArticleMetaData &amp;lt;!-- v1.2 --&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;{{ArticleMetaData &amp;lt;!-- v1.2 --&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;|sourcecode= [[Media:EUserHL.zip]] &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;|sourcecode= [[Media:EUserHL.zip]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;|installfile= &amp;lt;!-- Link to installation file (e.g. [[Media:The Installation File.sis]]) --&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;|installfile= &amp;lt;!-- Link to installation file (e.g. [[Media:The Installation File.sis]]) --&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;|devices= &amp;lt;!-- Devices tested against - e.g. ''devices=Nokia 6131 NFC, Nokia C7-00'') --&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;|devices= &amp;lt;!-- Devices tested against - e.g. ''devices=Nokia 6131 NFC, Nokia C7-00'') --&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 445:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 445:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Applications that use the LString class will have a dependency on {{Icode|EUserHL.dll}}, which must be installed by embedding the {{Icode|EUserHL.sis}} package in the application's SIS package.&amp;#160; The package UID of EUserHL, required for embedding the sis file with your application, is: '''0x2001B440'''&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Applications that use the LString class will have a dependency on {{Icode|EUserHL.dll}}, which must be installed by embedding the {{Icode|EUserHL.sis}} package in the application's SIS package.&amp;#160; The package UID of EUserHL, required for embedding the sis file with your application, is: '''0x2001B440'''&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;The Nokia Developer article [[The dependency option is not supported with embedded SIS packages (Known Issue)]] is also important for applications that need to support S60 3rd Edition and S60 3rd Edition FP1. Applications that need to support those devices may want to avoid depending on EUserHL.dll at all, to avoid this issue.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;The Nokia Developer article [[&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Archived:&lt;/ins&gt;The dependency option is not supported with embedded SIS packages (Known Issue)]] is also important for applications that need to support S60 3rd Edition and S60 3rd Edition FP1. Applications that need to support those devices may want to avoid depending on EUserHL.dll at all, to avoid this issue.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Note that the issue described in [[The dependency option is not supported with embedded SIS packages (Known Issue)]] is not specific to EUserHL. It applies to any embedded package that is delivered by multiple applications and/or multiple vendors. TODO: There should be a wiki page here that discusses these embedded installation issues in more detail and explains how to deal with them effectively.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Note that the issue described in [[&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Archived:&lt;/ins&gt;The dependency option is not supported with embedded SIS packages (Known Issue)]] is not specific to EUserHL. It applies to any embedded package that is delivered by multiple applications and/or multiple vendors. TODO: There should be a wiki page here that discusses these embedded installation issues in more detail and explains how to deal with them effectively.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;As noted above, EUserHL.sis 1.0 (shipped in EUserHL 1.0 and EUserHL 1.1) does not support backup/restore and causes warnings during installation. Applications should embed EUserHL.sis 1.2 or later to avoid these two issues.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;As noted above, EUserHL.sis 1.0 (shipped in EUserHL 1.0 and EUserHL 1.1) does not support backup/restore and causes warnings during installation. Applications should embed EUserHL.sis 1.2 or later to avoid these two issues.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Hamishwillee</name></author>	</entry>

	<entry>
		<id>http://www.developer.nokia.com/Community/Wiki/index.php?title=Archived:EUserHL_Core_Idiom_Library&amp;diff=155952&amp;oldid=prev</id>
		<title>Hamishwillee: moved EUserHL Core Idiom Library to Archived:EUserHL Core Idiom Library</title>
		<link rel="alternate" type="text/html" href="http://www.developer.nokia.com/Community/Wiki/index.php?title=Archived:EUserHL_Core_Idiom_Library&amp;diff=155952&amp;oldid=prev"/>
				<updated>2012-06-19T00:35:51Z</updated>
		
		<summary type="html">&lt;p&gt;moved &lt;a href=&quot;/Community/Wiki/EUserHL_Core_Idiom_Library&quot; class=&quot;mw-redirect&quot; title=&quot;EUserHL Core Idiom Library&quot;&gt;EUserHL Core Idiom Library&lt;/a&gt; to &lt;a href=&quot;/Community/Wiki/Archived:EUserHL_Core_Idiom_Library&quot; title=&quot;Archived:EUserHL Core Idiom Library&quot;&gt;Archived:EUserHL Core Idiom Library&lt;/a&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
		&lt;tr valign='top'&gt;
		&lt;td colspan='1' style=&quot;background-color: white; color:black;&quot;&gt;← Older revision&lt;/td&gt;
		&lt;td colspan='1' style=&quot;background-color: white; color:black;&quot;&gt;Revision as of 00:35, 19 June 2012&lt;/td&gt;
		&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Hamishwillee</name></author>	</entry>

	<entry>
		<id>http://www.developer.nokia.com/Community/Wiki/index.php?title=Archived:EUserHL_Core_Idiom_Library&amp;diff=155951&amp;oldid=prev</id>
		<title>Hamishwillee: Hamishwillee - Bot update - Move into Archived namespace</title>
		<link rel="alternate" type="text/html" href="http://www.developer.nokia.com/Community/Wiki/index.php?title=Archived:EUserHL_Core_Idiom_Library&amp;diff=155951&amp;oldid=prev"/>
				<updated>2012-06-19T00:35:39Z</updated>
		
		<summary type="html">&lt;p&gt;Hamishwillee - Bot update - Move into Archived namespace&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
		&lt;tr valign='top'&gt;
		&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;← Older revision&lt;/td&gt;
		&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Revision as of 00:35, 19 June 2012&lt;/td&gt;
		&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;[[Category:Symbian C++]][[Category:SDK]][[Category:S60 3rd Edition]][[Category:Essential Idioms]]&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;{{Abstract|Core Idioms libraries deliver improved APIs to reduce the number of coding activities associated with a given task, and where possible make core Symbian idioms more accessible to non-Symbian programmers. The initial delivery provided simpler mechanisms for string handling and semi-automated memory management - see [[An Introduction to L Classes]] for further documentation about the {{Icode|LString}} class.}}&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;{{Archived|timestamp=20120313092102|user=roy.debjit| }}&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;{{Archived|timestamp=20120313092102|user=roy.debjit| }}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;{{ArticleMetaData &amp;lt;!-- v1.2 --&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;|sourcecode= [[Media:EUserHL.zip]] &lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;|installfile= &amp;lt;!-- Link to installation file (e.g. [[Media:The Installation File.sis]]) --&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;|devices= &amp;lt;!-- Devices tested against - e.g. ''devices=Nokia 6131 NFC, Nokia C7-00'') --&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;|sdk= &amp;lt;!-- SDK(s) built and tested against (e.g. [http://linktosdkdownload/ Qt SDK 1.1.4]) --&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;|platform= &amp;lt;!-- Compatible platforms - e.g. Symbian^1 and later, Qt 4.6 and later --&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;|devicecompatability= &amp;lt;!-- Compatible devices e.g.: All* (must have internal GPS) --&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;|dependencies= &amp;lt;!-- Any other/external dependencies e.g.: Google Maps Api v1.0 --&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;|signing= &amp;lt;!-- Signing requirements - empty or one of: Self-Signed, DevCert, Manufacturer --&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;|capabilities= &amp;lt;!-- Capabilities required by the article/code example (e.g. Location, NetworkServices. --&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;|keywords= &amp;lt;!-- APIs, classes and methods (e.g. QSystemScreenSaver, QList, CBase --&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;|language= &amp;lt;!-- Language category code for non-English topics - e.g. Lang-Chinese --&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;|translated-by= &amp;lt;!-- [[User:XXXX]] --&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;|translated-from-title= &amp;lt;!-- Title only --&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;|translated-from-id= &amp;lt;!-- Id of translated revision --&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;|review-by= &amp;lt;!-- After re-review: [[User:username]] --&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;|review-timestamp= &amp;lt;!-- After re-review: YYYYMMDD --&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;|update-by= &amp;lt;!-- After significant update: [[User:username]]--&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;|update-timestamp= &amp;lt;!-- After significant update: YYYYMMDD --&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;|creationdate= 20110510&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;|author= [[User:Hamishwillee]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;}}&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;[[Category:Symbian C++]][[Category:SDK]][[Category:S60 3rd Edition (initial release)]][[Category:Essential Idioms]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;{{Abstract|Core Idioms libraries deliver improved APIs to reduce the number of coding activities associated with a given task, and where possible make core Symbian idioms more accessible to non-Symbian programmers. The initial delivery provided simpler mechanisms for string handling and semi-automated memory management - see [[Archived:An Introduction to L Classes]] for further documentation about the {{Icode|LString}} class.}}&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Core Idioms consists of a the EUserHL.dll along with supporting header files. These Core Idiom classes are included in the Symbian^3 platform, including the Symbian^3 targets in the [[Qt SDK]].&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Core Idioms consists of a the EUserHL.dll along with supporting header files. These Core Idiom classes are included in the Symbian^3 platform, including the Symbian^3 targets in the [[Qt SDK]].&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 218:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 240:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Finally, to allow {{Icode|LString}} to be allocated on the heap and deleted, the class defines implementations for various overloads of the operator {{Icode|new()}} and operator {{Icode|delete()}} methods.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Finally, to allow {{Icode|LString}} to be allocated on the heap and deleted, the class defines implementations for various overloads of the operator {{Icode|new()}} and operator {{Icode|delete()}} methods.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;For more information about the new string class, see [[An Introduction to L Classes]].&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;For more information about the new string class, see [[&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Archived:&lt;/ins&gt;An Introduction to L Classes]].&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;====Class templates to automate cleanup====&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;====Class templates to automate cleanup====&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 241:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 263:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;|}&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;|}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;The cleanup strategy can be changed to one of the predefined cleanup strategies provided, or to a user-defined custom cleanup strategy. For more information about the cleanup management helper templates, see [[An Introduction to L Classes]].&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;The cleanup strategy can be changed to one of the predefined cleanup strategies provided, or to a user-defined custom cleanup strategy. For more information about the cleanup management helper templates, see [[&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Archived:&lt;/ins&gt;An Introduction to L Classes]].&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;===LCleanedupX templates===&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;===LCleanedupX templates===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 297:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 319:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; #include &amp;lt;e32std.h&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; #include &amp;lt;e32std.h&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; #include &amp;lt;f32file.h&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; #include &amp;lt;f32file.h&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; #include &amp;lt;euserhl.h&amp;gt; // Core &lt;del class=&quot;diffchange diffchange-inline&quot;&gt; &lt;/del&gt;Idioms&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; #include &amp;lt;euserhl.h&amp;gt; // Core Idioms&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; class CFinder : public CBase&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; class CFinder : public CBase&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; &amp;#160; &amp;#160; {&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; &amp;#160; &amp;#160; {&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; public:&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; public:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; &amp;#160; &amp;#160; // We have opted to use single-phase &lt;del class=&quot;diffchange diffchange-inline&quot;&gt; &lt;/del&gt;construction here, and some of &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; &amp;#160; &amp;#160; // We have opted to use single-phase construction here, and some of &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; &amp;#160; &amp;#160; // our constructor's initialization &lt;del class=&quot;diffchange diffchange-inline&quot;&gt; &lt;/del&gt;actions may leave. In order to &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; &amp;#160; &amp;#160; // our constructor's initialization actions may leave. In order to &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; &amp;#160; &amp;#160; // guarantee full cleanup in all cases,&amp;#160; we have to declare this fact.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; &amp;#160; &amp;#160; // guarantee full cleanup in all cases,&amp;#160; we have to declare this fact.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; &amp;#160; &amp;#160; CONSTRUCTORS_MAY_LEAVE&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; &amp;#160; &amp;#160; CONSTRUCTORS_MAY_LEAVE&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 317:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 339:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; &amp;#160; &amp;#160; };&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; &amp;#160; &amp;#160; };&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; CFinder* CFinder::NewL(const &lt;del class=&quot;diffchange diffchange-inline&quot;&gt; &lt;/del&gt;TDesC&amp;amp; aPattern)&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; CFinder* CFinder::NewL(const TDesC&amp;amp; aPattern)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; &amp;#160; &amp;#160; {&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; &amp;#160; &amp;#160; {&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; &amp;#160; &amp;#160; return new(ELeave) CFinder(aPattern);&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; &amp;#160; &amp;#160; return new(ELeave) CFinder(aPattern);&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 417:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 439:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;* Header file issue that will cause some applications to fail to build.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;* Header file issue that will cause some applications to fail to build.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;* EUserHL.sis 1.0 does not support backup/restore.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;* EUserHL.sis 1.0 does not support backup/restore.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;* EUserHL.sis 1.0 is missing the Machine ID, so the user will get a &amp;quot;Application is not &lt;del class=&quot;diffchange diffchange-inline&quot;&gt; &lt;/del&gt;compatible with the phone&amp;quot; warning during installation.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;* EUserHL.sis 1.0 is missing the Machine ID, so the user will get a &amp;quot;Application is not compatible with the phone&amp;quot; warning during installation.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;==Issues with Embedding EUserHL.sis in an Application==&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;==Issues with Embedding EUserHL.sis in an Application==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 423:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 445:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Applications that use the LString class will have a dependency on {{Icode|EUserHL.dll}}, which must be installed by embedding the {{Icode|EUserHL.sis}} package in the application's SIS package.&amp;#160; The package UID of EUserHL, required for embedding the sis file with your application, is: '''0x2001B440'''&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Applications that use the LString class will have a dependency on {{Icode|EUserHL.dll}}, which must be installed by embedding the {{Icode|EUserHL.sis}} package in the application's SIS package.&amp;#160; The package UID of EUserHL, required for embedding the sis file with your application, is: '''0x2001B440'''&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;The Nokia Developer article [[&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;KIS000457 - &lt;/del&gt;The dependency option is not supported with embedded SIS packages]] is also important for applications that need to support S60 3rd Edition and S60 3rd Edition FP1. Applications that need to support those devices may want to avoid depending on EUserHL.dll at all, to avoid this issue.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;The Nokia Developer article [[The dependency option is not supported with embedded SIS packages &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;(Known Issue)&lt;/ins&gt;]] is also important for applications that need to support S60 3rd Edition and S60 3rd Edition FP1. Applications that need to support those devices may want to avoid depending on EUserHL.dll at all, to avoid this issue.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Note that the issue described in [[&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;KIS000457 - &lt;/del&gt;The dependency option is not supported with embedded SIS packages&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;|KIS000457&lt;/del&gt;]] is not specific to EUserHL. It applies to any embedded package that is delivered by multiple applications and/or multiple vendors. TODO: There should be a wiki page here that discusses these embedded installation issues in more detail and explains how to deal with them effectively.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Note that the issue described in [[The dependency option is not supported with embedded SIS packages &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;(Known Issue)&lt;/ins&gt;]] is not specific to EUserHL. It applies to any embedded package that is delivered by multiple applications and/or multiple vendors. TODO: There should be a wiki page here that discusses these embedded installation issues in more detail and explains how to deal with them effectively.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;As noted above, EUserHL.sis 1.0 (shipped in EUserHL 1.0 and EUserHL 1.1) does not support backup/restore and causes warnings during installation. Applications should embed EUserHL.sis 1.2 or later to avoid these two issues.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;As noted above, EUserHL.sis 1.0 (shipped in EUserHL 1.0 and EUserHL 1.1) does not support backup/restore and causes warnings during installation. Applications should embed EUserHL.sis 1.2 or later to avoid these two issues.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 442:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 464:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160; {{SymbianFoundationLicence}}&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160; {{SymbianFoundationLicence}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;[[Category:Code Examples]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Hamishwillee</name></author>	</entry>

	<entry>
		<id>http://www.developer.nokia.com/Community/Wiki/index.php?title=Archived:EUserHL_Core_Idiom_Library&amp;diff=139642&amp;oldid=prev</id>
		<title>Debjit.roy: Debjit.roy -</title>
		<link rel="alternate" type="text/html" href="http://www.developer.nokia.com/Community/Wiki/index.php?title=Archived:EUserHL_Core_Idiom_Library&amp;diff=139642&amp;oldid=prev"/>
				<updated>2012-03-13T09:21:03Z</updated>
		
		<summary type="html">&lt;p&gt;Debjit.roy -&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
		&lt;tr valign='top'&gt;
		&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;← Older revision&lt;/td&gt;
		&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Revision as of 09:21, 13 March 2012&lt;/td&gt;
		&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[Category:Symbian C++]][[Category:SDK]][[Category:S60 3rd Edition]][[Category:Essential Idioms]]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[Category:Symbian C++]][[Category:SDK]][[Category:S60 3rd Edition]][[Category:Essential Idioms]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;{{Abstract|Core Idioms libraries deliver improved APIs to reduce the number of coding activities associated with a given task, and where possible make core Symbian idioms more accessible to non-Symbian programmers. The initial delivery provided simpler mechanisms for string handling and semi-automated memory management - see [[An Introduction to L Classes]] for further documentation about the {{Icode|LString}} class.}}&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;{{Abstract|Core Idioms libraries deliver improved APIs to reduce the number of coding activities associated with a given task, and where possible make core Symbian idioms more accessible to non-Symbian programmers. The initial delivery provided simpler mechanisms for string handling and semi-automated memory management - see [[An Introduction to L Classes]] for further documentation about the {{Icode|LString}} class.}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;{{Archived|timestamp=20120313092102|user=roy.debjit| }}&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Core Idioms consists of a the EUserHL.dll along with supporting header files. These Core Idiom classes are included in the Symbian^3 platform, including the Symbian^3 targets in the [[Qt SDK]].&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Core Idioms consists of a the EUserHL.dll along with supporting header files. These Core Idiom classes are included in the Symbian^3 platform, including the Symbian^3 targets in the [[Qt SDK]].&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;!-- diff cache key wiki:diff:version:1.11a:oldid:116206:newid:139642 --&gt;
&lt;/table&gt;</summary>
		<author><name>Debjit.roy</name></author>	</entry>

	<entry>
		<id>http://www.developer.nokia.com/Community/Wiki/index.php?title=Archived:EUserHL_Core_Idiom_Library&amp;diff=116206&amp;oldid=prev</id>
		<title>Hamishwillee: Hamishwillee - Fix broken external links to carbidehelp</title>
		<link rel="alternate" type="text/html" href="http://www.developer.nokia.com/Community/Wiki/index.php?title=Archived:EUserHL_Core_Idiom_Library&amp;diff=116206&amp;oldid=prev"/>
				<updated>2011-11-09T06:25:21Z</updated>
		
		<summary type="html">&lt;p&gt;Hamishwillee - Fix broken external links to carbidehelp&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
		&lt;tr valign='top'&gt;
		&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;← Older revision&lt;/td&gt;
		&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Revision as of 06:25, 9 November 2011&lt;/td&gt;
		&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[Category:Symbian C++]]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[Category:Symbian C++&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;]][[Category:SDK]][[Category:S60 3rd Edition]][[Category:Essential Idioms&lt;/ins&gt;]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;{{Abstract|Core Idioms libraries deliver improved APIs to reduce the number of coding activities associated with a given task, and where possible make core Symbian idioms more accessible to non-Symbian programmers. The initial delivery provided simpler mechanisms for string handling and semi-automated memory management - see [[An Introduction to L Classes]] for further documentation about the {{Icode|LString}} class.}}&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;{{Abstract|Core Idioms libraries deliver improved APIs to reduce the number of coding activities associated with a given task, and where possible make core Symbian idioms more accessible to non-Symbian programmers. The initial delivery provided simpler mechanisms for string handling and semi-automated memory management - see [[An Introduction to L Classes]] for further documentation about the {{Icode|LString}} class.}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 279:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 279:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Use {{Icode|LManagedX}} templates for member variables in classes which implement single-phase construction. See the example below.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Use {{Icode|LManagedX}} templates for member variables in classes which implement single-phase construction. See the example below.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Do not use {{Icode|LManagedX}} for any other purpose, without being aware of the differences between C++ exception-handling semantics and Symbian C++ leave semantics: &amp;lt;ref&amp;gt;For further details, see [[A Comparison of Leaves and Exceptions]] or [http://&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;carbidehelp&lt;/del&gt;.nokia.com/&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;help/index.jsp?&lt;/del&gt;topic&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;=/S60_5th_Edition_Cpp_Developers_Library&lt;/del&gt;/GUID-&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;35228542&lt;/del&gt;-&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;8C95&lt;/del&gt;-&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;4849&lt;/del&gt;-&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;A73F&lt;/del&gt;-&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;2B4F082F0C44&lt;/del&gt;/&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;sdk/doc_source/guide/Base&lt;/del&gt;-&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;subsystem&lt;/del&gt;-&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;guide/e32/MemoryManagement/CleanupSupportOverview.guide&lt;/del&gt;.html the Application Reference Guide].&amp;lt;/ref&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Do not use {{Icode|LManagedX}} for any other purpose, without being aware of the differences between C++ exception-handling semantics and Symbian C++ leave semantics: &amp;lt;ref&amp;gt;For further details, see [[A Comparison of Leaves and Exceptions]] or [http://&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;library.developer&lt;/ins&gt;.nokia.com/topic/GUID-&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;E35887BB&lt;/ins&gt;-&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;7E58&lt;/ins&gt;-&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;438C&lt;/ins&gt;-&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;AA27&lt;/ins&gt;-&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;97B2CDE7E069&lt;/ins&gt;/&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;GUID-E5A83EF3&lt;/ins&gt;-&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;948B&lt;/ins&gt;-&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;5729-A2CD-3644E803520B&lt;/ins&gt;.html the Application Reference Guide].&amp;lt;/ref&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;* {{Icode|LManagedX}} templates, and conventional C++ exception safety, rely on standard unwinding of the C++ program stack when an exception, including a Symbian C++ leave, occurs. This unwinding of the program stack causes destructors to be invoked in a sequence specified by the C++ language.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;* {{Icode|LManagedX}} templates, and conventional C++ exception safety, rely on standard unwinding of the C++ program stack when an exception, including a Symbian C++ leave, occurs. This unwinding of the program stack causes destructors to be invoked in a sequence specified by the C++ language.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 442:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 442:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160; {{SymbianFoundationLicence}}&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160; {{SymbianFoundationLicence}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt; [[Category:SDK]][[Category:S60 3rd Edition]][[Category:Essential Idioms]]&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Hamishwillee</name></author>	</entry>

	<entry>
		<id>http://www.developer.nokia.com/Community/Wiki/index.php?title=Archived:EUserHL_Core_Idiom_Library&amp;diff=101794&amp;oldid=prev</id>
		<title>Hamishwillee: Hamishwillee - Automated change of text from Forum Nokia to Nokia Developer. (Rebrand)</title>
		<link rel="alternate" type="text/html" href="http://www.developer.nokia.com/Community/Wiki/index.php?title=Archived:EUserHL_Core_Idiom_Library&amp;diff=101794&amp;oldid=prev"/>
				<updated>2011-06-22T11:21:16Z</updated>
		
		<summary type="html">&lt;p&gt;Hamishwillee - Automated change of text from Forum Nokia to Nokia Developer. (Rebrand)&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
		&lt;tr valign='top'&gt;
		&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;← Older revision&lt;/td&gt;
		&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Revision as of 11:21, 22 June 2011&lt;/td&gt;
		&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 423:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 423:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Applications that use the LString class will have a dependency on {{Icode|EUserHL.dll}}, which must be installed by embedding the {{Icode|EUserHL.sis}} package in the application's SIS package.&amp;#160; The package UID of EUserHL, required for embedding the sis file with your application, is: '''0x2001B440'''&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Applications that use the LString class will have a dependency on {{Icode|EUserHL.dll}}, which must be installed by embedding the {{Icode|EUserHL.sis}} package in the application's SIS package.&amp;#160; The package UID of EUserHL, required for embedding the sis file with your application, is: '''0x2001B440'''&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;The &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Forum &lt;/del&gt;Nokia article [[KIS000457 - The dependency option is not supported with embedded SIS packages]] is also important for applications that need to support S60 3rd Edition and S60 3rd Edition FP1. Applications that need to support those devices may want to avoid depending on EUserHL.dll at all, to avoid this issue.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;The Nokia &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Developer &lt;/ins&gt;article [[KIS000457 - The dependency option is not supported with embedded SIS packages]] is also important for applications that need to support S60 3rd Edition and S60 3rd Edition FP1. Applications that need to support those devices may want to avoid depending on EUserHL.dll at all, to avoid this issue.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Note that the issue described in [[KIS000457 - The dependency option is not supported with embedded SIS packages|KIS000457]] is not specific to EUserHL. It applies to any embedded package that is delivered by multiple applications and/or multiple vendors. TODO: There should be a wiki page here that discusses these embedded installation issues in more detail and explains how to deal with them effectively.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Note that the issue described in [[KIS000457 - The dependency option is not supported with embedded SIS packages|KIS000457]] is not specific to EUserHL. It applies to any embedded package that is delivered by multiple applications and/or multiple vendors. TODO: There should be a wiki page here that discusses these embedded installation issues in more detail and explains how to deal with them effectively.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Hamishwillee</name></author>	</entry>

	<entry>
		<id>http://www.developer.nokia.com/Community/Wiki/index.php?title=Archived:EUserHL_Core_Idiom_Library&amp;diff=93222&amp;oldid=prev</id>
		<title>Hugovk: Merged in from http://wiki.forum.nokia.com/index.php/EUserHL</title>
		<link rel="alternate" type="text/html" href="http://www.developer.nokia.com/Community/Wiki/index.php?title=Archived:EUserHL_Core_Idiom_Library&amp;diff=93222&amp;oldid=prev"/>
				<updated>2011-05-15T10:55:21Z</updated>
		
		<summary type="html">&lt;p&gt;Merged in from http://wiki.forum.nokia.com/index.php/EUserHL&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
		&lt;tr valign='top'&gt;
		&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;← Older revision&lt;/td&gt;
		&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Revision as of 10:55, 15 May 2011&lt;/td&gt;
		&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 186:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 186:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;This feature exploits the fact that expressions such as L&amp;quot;Three&amp;quot; produce a {{Icode|wchar_t[]}}, and that in all ABIs of interest to Symbian platform, {{Icode|wchar_t}} is a 16-bit wide character, compatible with {{Icode|LString16}}.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;This feature exploits the fact that expressions such as L&amp;quot;Three&amp;quot; produce a {{Icode|wchar_t[]}}, and that in all ABIs of interest to Symbian platform, {{Icode|wchar_t}} is a 16-bit wide character, compatible with {{Icode|LString16}}.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;== The L prefix ==&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;The L prefix denotes that construction, copying, passing and returning by value, assignment and manipulation via operators should all be considered potentially leaving operations unless otherwise explicitly documented. So, this means that all the code that manipulates L instances '''MUST''' be leave-safe. To be able to create leave-safe code the programmer will need to set up the cleanup stack the calling thread and use the L class within the scope of a TRAP statement.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;The main characteristics of L classes are:&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;* Constructors, operators and implicit operations may leave &lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;* They are self-managing and do not require auxiliary memory management logic&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;Also, they are as simple to use as T classes. So they can be used as built-in types. The main difference is that they own resources that are managed automatically, so the programmer doesn’t need to care about then.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;===Using Core Idioms===&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;===Using Core Idioms===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 412:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 425:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;The Forum Nokia article [[KIS000457 - The dependency option is not supported with embedded SIS packages]] is also important for applications that need to support S60 3rd Edition and S60 3rd Edition FP1. Applications that need to support those devices may want to avoid depending on EUserHL.dll at all, to avoid this issue.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;The Forum Nokia article [[KIS000457 - The dependency option is not supported with embedded SIS packages]] is also important for applications that need to support S60 3rd Edition and S60 3rd Edition FP1. Applications that need to support those devices may want to avoid depending on EUserHL.dll at all, to avoid this issue.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Note that the issue described in [[KIS000457 - The dependency option is not supported with embedded SIS packages|KIS000457]] is not specific to EUserHL. It applies to any embedded package that is delivered by multiple applications and/or multiple vendors. TODO: There should be a wiki page &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;on symbian.org &lt;/del&gt;that discusses these embedded installation issues in more detail and explains how to deal with them effectively.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Note that the issue described in [[KIS000457 - The dependency option is not supported with embedded SIS packages|KIS000457]] is not specific to EUserHL. It applies to any embedded package that is delivered by multiple applications and/or multiple vendors. TODO: There should be a wiki page &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;here &lt;/ins&gt;that discusses these embedded installation issues in more detail and explains how to deal with them effectively.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;As noted above, EUserHL.sis 1.0 (shipped in EUserHL 1.0 and EUserHL 1.1) does not support backup/restore and causes warnings during installation. Applications should embed EUserHL.sis 1.2 or later to avoid these two issues.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;As noted above, EUserHL.sis 1.0 (shipped in EUserHL 1.0 and EUserHL 1.1) does not support backup/restore and causes warnings during installation. Applications should embed EUserHL.sis 1.2 or later to avoid these two issues.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;!-- diff cache key wiki:diff:version:1.11a:oldid:92817:newid:93222 --&gt;
&lt;/table&gt;</summary>
		<author><name>Hugovk</name></author>	</entry>

	<entry>
		<id>http://www.developer.nokia.com/Community/Wiki/index.php?title=Archived:EUserHL_Core_Idiom_Library&amp;diff=92817&amp;oldid=prev</id>
		<title>Hamishwillee: Add to essential idioms category</title>
		<link rel="alternate" type="text/html" href="http://www.developer.nokia.com/Community/Wiki/index.php?title=Archived:EUserHL_Core_Idiom_Library&amp;diff=92817&amp;oldid=prev"/>
				<updated>2011-05-10T04:20:25Z</updated>
		
		<summary type="html">&lt;p&gt;Add to essential idioms category&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
		&lt;tr valign='top'&gt;
		&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;← Older revision&lt;/td&gt;
		&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Revision as of 04:20, 10 May 2011&lt;/td&gt;
		&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 5:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 5:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;EUserHL can also be used in earlier phones/SDKs running Symbian OS v9.x (including Symbian^1 and Symbian^2). The [[File:EUserHL.zip]] package delivers the header, and an installation file that is compatible with all phones running - see [[#Issues with Embedding EUserHL.sis in an Application]] for associated information.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;EUserHL can also be used in earlier phones/SDKs running Symbian OS v9.x (including Symbian^1 and Symbian^2). The [[File:EUserHL.zip]] package delivers the header, and an installation file that is compatible with all phones running - see [[#Issues with Embedding EUserHL.sis in an Application]] for associated information.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;===Overview===&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;===Overview===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 430:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 429:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160; {{SymbianFoundationLicence}}&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160; {{SymbianFoundationLicence}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[Category:SDK]] [[Category:S60 3rd Edition]]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt; &lt;/ins&gt;[[Category:SDK]][[Category:S60 3rd Edition&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;]][[Category:Essential Idioms&lt;/ins&gt;]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;!-- diff cache key wiki:diff:version:1.11a:oldid:92816:newid:92817 --&gt;
&lt;/table&gt;</summary>
		<author><name>Hamishwillee</name></author>	</entry>

	<entry>
		<id>http://www.developer.nokia.com/Community/Wiki/index.php?title=Archived:EUserHL_Core_Idiom_Library&amp;diff=92816&amp;oldid=prev</id>
		<title>Hamishwillee: Remove broken links and foundation migration warning</title>
		<link rel="alternate" type="text/html" href="http://www.developer.nokia.com/Community/Wiki/index.php?title=Archived:EUserHL_Core_Idiom_Library&amp;diff=92816&amp;oldid=prev"/>
				<updated>2011-05-10T04:18:10Z</updated>
		
		<summary type="html">&lt;p&gt;Remove broken links and foundation migration warning&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
		&lt;tr valign='top'&gt;
		&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;← Older revision&lt;/td&gt;
		&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Revision as of 04:18, 10 May 2011&lt;/td&gt;
		&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;{{&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;SymbianFoundationMigratedContentWarning}} &lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;[[Category:Symbian C++]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Core Idioms libraries deliver improved APIs to reduce the number of coding activities associated with a given task, and where possible make core Symbian idioms more accessible to non-Symbian programmers. The initial delivery provided simpler mechanisms for string handling and semi-automated memory management - see [[An Introduction to L Classes]] for further documentation about the {{Icode|LString}} class.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;{{&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Abstract|&lt;/ins&gt;Core Idioms libraries deliver improved APIs to reduce the number of coding activities associated with a given task, and where possible make core Symbian idioms more accessible to non-Symbian programmers. The initial delivery provided simpler mechanisms for string handling and semi-automated memory management - see [[An Introduction to L Classes]] for further documentation about the {{Icode|LString}} class.&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;}}&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Core Idioms consists of a the EUserHL.dll along with supporting header files. The [[File:EUserHL.zip]] package delivers the header, and an installation file that is compatible with all phones running &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Symbian OS v9.x (including Symbian^1 and Symbian^2). See &lt;/del&gt;[[#Issues with Embedding EUserHL.sis in an Application]] for associated information.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Core Idioms consists of a the EUserHL.dll along with supporting header files&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;. These Core Idiom classes are included in the Symbian^3 platform, including the Symbian^3 targets in the [[Qt SDK]].&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;EUserHL can also be used in earlier phones/SDKs running Symbian OS v9.x (including Symbian^1 and Symbian^2)&lt;/ins&gt;. The [[File:EUserHL.zip]] package delivers the header, and an installation file that is compatible with all phones running &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;- see &lt;/ins&gt;[[#Issues with Embedding EUserHL.sis in an Application]] for associated information.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;These Core Idiom classes are scheduled to be included in the Symbian^3 platform ([[Roadmap for OS Base Services|see Roadmap]]).&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;===Overview===&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;===Overview===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 266:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 267:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Use {{Icode|LManagedX}} templates for member variables in classes which implement single-phase construction. See the example below.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Use {{Icode|LManagedX}} templates for member variables in classes which implement single-phase construction. See the example below.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Do not use {{Icode|LManagedX}} for any other purpose, without being aware of the differences between C++ exception-handling semantics and Symbian C++ leave semantics: &amp;lt;ref&amp;gt;For further details, see &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;the &lt;/del&gt;[&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;https://developer.symbian.com/main/downloads/papers/Leaves%20and%20Exceptions.pdf &lt;/del&gt;Leaves &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;&amp;amp; &lt;/del&gt;Exceptions] or [http://carbidehelp.nokia.com/help/index.jsp?topic=/S60_5th_Edition_Cpp_Developers_Library/GUID-35228542-8C95-4849-A73F-2B4F082F0C44/sdk/doc_source/guide/Base-subsystem-guide/e32/MemoryManagement/CleanupSupportOverview.guide.html the Application Reference Guide].&amp;lt;/ref&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Do not use {{Icode|LManagedX}} for any other purpose, without being aware of the differences between C++ exception-handling semantics and Symbian C++ leave semantics: &amp;lt;ref&amp;gt;For further details, see [&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;[A Comparison of &lt;/ins&gt;Leaves &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;and &lt;/ins&gt;Exceptions&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;]&lt;/ins&gt;] or [http://carbidehelp.nokia.com/help/index.jsp?topic=/S60_5th_Edition_Cpp_Developers_Library/GUID-35228542-8C95-4849-A73F-2B4F082F0C44/sdk/doc_source/guide/Base-subsystem-guide/e32/MemoryManagement/CleanupSupportOverview.guide.html the Application Reference Guide].&amp;lt;/ref&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;* {{Icode|LManagedX}} templates, and conventional C++ exception safety, rely on standard unwinding of the C++ program stack when an exception, including a Symbian C++ leave, occurs. This unwinding of the program stack causes destructors to be invoked in a sequence specified by the C++ language.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;* {{Icode|LManagedX}} templates, and conventional C++ exception safety, rely on standard unwinding of the C++ program stack when an exception, including a Symbian C++ leave, occurs. This unwinding of the program stack causes destructors to be invoked in a sequence specified by the C++ language.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 410:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 411:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Applications that use the LString class will have a dependency on {{Icode|EUserHL.dll}}, which must be installed by embedding the {{Icode|EUserHL.sis}} package in the application's SIS package.&amp;#160; The package UID of EUserHL, required for embedding the sis file with your application, is: '''0x2001B440'''&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Applications that use the LString class will have a dependency on {{Icode|EUserHL.dll}}, which must be installed by embedding the {{Icode|EUserHL.sis}} package in the application's SIS package.&amp;#160; The package UID of EUserHL, required for embedding the sis file with your application, is: '''0x2001B440'''&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;The Forum Nokia article [&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;http://wiki.forum.nokia.com/index.php/KIS000457_-_The_dependency_option_is_not_supported_with_embedded_SIS_packages &lt;/del&gt;KIS000457 - The dependency option is not supported with embedded SIS packages] is also important for applications that need to support S60 3rd Edition and S60 3rd Edition FP1. Applications that need to support those devices may want to avoid depending on EUserHL.dll at all, to avoid this issue.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;The Forum Nokia article [&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;[&lt;/ins&gt;KIS000457 - The dependency option is not supported with embedded SIS packages&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;]&lt;/ins&gt;] is also important for applications that need to support S60 3rd Edition and S60 3rd Edition FP1. Applications that need to support those devices may want to avoid depending on EUserHL.dll at all, to avoid this issue.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Note that the issue described in [&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;http://wiki.forum.nokia.com/index.php/KIS000457_&lt;/del&gt;-&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;_The_dependency_option_is_not_supported_with_embedded_SIS_packages &lt;/del&gt;KIS000457] is not specific to EUserHL. It applies to any embedded package that is delivered by multiple applications and/or multiple vendors. TODO: There should be a wiki page on symbian.org that discusses these embedded installation issues in more detail and explains how to deal with them effectively.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Note that the issue described in [&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;[KIS000457 &lt;/ins&gt;- &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;The dependency option is not supported with embedded SIS packages|&lt;/ins&gt;KIS000457&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;]&lt;/ins&gt;] is not specific to EUserHL. It applies to any embedded package that is delivered by multiple applications and/or multiple vendors. TODO: There should be a wiki page on symbian.org that discusses these embedded installation issues in more detail and explains how to deal with them effectively.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;As noted above, EUserHL.sis 1.0 (shipped in EUserHL 1.0 and EUserHL 1.1) does not support backup/restore and causes warnings during installation. Applications should embed EUserHL.sis 1.2 or later to avoid these two issues.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;As noted above, EUserHL.sis 1.0 (shipped in EUserHL 1.0 and EUserHL 1.1) does not support backup/restore and causes warnings during installation. Applications should embed EUserHL.sis 1.2 or later to avoid these two issues.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 419:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 420:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;The EUserHL Core Idioms library allows:&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;The EUserHL Core Idioms library allows:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;* Experienced Symbian C++ developers to write robust and compact string-handling code with semi-automated exception handling.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;* Experienced Symbian C++ developers to write robust and compact string-handling code with semi-automated exception handling.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;* New Symbian C++ developers to use Symbian OS exceptions, the cleanup stack and descriptors more easily, with fewer programming errors and more rapid application development.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;* New Symbian C++ developers to use Symbian OS exceptions, the cleanup stack and descriptors more easily, with fewer programming errors and more rapid application development.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 429:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 429:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160; {{SymbianFoundationLicence}}[[Category: &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Symbian C++&lt;/del&gt;]]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160; {{SymbianFoundationLicence}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[Category:&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;SDK]] [[Category:S60 3rd Edition&lt;/ins&gt;]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Hamishwillee</name></author>	</entry>

	<entry>
		<id>http://www.developer.nokia.com/Community/Wiki/index.php?title=Archived:EUserHL_Core_Idiom_Library&amp;diff=92812&amp;oldid=prev</id>
		<title>Hamishwillee: Migrated from SF wiki</title>
		<link rel="alternate" type="text/html" href="http://www.developer.nokia.com/Community/Wiki/index.php?title=Archived:EUserHL_Core_Idiom_Library&amp;diff=92812&amp;oldid=prev"/>
				<updated>2011-05-10T03:57:08Z</updated>
		
		<summary type="html">&lt;p&gt;Migrated from SF wiki&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{SymbianFoundationMigratedContentWarning}} &lt;br /&gt;
Core Idioms libraries deliver improved APIs to reduce the number of coding activities associated with a given task, and where possible make core Symbian idioms more accessible to non-Symbian programmers. The initial delivery provided simpler mechanisms for string handling and semi-automated memory management - see [[An Introduction to L Classes]] for further documentation about the {{Icode|LString}} class.&lt;br /&gt;
&lt;br /&gt;
Core Idioms consists of a the EUserHL.dll along with supporting header files. The [[File:EUserHL.zip]] package delivers the header, and an installation file that is compatible with all phones running Symbian OS v9.x (including Symbian^1 and Symbian^2). See [[#Issues with Embedding EUserHL.sis in an Application]] for associated information.&lt;br /&gt;
&lt;br /&gt;
These Core Idiom classes are scheduled to be included in the Symbian^3 platform ([[Roadmap for OS Base Services|see Roadmap]]).&lt;br /&gt;
&lt;br /&gt;
===Overview===&lt;br /&gt;
&lt;br /&gt;
The new {{Icode|EUserHL}} Core Idioms library delivers:&lt;br /&gt;
&lt;br /&gt;
* {{Icode|LString}}, a string class that handles its own buffer management and cleanup and whose parameters take natural C++ string literals&lt;br /&gt;
* {{Icode|LCleanedupX}} and {{Icode|LManagedX}}, a set of cleanup management helper templates&lt;br /&gt;
* {{Icode|CONSTRUCTORS_MAY_LEAVE}}, a helper macro that enables single-phase construction&lt;br /&gt;
* {{Icode|OR_LEAVE}}, a helper macro to cleanly convert error-returning code into leaving code.&lt;br /&gt;
&lt;br /&gt;
The necessary header files for exploiting the new code idioms library are supplied in a header {{Icode|EUserHL.h}}, supported by a DLL, {{Icode|EUserHL.DLL}}, and an {{Icode|EUserHL.SIS}} installable package, available for all Symbian OS v9-based devices.&lt;br /&gt;
&lt;br /&gt;
This makes Symbian platform easier for programmers by:&lt;br /&gt;
* Making it much easier and cleaner to write correct cleanup-safe code, with fewer lines of code than before.&lt;br /&gt;
* Making an elegant, leave-safe implementation of the widely-used C++ RAII &amp;lt;ref&amp;gt;[http://en.wikipedia.org/wiki/RAII Resource Acquisition Is Initialization]: a design pattern popular in many object oriented languages, which combines the acquisition and release of resources with initialization and uninitialization of objects.&amp;lt;/ref&amp;gt; idiom available for Symbian C++ programming.&lt;br /&gt;
* Making it much easier and cleaner to write code involving arbitrary-length strings without choosing magic numbers for their length, and variable-length strings without performing manual memory management.&lt;br /&gt;
&lt;br /&gt;
Using the Core Idioms library has a pervasive impact on line-of-code count and on simplicity and cleanness. That’s great when you write the code, and awesome when you come to maintain it.&lt;br /&gt;
&lt;br /&gt;
The Core Idioms library delivers these improvements by exploiting the mapping of Symbian Platform {{Icode|User::Leave()}} onto C++ throw, introduced in Symbian Platform v9 and by relieving the application programmer of much explicit responsibility for memory management for strings and cleanup.&lt;br /&gt;
&lt;br /&gt;
Idioms define the style by which programmers use an OS, and therefore have a pervasive ease-of-use impact in normal Symbian programming by programmers working at all levels of the software stack.&lt;br /&gt;
&lt;br /&gt;
Use of this library is recommended for all new code. Only if you know you can do better by managing your own memory with traditional descriptor APIs, cleanup stack idioms, and two-phase construction, should you continue to use the traditional Symbian C++ features instead of Core Idioms.&lt;br /&gt;
Before and after&lt;br /&gt;
&lt;br /&gt;
Here’s how the Core Idioms library makes a difference in real-life situations:&lt;br /&gt;
&lt;br /&gt;
{| Border=&amp;quot;1&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background:#FDC82F&amp;quot; &lt;br /&gt;
|&amp;lt;b&amp;gt;Without Core Idioms Library &amp;lt;/b&amp;gt; || &amp;lt;b&amp;gt;With Core Idioms Library&amp;lt;/b&amp;gt;&lt;br /&gt;
|- style=&amp;quot;background:white&amp;quot;&lt;br /&gt;
| &amp;lt;code cpp&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 TBuf&amp;lt;KMaxQuery&amp;gt; query; // fixed worst-&lt;br /&gt;
                        // case max&lt;br /&gt;
 query.Format(KQueryFormat, param);&lt;br /&gt;
 ExecuteQueryL(query);&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
|&amp;lt;code cpp&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 LString query;    // can grow its heap &lt;br /&gt;
                   // buffer on demand&lt;br /&gt;
 query.FormatL(KQueryFormat, param);&lt;br /&gt;
 ExecuteQueryL(query);&lt;br /&gt;
 } // query buffer released on &lt;br /&gt;
   // normal scope exit or leave&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
|-style=&amp;quot;background:white&amp;quot;&lt;br /&gt;
|  &amp;lt;code cpp&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 HBufC* queryc = &lt;br /&gt;
     HBufC::NewLC(KTooBigForStackMaxQuery);&lt;br /&gt;
 TPtr query(queryc-&amp;gt;Des());&lt;br /&gt;
 BuildQueryL(query);&lt;br /&gt;
 ExecuteQueryL(query);&lt;br /&gt;
 CleanupStack::PopAndDestroy();&lt;br /&gt;
 } &amp;lt;/code&amp;gt;&lt;br /&gt;
|&amp;lt;code cpp&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
 LString query;&lt;br /&gt;
 BuildQueryL(query);&lt;br /&gt;
 ExecuteQueryL(query);&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
|-style=&amp;quot;background:white&amp;quot;&lt;br /&gt;
|&amp;lt;code cpp&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 RBuf query;&lt;br /&gt;
 query.CleanupClosePushL();&lt;br /&gt;
 query.CreateL(TooBigForStackMaxQuery);&lt;br /&gt;
 BuildQueryL(query);&lt;br /&gt;
 ExecuteQueryL(query);&lt;br /&gt;
 CleanupStack::PopAndDestroy();&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
|&amp;lt;code cpp&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 LString query;&lt;br /&gt;
 BuildQueryL(query);&lt;br /&gt;
 ExecuteQueryL(query);&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
|-style=&amp;quot;background:white&amp;quot;&lt;br /&gt;
|&amp;lt;code cpp&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
 CQuery* query = CQuery::NewL();&lt;br /&gt;
 CleanupStack::PushL(query);&lt;br /&gt;
 query-&amp;gt;BuildQueryL();&lt;br /&gt;
 query-&amp;gt;ExecuteQueryL();&lt;br /&gt;
 CleanupStack::PopAndDestroy();&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
|&amp;lt;code cpp&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 LCleanedupPtr&amp;lt;CQuery&amp;gt; query(CQuery::NewL());&lt;br /&gt;
 query-&amp;gt;BuildQueryL();&lt;br /&gt;
 query-&amp;gt;ExecuteQueryL();&lt;br /&gt;
 } // query deleted on normal scope &lt;br /&gt;
   // exit or leave&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
|-style=&amp;quot;background:white&amp;quot;&lt;br /&gt;
|&amp;lt;code cpp&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 CQuery* query = CQuery::NewL();&lt;br /&gt;
 CleanupStack::PushL(query);&lt;br /&gt;
 query.BuildQueryL();&lt;br /&gt;
 CleanupStack::Pop();&lt;br /&gt;
 return query;&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
|&amp;lt;code cpp&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 LCleanedupPtr&amp;lt;CQuery&amp;gt; query(CQuery::NewL());&lt;br /&gt;
 query-&amp;gt;BuildQueryL();&lt;br /&gt;
 return query.Unmanage(); &lt;br /&gt;
    // query was protected until Unmanage()&lt;br /&gt;
 }  // was called&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
|-style=&amp;quot;background:white&amp;quot;&lt;br /&gt;
|&amp;lt;code cpp&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
 RQuery query;&lt;br /&gt;
 CleanupClosePushL(query);&lt;br /&gt;
 query.BuildQueryL();&lt;br /&gt;
 query.ExecuteQueryL();&lt;br /&gt;
 CleanupStack::PopAndDestroy();&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
|&amp;lt;code cpp&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 LCleanedupHandle&amp;lt;RQuery&amp;gt;;&lt;br /&gt;
 query-&amp;gt;BuildQueryL();&lt;br /&gt;
 query-&amp;gt;ExecuteQueryL();&lt;br /&gt;
 } // query is closed on normal scope &lt;br /&gt;
   // exit or leave&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
As this shows, the code with Core Idioms is usually one or two lines shorter than pre-Core Idioms code, and is never longer.&lt;br /&gt;
&lt;br /&gt;
Cleanup stack operations don’t appear explicitly in the Core Idioms code, even though the cleanup stack is in fact being used, and all of the code shown here – both with and without Core Idioms – is totally leave-safe.&lt;br /&gt;
&lt;br /&gt;
The code without Core Idioms often uses more memory than is really necessary, either on the stack or the heap, and the only way to avoid this is to code awkward extra lines of code. The code with Core Idioms uses only as much space as necessary and is brief.&lt;br /&gt;
&lt;br /&gt;
If you want to use literals with {{Icode|LString}}, you can just use wide literals from pure C++ (rather than specifying string literals with {{Icode|_LIT}}). This featured was introduced in the Core Idioms v1.2 zip file attached.&lt;br /&gt;
&lt;br /&gt;
{| Border=&amp;quot;1&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background:#FDC82F&amp;quot; &lt;br /&gt;
|&amp;lt;b&amp;gt;Core Idioms Prior to v1.2 &amp;lt;/b&amp;gt; || &amp;lt;b&amp;gt;Core Idioms v1.2&amp;lt;/b&amp;gt;&lt;br /&gt;
|- style=&amp;quot;background:white&amp;quot;&lt;br /&gt;
| &amp;lt;code cpp&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 // bunch of literal descriptors&lt;br /&gt;
 _LIT(KStringOne, &amp;quot;One &amp;quot;);&lt;br /&gt;
 _LIT(KStringTwo, &amp;quot;Two &amp;quot;);&lt;br /&gt;
 _LIT(KStringThree, &amp;quot;Three&amp;quot;);&lt;br /&gt;
 // somewhat later, use those literals&lt;br /&gt;
 LString s;&lt;br /&gt;
 s = KStringOne;&lt;br /&gt;
 s.AppendL(KStringTwo);&lt;br /&gt;
 s += KStringThree;&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
|&amp;lt;code cpp&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 // just use wide literals from pure C++&lt;br /&gt;
 LString s;&lt;br /&gt;
 s = L&amp;quot;One &amp;quot;;&lt;br /&gt;
 s.AppendL(L&amp;quot;Two &amp;quot;);&lt;br /&gt;
 s += L&amp;quot;Three&amp;quot;;&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This feature exploits the fact that expressions such as L&amp;quot;Three&amp;quot; produce a {{Icode|wchar_t[]}}, and that in all ABIs of interest to Symbian platform, {{Icode|wchar_t}} is a 16-bit wide character, compatible with {{Icode|LString16}}.&lt;br /&gt;
&lt;br /&gt;
===Using Core Idioms===&lt;br /&gt;
&lt;br /&gt;
The {{Icode|EUserHL}} Core Idioms library provides new APIs for simpler, exception-safe programming, a new string class and single-phase object construction.&lt;br /&gt;
&lt;br /&gt;
====Self-managing string class====&lt;br /&gt;
&lt;br /&gt;
The {{Icode|LString}} class provides a self managing, resizable descriptor that bridges the gap between the behavior of standard C++ strings, such as std::string, and Symbian descriptors.  {{Icode|LString}} is recommended instead of traditional {{Icode|TBuf}}, {{Icode|HBufC}} and {{Icode|RBuf}} descriptors.  {{Icode|LStrings}} can be passed into Symbian platform APIs which take {{Icode|TDes&amp;amp;}} and {{Icode|const TDesC&amp;amp;}} parameters.&lt;br /&gt;
&lt;br /&gt;
The Symbian C++ descriptors have been a defining attribute of Symbian platform. The descriptor family was designed with reliability and space efficiency as primary goals. This was achieved by spreading common string behavior across a number of descriptor classes. Unfortunately, this decision has a usability cost due to the number of classes that must be directly understood by developers to achieve common objectives with strings. {{Icode|LString}} is intended to provide a self-managing alternative to several of the standard descriptor types.&lt;br /&gt;
&lt;br /&gt;
An {{Icode|LString}}may be used much like a simple T class. {{Icode|LString}}-typed variables will automatically clean up after themselves when they go out of scope, and {{Icode|LString}}-typed fields will similarly automatically release all owned resources when their containing object is destroyed.&lt;br /&gt;
&lt;br /&gt;
In addition to the value-type semantics described above, {{Icode|LString}} also supports automatic in-place resizing. All standard descriptor methods are available but for any non-leaving descriptor method that may panic due to buffer overflow, {{Icode|LString}} adds a corresponding leaving method that automatically expands the underlying buffer on-demand. For example, {{Icode|Append()}} will panic if the new data overflows available buffer space, while {{Icode|ppendL()}} will attempt to {{icode|realloc()}} the buffer as necessary. The new leaving variants may therefore leave with {{Icode|KErrNoMemory}}, may invalidate any existing raw pointers into the data buffer (e.g., those previously returned by {{Icode|Ptr())}}, and may change the value returned by {{Icode|MaxLength()}}. To protect developers from inadvertently calling the non-leaving methods on {{Icode|LString}}, these have been privatized.&lt;br /&gt;
&lt;br /&gt;
{{Icode|LString}} is compatible with existing APIs that accept const {{Icode|TDesC&amp;amp;}} and {{Icode|TDes&amp;amp;}} arguments. Both 8 and 16 bit versions are provided.&lt;br /&gt;
&lt;br /&gt;
Finally, to allow {{Icode|LString}} to be allocated on the heap and deleted, the class defines implementations for various overloads of the operator {{Icode|new()}} and operator {{Icode|delete()}} methods.&lt;br /&gt;
&lt;br /&gt;
For more information about the new string class, see [[An Introduction to L Classes]].&lt;br /&gt;
&lt;br /&gt;
====Class templates to automate cleanup====&lt;br /&gt;
&lt;br /&gt;
The {{Icode|LCleanedupX}} and {{Icode|LManagedX}} class templates from Core Idioms are Symbian-specific analogues to C++ smart pointers:&lt;br /&gt;
* The {{Icode|LCleanedupX}} templates allow leave-safe objects to be declared, which are placed automatically on the Symbian C++ cleanup stack. These objects are then cleaned up automatically, whether processing terminates normally or leaves.&lt;br /&gt;
* The {{Icode|LManagedX}} templates are intended for exception-safe objects to be declared as members of classes. These objects are then cleaned up automatically, whether processing terminates normally or leaves. A key benefit is that this permits single-phase construction of CBase-derived objects.&lt;br /&gt;
&lt;br /&gt;
The {{Icode|LCleanedupX}} and {{Icode|LManagedX}} class templates are:&lt;br /&gt;
&lt;br /&gt;
{| Border=&amp;quot;1&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background:#FDC82F&amp;quot; &lt;br /&gt;
|&amp;lt;b&amp;gt;LCleanupX template&amp;lt;/b&amp;gt; || &amp;lt;b&amp;gt;LManagedX template&amp;lt;/b&amp;gt; || &amp;lt;b&amp;gt;What it manages&amp;lt;/b&amp;gt; || &amp;lt;b&amp;gt;how it cleas up by default&amp;lt;/b&amp;gt;&lt;br /&gt;
|- style=&amp;quot;background:white&amp;quot;&lt;br /&gt;
| {{Icode|LCleanedupPtr}}|| {{Icode|LManagedPtr}}||a pointer||deletes the pointer&lt;br /&gt;
|-style=&amp;quot;background:white&amp;quot;&lt;br /&gt;
| {{Icode|LCleandupRef}} || {{Icode|LManagedRef}}|| a handle, by reference|| calls {{Icode|Close()}} on the handle&lt;br /&gt;
|-style=&amp;quot;background:white&amp;quot;&lt;br /&gt;
| {{Icode|LCleanedupArray}} || {{Icode|LManagedArray}}|| a C array|| deletes the array&lt;br /&gt;
|-style=&amp;quot;background:white&amp;quot;&lt;br /&gt;
| {{Icode|LCleandupGuard}} || {{Icode|LManagedGuard}}|| anthing protected with a {{Icode|TCleanupItem}} || calls {{Icode|TCleanupItem}}'s cleanup operation&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The cleanup strategy can be changed to one of the predefined cleanup strategies provided, or to a user-defined custom cleanup strategy. For more information about the cleanup management helper templates, see [[An Introduction to L Classes]].&lt;br /&gt;
&lt;br /&gt;
===LCleanedupX templates===&lt;br /&gt;
&lt;br /&gt;
Use {{Icode|LCleanedUpX}} templates instead of the classic {{Icode|CleanupStack::PushL()}} and {{Icode|CleanupStack::PopAndDestroy()}} approach to write leave-safe code more succinctly and elegantly than was previously possible, as shown in the before-and-after examples above.&lt;br /&gt;
Using:&lt;br /&gt;
&amp;lt;code cpp&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
LCleanedupPtr&amp;lt;CQuery&amp;gt; query(CQuery::NewL()); &lt;br /&gt;
// ...&lt;br /&gt;
if (condition)&lt;br /&gt;
    return;  &lt;br /&gt;
// ...&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
has a similar behaviour to:&lt;br /&gt;
&amp;lt;code cpp&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
CQuery* query =  CQuery::NewL();&lt;br /&gt;
CleanupStack::PushL(query);&lt;br /&gt;
//...&lt;br /&gt;
if (condition)&lt;br /&gt;
    {&lt;br /&gt;
    // Pop and destroy the object (also deletes the pointer)&lt;br /&gt;
    CleanupStack::PopAndDestroy(query);&lt;br /&gt;
    return;  &lt;br /&gt;
    }	&lt;br /&gt;
// ...&lt;br /&gt;
// Pop and destroy the object (also deletes the pointer)&lt;br /&gt;
CleanupStack::PopAndDestroy(query);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====LManagedX classes====&lt;br /&gt;
&lt;br /&gt;
Use {{Icode|LManagedX}} templates for member variables in classes which implement single-phase construction. See the example below.&lt;br /&gt;
&lt;br /&gt;
Do not use {{Icode|LManagedX}} for any other purpose, without being aware of the differences between C++ exception-handling semantics and Symbian C++ leave semantics: &amp;lt;ref&amp;gt;For further details, see the [https://developer.symbian.com/main/downloads/papers/Leaves%20and%20Exceptions.pdf Leaves &amp;amp; Exceptions] or [http://carbidehelp.nokia.com/help/index.jsp?topic=/S60_5th_Edition_Cpp_Developers_Library/GUID-35228542-8C95-4849-A73F-2B4F082F0C44/sdk/doc_source/guide/Base-subsystem-guide/e32/MemoryManagement/CleanupSupportOverview.guide.html the Application Reference Guide].&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* {{Icode|LManagedX}} templates, and conventional C++ exception safety, rely on standard unwinding of the C++ program stack when an exception, including a Symbian C++ leave, occurs. This unwinding of the program stack causes destructors to be invoked in a sequence specified by the C++ language.&lt;br /&gt;
* {{Icode|LCleanedupX}} templates, and classic Symbian C++ cleanup stack operations, rely on the unwinding of the Symbian C++ cleanup stack when a {{Icode|User::Leave()}} occurs. Although {{Icode|User::Leave()}} generates a C++ exception, the cleanup stack is not unwound when a C++ exception is thrown any other way. Also, {{Icode|User::Leave()}} processing unwinds the Symbian C++ cleanup stack first, and then throws the C++ exception which unwinds the C++ program stack. &lt;br /&gt;
&lt;br /&gt;
These differences can create counter-intuitive effects if {{Icode|LManagedX}} objects are used other than as recommended.&lt;br /&gt;
&lt;br /&gt;
====Single-phase construction for CBase-derived classes====&lt;br /&gt;
&lt;br /&gt;
The Core Idioms library supports single-phase construction of CBase-derived classes. To implement single-phase construction,&lt;br /&gt;
&lt;br /&gt;
* specify the {{Icode|CONSTRUCTORS_MAY_LEAVE}} macro in your class declaration&lt;br /&gt;
* encapsulate members which must be cleaned up if a constructor leaves, in {{Icode|LManagedX}} templates &lt;br /&gt;
&lt;br /&gt;
Here’s how:&lt;br /&gt;
&amp;lt;code cpp&amp;gt;&lt;br /&gt;
  #include &amp;lt;e32std.h&amp;gt;&lt;br /&gt;
  #include &amp;lt;f32file.h&amp;gt;&lt;br /&gt;
  #include &amp;lt;euserhl.h&amp;gt; // Core  Idioms&lt;br /&gt;
  &lt;br /&gt;
  class CFinder : public CBase&lt;br /&gt;
      {&lt;br /&gt;
  public:&lt;br /&gt;
      // We have opted to use single-phase  construction here, and some of &lt;br /&gt;
      // our constructor's initialization  actions may leave. In order to &lt;br /&gt;
      // guarantee full cleanup in all cases,  we have to declare this fact.&lt;br /&gt;
      CONSTRUCTORS_MAY_LEAVE&lt;br /&gt;
      static CFinder* NewL(const TDesC&amp;amp;  aPattern);&lt;br /&gt;
      ~CFinder();&lt;br /&gt;
      void GetNextMatchL(TDes&amp;amp; aMatch);&lt;br /&gt;
  protected:&lt;br /&gt;
      CFinder(const TDesC&amp;amp; aPattern);&lt;br /&gt;
  protected:&lt;br /&gt;
      LString iPattern; // looks after its own cleanup&lt;br /&gt;
      LManagedHandle&amp;lt;RFs&amp;gt; iFs; // will be closed as required&lt;br /&gt;
      // ...&lt;br /&gt;
      };&lt;br /&gt;
&lt;br /&gt;
  CFinder* CFinder::NewL(const  TDesC&amp;amp; aPattern)&lt;br /&gt;
      {&lt;br /&gt;
      return new(ELeave) CFinder(aPattern);&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
  CFinder::CFinder(const TDesC&amp;amp;  aPattern) &lt;br /&gt;
      // This initializer may leave, since the LString will allocate a&lt;br /&gt;
      // heap buffer large enough to contain a copy of aPattern's data&lt;br /&gt;
      : iPattern(aPattern) &lt;br /&gt;
      {&lt;br /&gt;
      // If connection fails and we leave here, iPattern's destructor&lt;br /&gt;
      // will be called automatically, and the string's resources will&lt;br /&gt;
      // be released&lt;br /&gt;
      iFs-&amp;gt;Connect() OR_LEAVE;&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
  CFinder::~CFinder()&lt;br /&gt;
      {&lt;br /&gt;
      // Automatic destruction of each of the data members does all &lt;br /&gt;
      // of the work for us: iPattern's heap buffer if freed, while &lt;br /&gt;
      // Close() is called on the managed RFs in iFs.&lt;br /&gt;
      // Even though this destructor is textually empty, it should&lt;br /&gt;
      // still be exported; the compiler is generating destruction &lt;br /&gt;
      // logic for us in this case&lt;br /&gt;
      }&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Compared to two-phase construction, {{Icode|NewL()}} is not implemented in terms of {{Icode|NewLC()}} followed by {{Icode|CleanupStack::Pop()}}; and there’s no {{Icode|ConstructL()}}.&lt;br /&gt;
&lt;br /&gt;
In fact, the {{Icode|NewL()}} function really isn’t necessary at all. Its sole benefit is the possibility to change the implementation to old-fashioned two-phase construction without breaking compatibility. Without a {{Icode|NewL()}}, the implementation would be even briefer and clients would just call {{Icode|new(ELeave)}} {{Icode|CFinder(pattern)}}.&lt;br /&gt;
&lt;br /&gt;
{{Note|Note the use of the pointer operator rather than the member-selection operator. If {{Icode|iFs}} had been an unmanaged RFs, we’d have used {{Icode|iFs.Connect()}}. But since {{Icode|iFs}} is an {{Icode|LManagedHandle&amp;lt;RFs&amp;gt;}}, we use {{Icode|iFs-&amp;gt;Connect()}}. Macro to cleanly convert error-returning code into leaving code.}}&lt;br /&gt;
&lt;br /&gt;
In the example above, the line&lt;br /&gt;
&amp;lt;code cpp&amp;gt;&lt;br /&gt;
        iFs-&amp;gt;Connect() OR_LEAVE;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
shows the Core Idioms {{Icode|OR_LEAVE}} macro, which uses C++ operator overloading to generate code which is exactly equivalent to&lt;br /&gt;
&amp;lt;code cpp&amp;gt;&lt;br /&gt;
        User::LeaveIfError(iFs-&amp;gt;Connect());&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
With {{Icode|OR_LEAVE}}, it’s just as efficient, and much more readable.&lt;br /&gt;
&lt;br /&gt;
== Roadmap ==&lt;br /&gt;
The Core Idioms will become part of the platform in Symbian^3. The sections below list the work that has been done so far, in order of most recent first.&lt;br /&gt;
&lt;br /&gt;
Note that the current [[File:EUserHL.zip|downloadable SIS]] is [[#EUserHL 1.2]].&lt;br /&gt;
=== Backlog ===&lt;br /&gt;
Available from Symbian^3.&lt;br /&gt;
&lt;br /&gt;
===EUserHL 2.0 (Not yet available)===&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
! feature !! use case !! before !! after&lt;br /&gt;
|-&lt;br /&gt;
| active callbacks || single async request || 10 coding activities, one new class || 5 coding activities&lt;br /&gt;
|-&lt;br /&gt;
| || adding a time-out || 7 coding activities || 1 coding activity&lt;br /&gt;
|-&lt;br /&gt;
| || single activity under active scheduler || 3 coding activities || 1 coding activity&lt;br /&gt;
|-&lt;br /&gt;
| || long-running active object || 4 coding activities || 2 coding activities&lt;br /&gt;
|-&lt;br /&gt;
| || time one-shot task || 3 coding activities || 1 coding activity&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===EUserHL 1.2 (Current Deliverable - June 2009) ===&lt;br /&gt;
{|&lt;br /&gt;
! feature !! use case !! before !! after&lt;br /&gt;
|-&lt;br /&gt;
| natural literals || string literals in LString API || 2 coding activities || 1 coding activity&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
EUserHL 1.2 includes an updated version of EUserHL.sis that supports backup/restore and which installs without any warnings. &lt;br /&gt;
&lt;br /&gt;
===EUserHL 1.1 (Superseded) ===&lt;br /&gt;
&lt;br /&gt;
* EUserHL 1.1 fixes a problem with a header file present in EUserHL 1.0 and corrects the LString class's documentation.&lt;br /&gt;
* EUserHL 1.1 uses EUserHL.sis 1.0 (the same version EUserHL 1.0 uses), with the same bugs.&lt;br /&gt;
&lt;br /&gt;
=== EUserHL 1.0 (Superseded) ===&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
! feature !! use case !! before !! after&lt;br /&gt;
|-&lt;br /&gt;
| LString || most low-level string use cases || 3-5 lines of code || 2-3 lines of code&lt;br /&gt;
|-&lt;br /&gt;
| LCleanedupX || stack-based variables needing cleanup || 3 coding activities || 2 coding activities&lt;br /&gt;
|-&lt;br /&gt;
| single-phase construction || boilerplate for C class with leaving construction || 4 coding activities || 1 coding activity&lt;br /&gt;
|-&lt;br /&gt;
| OR_LEAVE macro || converting error codes into leaves || 1 opaque line of code || 1 transparent line of code&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Known issues:&lt;br /&gt;
* Documentation for the LString class is incorrect. &lt;br /&gt;
* Header file issue that will cause some applications to fail to build.&lt;br /&gt;
* EUserHL.sis 1.0 does not support backup/restore.&lt;br /&gt;
* EUserHL.sis 1.0 is missing the Machine ID, so the user will get a &amp;quot;Application is not  compatible with the phone&amp;quot; warning during installation.&lt;br /&gt;
&lt;br /&gt;
==Issues with Embedding EUserHL.sis in an Application==&lt;br /&gt;
&lt;br /&gt;
Applications that use the LString class will have a dependency on {{Icode|EUserHL.dll}}, which must be installed by embedding the {{Icode|EUserHL.sis}} package in the application's SIS package.  The package UID of EUserHL, required for embedding the sis file with your application, is: '''0x2001B440'''&lt;br /&gt;
&lt;br /&gt;
The Forum Nokia article [http://wiki.forum.nokia.com/index.php/KIS000457_-_The_dependency_option_is_not_supported_with_embedded_SIS_packages KIS000457 - The dependency option is not supported with embedded SIS packages] is also important for applications that need to support S60 3rd Edition and S60 3rd Edition FP1. Applications that need to support those devices may want to avoid depending on EUserHL.dll at all, to avoid this issue.&lt;br /&gt;
&lt;br /&gt;
Note that the issue described in [http://wiki.forum.nokia.com/index.php/KIS000457_-_The_dependency_option_is_not_supported_with_embedded_SIS_packages KIS000457] is not specific to EUserHL. It applies to any embedded package that is delivered by multiple applications and/or multiple vendors. TODO: There should be a wiki page on symbian.org that discusses these embedded installation issues in more detail and explains how to deal with them effectively.&lt;br /&gt;
&lt;br /&gt;
As noted above, EUserHL.sis 1.0 (shipped in EUserHL 1.0 and EUserHL 1.1) does not support backup/restore and causes warnings during installation. Applications should embed EUserHL.sis 1.2 or later to avoid these two issues.&lt;br /&gt;
&lt;br /&gt;
==Conclusion==&lt;br /&gt;
&lt;br /&gt;
The EUserHL Core Idioms library allows:&lt;br /&gt;
&lt;br /&gt;
* Experienced Symbian C++ developers to write robust and compact string-handling code with semi-automated exception handling.&lt;br /&gt;
* New Symbian C++ developers to use Symbian OS exceptions, the cleanup stack and descriptors more easily, with fewer programming errors and more rapid application development.&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 {{SymbianFoundationLicence}}[[Category: Symbian C++]]&lt;/div&gt;</summary>
		<author><name>Hamishwillee</name></author>	</entry>

	</feed>