<!-- 
RSS generated by JIRA (8.3.4#803005-sha1:1f96e09b3c60279a408a2ae47be3c745f571388b) at Sat Feb 10 15:28:32 JST 2024

It is possible to restrict the fields that are returned in this document by specifying the 'field' parameter in your request.
For example, to request only the issue key and summary append 'field=key&field=summary' to the URL of your request.
-->
<rss version="0.92" >
<channel>
    <title>PFS-JIRA</title>
    <link>https://pfspipe.ipmu.jp/jira</link>
    <description>This file is an XML representation of an issue</description>
    <language>en-us</language>    <build-info>
        <version>8.3.4</version>
        <build-number>803005</build-number>
        <build-date>13-09-2019</build-date>
    </build-info>


<item>
            <title>[REDMINE1D-25] [RM-6371] [wiki] Check and Apply &quot;Rule of zero&quot; or  else &quot;Rule of the 5 defaults&quot;,  to possibly all classes in the library</title>
                <link>https://pfspipe.ipmu.jp/jira/browse/REDMINE1D-25</link>
                <project id="11002" key="REDMINE1D">1D Redmine </project>
                    <description>&lt;p&gt;&lt;em&gt;&lt;font color=&quot;#505f79&quot;&gt; Created on 2021-03-15 13:11:55 by Mira Sarkis. % Done: 100&lt;/font&gt;&lt;/em&gt;&lt;/p&gt;


&lt;p&gt;Motivations for this action (based on &lt;a href=&quot;https://www.fluentcpp.com/2019/04/23/the-rule-of-zero-zero-constructor-zero-calorie/):&quot; class=&quot;external-link&quot; rel=&quot;nofollow&quot;&gt;https://www.fluentcpp.com/2019/04/23/the-rule-of-zero-zero-constructor-zero-calorie/):&lt;/a&gt;&lt;br/&gt;
Among the new practices in C++11 appears the Rule of 5 vs Rule of zero &lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;&quot;Rule of 5&quot; states that if any of the &quot;Big Five&quot; (i.e., the copy/move constructors, copy/move assignment operators or destructor) has a user-defined implementation, we should obligatory define the implementation of the remaining &quot;Big Fives&quot; .&lt;br/&gt;
This is important because otherwise we will have to deal with some side effects notably on the generation of the move operations. In most of the cases move operations are replaced by copy operations (which are far more expensive than the former). &lt;br/&gt;
This applies also when setting to &apos;default&apos; at least one of the &quot;Big Fives&quot; and the rest non-default&lt;/li&gt;
	&lt;li&gt;&quot;Rule of 5 default &quot;, always declare the 5 resource-management functions. And if they are trivial, use @= default@. This avoid, for instance, the non implicit generation of the 2 move  functions, without the need to explicit their definitions.&lt;/li&gt;
	&lt;li&gt;&quot;Rule of zero&quot;: do not define any of the &quot;Big Five&quot;.&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;Conclusion and rules to check their correct usage in the library:&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;stick to rule of zero if there is no need for user-defined implementation&lt;/li&gt;
	&lt;li&gt;if one of the Big Five should be user-defined, then explicitly default the rest&lt;/li&gt;
&lt;/ul&gt;
</description>
                <environment></environment>
        <key id="16729">REDMINE1D-25</key>
            <summary>[RM-6371] [wiki] Check and Apply &quot;Rule of zero&quot; or  else &quot;Rule of the 5 defaults&quot;,  to possibly all classes in the library</summary>
                <type id="3" iconUrl="https://pfspipe.ipmu.jp/jira/secure/viewavatar?size=xsmall&amp;avatarId=10518&amp;avatarType=issuetype">Task</type>
                                            <priority id="10000" iconUrl="https://pfspipe.ipmu.jp/jira/images/icons/priorities/medium.svg">Normal</priority>
                        <status id="10002" iconUrl="https://pfspipe.ipmu.jp/jira/images/icons/statuses/generic.png" description="The issue is resolved, reviewed, and merged">Done</status>
                    <statusCategory id="3" key="done" colorName="green"/>
                                    <resolution id="10000">Done</resolution>
                                        <assignee username="r2j.migrate">Redmine-Jira Migtation</assignee>
                                    <reporter username="r2j.migrate">Redmine-Jira Migtation</reporter>
                        <labels>
                    </labels>
                <created>Fri, 4 Jun 2021 01:19:55 +0000</created>
                <updated>Fri, 8 Dec 2023 18:50:21 +0000</updated>
                            <resolved>Fri, 8 Dec 2023 18:50:21 +0000</resolved>
                                                                        <due></due>
                            <votes>0</votes>
                                    <watches>2</watches>
                                                                <comments>
                            <comment id="36396" author="r2j.migrate" created="Fri, 8 Dec 2023 18:49:14 +0000"  >&lt;p&gt;Comment by Didier Vibert on 2022-01-14 08:41:04:&lt;br/&gt;
&lt;img src=&quot;https://pfspipe.ipmu.jp/jira/images/icons/attach/noimage.png&quot; imagetext=&quot;Image%20coll%C3%A9e%20%C3%A0%202021-12-1%2016-10.png&quot; align=&quot;absmiddle&quot; border=&quot;0&quot; /&gt;&lt;/p&gt;</comment>
                            <comment id="36397" author="r2j.migrate" created="Fri, 8 Dec 2023 18:49:28 +0000"  >&lt;p&gt;Comment by Pierre-yves Chabaud on 2022-03-15 13:46:11:&lt;br/&gt;
Create a related wiki page&lt;/p&gt;</comment>
                            <comment id="36398" author="r2j.migrate" created="Fri, 8 Dec 2023 18:49:44 +0000"  >&lt;p&gt;Comment by Didier Vibert on 2023-12-08 09:56:11:&lt;br/&gt;
&lt;a href=&quot;https://projets.lam.fr/projects/amazed/wiki/AmazedDeveloperGuide#Good-practices-for-cpp&quot; class=&quot;external-link&quot; rel=&quot;nofollow&quot;&gt;https://projets.lam.fr/projects/amazed/wiki/AmazedDeveloperGuide#Good-practices-for-cpp&lt;/a&gt;&lt;/p&gt;</comment>
                    </comments>
                    <attachments>
                            <attachment id="16948" name="Image coll&#233;e &#224; 2021-12-1 16-10.png" size="225160" author="r2j.migrate" created="Fri, 8 Dec 2023 18:50:01 +0000"/>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                <customfield id="customfield_10500" key="com.atlassian.jira.plugins.jira-development-integration-plugin:devsummary">
                        <customfieldname>Development</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                            <customfield id="customfield_10010" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>0|zzs7cg:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                    </customfields>
    </item>
</channel>
</rss>