www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.learn - Does it make sense to add attribute to operator overload functions ?

reply "Jkpl" <Jkpl nowhere.jp.pl> writes:
Everything is in the Q. I ask this because those functions are 
hidden behind symbols and keywords (+=, ~, in, etc.). It's not 
that obvious for a user who would write a custom type.

e.g:
-----------
struct myType
{
      safe nothrow opIndexAssign(t1 paramValue,t2 paramIndex){}
}
-----------

are the attributes necessary ? Are opXXX functions handled just 
like any other functs ? (traversal compat. of the attribs)
Oct 25 2014
parent reply "John Colvin" <john.loughran.colvin gmail.com> writes:
On Saturday, 25 October 2014 at 17:14:51 UTC, Jkpl wrote:
 Everything is in the Q. I ask this because those functions are 
 hidden behind symbols and keywords (+=, ~, in, etc.). It's not 
 that obvious for a user who would write a custom type.

 e.g:
 -----------
 struct myType
 {
      safe nothrow opIndexAssign(t1 paramValue,t2 paramIndex){}
 }
 -----------

 are the attributes necessary ? Are opXXX functions handled just 
 like any other functs ? (traversal compat. of the attribs)
In every aspect they are ordinary functions, except they each have an additional unique way of being called (the relevant operator syntax). In short, yes.
Oct 25 2014
parent "Jkpl" <Jkpl nowhere.jp.pl> writes:
On Saturday, 25 October 2014 at 18:38:12 UTC, John Colvin wrote:
 On Saturday, 25 October 2014 at 17:14:51 UTC, Jkpl wrote:
 Everything is in the Q. I ask this because those functions are 
 hidden behind symbols and keywords (+=, ~, in, etc.). It's not 
 that obvious for a user who would write a custom type.

 e.g:
 -----------
 struct myType
 {
     safe nothrow opIndexAssign(t1 paramValue,t2 paramIndex){}
 }
 -----------

 are the attributes necessary ? Are opXXX functions handled 
 just like any other functs ? (traversal compat. of the attribs)
In every aspect they are ordinary functions, except they each have an additional unique way of being called (the relevant operator syntax). In short, yes.
Thx, A bit less confused by them now.
Oct 25 2014