< ! - -   v i m :   s e t   t s = 2   s w = 2   t w = 8 0   f o = t c   e t   - - > 
 
 < ! D O C T Y P E   h t m l > 
 
 < h t m l > 
 
     < h e a d > 
 
         < t i t l e > R e v i s i t i n g   t h e   m e a n i n g   o f   f o o ( C o n c e p t N a m e , C o n c e p t N a m e ) < / t i t l e > 
 
         < s t y l e > 
 
             c o d e   {   w h i t e - s p a c e :   p r e ;   } 
 
             t h   {   t e x t - a l i g n :   l e f t ;   } 
 
         < / s t y l e > 
 
     < / h e a d > 
 
     < b o d y > 
 
         < h 2 > R e v i s i t i n g   t h e   m e a n i n g   o f   < c o d e > f o o ( C o n c e p t N a m e , C o n c e p t N a m e ) < / c o d e > < / h 2 > 
 
         < t a b l e > 
 
             < t r > 
 
                 < t h > D o c u m e n t   n u m b e r : < / t h > < t d > P 0 4 6 4 R 0 < / t d > 
 
             < / t r > 
 
             < t r > 
 
                 < t h   r o w s p a n = 2 > A u t h o r s : < / t h > < t d > T o n y   v a n   E e r d   & l t ; t v a n e e r d @ g m a i l . c o m & g t ; < / t d > 
 
             < / t r > 
 
             < t r > 
 
                 < t d > B o t o n d   B a l l o   & l t ; b o t o n d @ m o z i l l a . c o m & g t ; < / t d > 
 
             < / t r > 
 
             < t r > 
 
                 < t h > D a t e : < / t h > < t d > 2 0 1 6 - 1 0 - 1 1 < / t d > 
 
             < / t r > 
 
             < t r > 
 
                 < t h > A u d i e n c e : < / t h > < t d > E v o l u t i o n   W o r k i n g   G r o u p < / t d > 
 
             < / t r > 
 
         < / t a b l e > 
 
         < h 3 > A b s t r a c t < / h 3 > 
 
         < p > I n   t h e   c u r r e n t   < a   h r e f = " h t t p : / / w g 2 1 . l i n k / n 4 5 5 3 " > C o n c e p t s   T e c h n i c a l   S p e c i f i c a t i o n < / a > < s u p > [ 1 ] < / s u p > ,   < c o d e >   R   f o o ( C o n c e p t N a m e ,   C o n c e p t N a m e ) ;   < / c o d e >   d e n o t e s   a   f u n c t i o n   t h a t   t a k e s   t w o   a r g u m e n t s   o f   t h e   s a m e   t y p e ,   w i t h   t h a t   t y p e   s a t i s f y i n g   t h e   c o n c e p t   < c o d e > C o n c e p t N a m e < / c o d e > .   M o r e   p r e c i s e l y ,   i t ' s   a   s h o r t h a n d   f o r : 
 
         < c o d e > 
 
         
 
         t e m p l a t e   & l t ; C o n c e p t N a m e   _ _ C & g t ; 
 
         R   f o o ( _ _ C   a ,   _ _ C   b ) ; 
 
         < / c o d e > < / p > 
 
         < p > T h i s   p a p e r   a r g u e s   t h a t   i t   w o u l d   b e   m o r e   n a t u r a l   f o r   i t   t o   d e n o t e   a   f u n c t i o n   t h a t   t a k e s   t w o   a r g u m e n t s   o f   p o t e n t i a l l y   d i f f e r e n t   t y p e s ,   w i t h   t h o s e   t y p e s   s a t i s f y i n g   t h e   c o n c e p t   < c o d e > C o n c e p t N a m e < / c o d e > .   T h a t   i s ,   i t   s h o u l d   b e   a   s h o r t h a n d   f o r : 
 
         < c o d e > 
 
         
 
         t e m p l a t e   & l t ; C o n c e p t N a m e   _ _ C 1 ,   C o n c e p t N a m e ,   _ _ C 2 & g t ; 
 
         R   f o o ( _ _ C 1   a ,   _ _ C 2   b ) ; 
 
         < / c o d e > 
 
         < / p > 
 
         < h 3 > A r g u m e n t s < / h 3 > 
 
         < h 4 > F o l l o w s   f r o m   f i r s t   p r i n c i p l e s < / h 4 > 
 
         < p > O n c e   a   d e v e l o p e r   h a s   l e a r n e d   t h e   b a s i c   l a n g u a g e   r u l e   i n   C o n c e p t s   t h a t   < c o d e >   C o n c e p t N a m e   v a r   < / c o d e >   m e a n s   t h a t   t h e   v a r i a b l e   < c o d e > v a r < / c o d e >   m u s t   h a v e   s o m e   t y p e   t h a t   m o d e l s   t h e   c o n c e p t   < c o d e > C o n c e p t N a m e < / c o d e > ,   t h e   m e a n i n g   o f   < c o d e >   C o n c e p t N a m e   a ,   C o n c e p t N a m e   b   < / c o d e >   s h o u l d   b e   o b v i o u s :   t h a t   < c o d e > a < / c o d e >   a n d   < c o d e > b < / c o d e >   m o d e l   < c o d e > C o n c e p t N a m e < / c o d e >   & m d a s h ;   n o   m o r e ,   n o   l e s s . < / p > 
 
         < p > I t   i s   s u r p r i s i n g   f o r   t h e   a c t u a l   m e a n i n g   t o   b e   " < c o d e > a < / c o d e >   a n d   < c o d e > b < / c o d e >   m o d e l   < c o d e > C o n c e p t N a m e < / c o d e >   < s t r o n g > a n d < / s t r o n g >   t h e y   h a v e   t h e   s a m e   t y p e " .   I f   t h i s   a d d i t i o n a l   c o n s t r a i n t   i s   d e s i r e d ,   i t   s h o u l d   b e   s t a t e d   i n   t h e   c o d e . < / p > 
 
         < p > I n   o t h e r   w o r d s ,   t h e   i n t e r p r e t a t i o n   t h i s   p a p e r   a r g u e s   f o r   i s   t h e   o n e   t h a t   f o l l o w s   f r o m   f i r s t   p r i n c i p l e s .   T h e   a u t h o r s   b e l i e v e   t h i s   s h o u l d   b e   t h e   g u i d i n g   c o n s i d e r a t i o n . < / p > 
 
         < h 4 > C o n s i s t e n c y   w i t h   < c o d e > a u t o < / c o d e > < / h 4 > 
 
         < p > < c o d e > a u t o < / c o d e > ,   a s   s t a n d a r d i z e d   i n   C + + 1 4 ,   a l r e a d y   b e h a v e s   t h e   w a y   w e   d e s i r e .   T h a t   i s , 
 
         < c o d e > 
 
         
 
         R   f o o ( a u t o   a ,   a u t o   b ) ; 
 
         < / c o d e > < / p > 
 
         < p > i s   a   s h o r t h a n d   f o r : 
 
         < c o d e > 
 
         
 
         t e m p l a t e   & l t ; t y p e n a m e   _ _ C 1 ,   t y p e n a m e   _ _ C 2 & g t ; 
 
         R   f o o ( _ _ C 1   a ,   _ _ C 2   b ) ; 
 
         < / c o d e > < / p > 
 
         < p > S i n c e   < c o d e > a u t o < / c o d e >   c a n   b e   t h o u g h t   o f   a s   t h e   w e a k e s t   c o n c e p t ,   i t   w o u l d   m a k e   t h e   l a n g u a g e   s i m p l e r   a n d   e a s i e r   t o   t e a c h   i f   t h e   w a y   c o n c e p t s   b e h a v e   i s   c o n s i s t e n t   w i t h   t h e   w a y   < c o d e > a u t o < / c o d e >   b e h a v e s . < / p > 
 
         < h 4 > C o n s i s t e n c y   w i t h   l o c a l   v a r i a b l e s < / h 4 > 
 
         < p > T h e   c u r r e n t   " s a m e   t y p e "   r u l e   d o e s   n o t   e x t e n d   t o   l o c a l   v a r i a b l e s   d e c l a r e d   i n   t h e   b o d y   o f   t h e   f u n c t i o n : 
 
         < c o d e > 
 
         
 
         / /   a   a n d   b   m u s t   h a v e   t h e   s a m e   t y p e ,   b u t   v a r   i s   a l l o w e d   t o   b e   a   d i f f e r e n t   t y p e 
 
         R   f o o ( C o n c e p t N a m e   a ,   C o n c e p t N a m e   b )   { 
 
             C o n c e p t N a m e   v a r   =   / *   . . .   * / ; 
 
         } 
 
         < / c o d e > < / p > 
 
         < p > I t   i s   v e r y   c o n f u s i n g   t o   f o r   t w o   o f   t h e   t h r e e   u s e s   o f   < c o d e > C o n c e p t N a m e < / c o d e >   i n   t h i s   p i e c e   o f   c o d e   t o   h a v e   a n   a d d i t i o n a l   c o n s t r a i n t   b e t w e e n   t h e m ,   b u t   n o t   t h e   t h i r d . < / p > 
 
         < h 4 > C o n c e p t s   a r e   t o   t y p e s   a s   t y p e s   a r e   t o   v a l u e s < / h 4 > 
 
         < p > C o n c e p t s   a r e   t o   t y p e s   a s   t y p e s   a r e   t o   v a l u e s ,   i n   t h e   s e n s e   t h a t   a   c o n c e p t   d e f i n e s   a   s e t   o f   v a l i d   t y p e s   m u c h   l i k e   a   t y p e   d e f i n e s   a   s e t   o f   v a l i d   v a l u e s .   < / p > 
 
         < p > W h e n   w e   w r i t e   < c o d e >   i n t   x ,   i n t   y   < / c o d e > ,   < c o d e > i n t < / c o d e >   i s   a   < e m > t y p e < / e m > ,   a n d   t h e   m e a n i n g   i s   t h a t   < c o d e > x < / c o d e >   a n d   < c o d e > y < / c o d e >   b o t h   h a v e   < e m > t y p e < / e m >   < c o d e > i n t < / c o d e > ;   b e y o n d   t h a t ,   < c o d e > x < / c o d e >   a n d   < c o d e > y < / c o d e >   a r e   n o t   r e q u i r e d   t o   h a v e   t h e   s a m e   < e m > v a l u e < / e m > . < / p > 
 
         < p > S i m i l a r ,   w h e n   w e   w r i t e   < c o d e >   C o n c e p t N a m e   x ,   C o n c e p t N a m e   y   < / c o d e > ,   < c o d e > C o n c e p t N a m e < / c o d e >   i s   a   < e m > c o n c e p t < / e m > ,   a n d   t h e   m e a n i n g   i s   t h a t   < c o d e > x < / c o d e >   a n d   < c o d e > y < / c o d e >   b o t h   m o d e l   t h e   < e m > c o n c e p t < / e m >   < c o d e > C o n c e p t N a m e < / c o d e > ;   b e y o n d   t h a t ,   < c o d e > x < / c o d e >   a n d   < c o d e > y < / c o d e >   s h o u l d   n o t   b e   r e q u i r e d   t o   h a v e   t h e   s a m e   < e m > t y p e < / e m > . < / p > 
 
         < h 4 > I t e r a t o r   p a i r s   a r e   g o i n g   o u t   o f   f a s h i o n < / h 4 > 
 
         < p > O n e   o f   t h e   m a i n   a r g u m e n t s   g i v e n   f o r   t h e   c u r r e n t   s e m a n t i c s   i s   t h a t   h a v i n g   t w o   a r g u m e n t s   o f   t h e   s a m e   ( t e m p l a t e d )   t y p e   i s   v e r y   c o m m o n   i n   t h e   s t a n d a r d   l i b r a r y ,   d u e   t o   i t e r a t o r   p a i r s . < / p > 
 
         < p > H o w e v e r ,   i n   a   m o d e r n   C + +   w o r l d ,   t h i s   a r g u m e n t   d o e s   n o t   h o l d   w a t e r .   T h a n k s   t o   t h e   < a   h r e f = " h t t p : / / w g 2 1 . l i n k / n 4 5 6 9 " > R a n g e s   T e c h n i c a l   S p e c i f i c a t i o n < / a > < s u p > [ 2 ] < / s u p > ,   i t e r a t o r   p a i r s   a r e   g o i n g   o u t   o f   f a s h i o n ,   b e i n g   r e p l a c e d   w i t h   i t e r a t o r / s e n t i n e l   p a i r s   & m d a s h ;   w h i c h   a r e   t w o   p o t e n t i a l l y   < e m > d i f f e r e n t < / e m >   t y p e s   & m d a s h ;   a n d   s i n g l e   r a n g e   o b j e c t s . 
 
         < h 4 > U s e r   c o n f u s i o n < / h 4 > 
 
         < p > U s e r s   h a v e   r e p e a t e d l y   e x p r e s s e d   c o n f u s i o n   a b o u t   t h e   c u r r e n t   b e h a v i o u r ,   i n d i c a t i n g   t h a t   i t   i s   n o t   i n t u i t i v e .   S o m e   e x a m p l e s : 
 
         < u l > 
 
             < l i > < a   h r e f = " h t t p s : / / g r o u p s . g o o g l e . c o m / a / i s o c p p . o r g / d / t o p i c / c o n c e p t s / B F m v N _ w - P E s / d i s c u s s i o n " > C o n c e p t s   m a i l i n g   l i s t   d i s c u s s i o n < / a > < s u p > [ 3 ] < / s u p > < / l i > 
 
             < l i > < a   h r e f = " h t t p s : / / g r o u p s . g o o g l e . c o m / a / i s o c p p . o r g / f o r u m / # ! t o p i c / s t d - p r o p o s a l s / _ Y p R o k 7 L a E U / d i s c u s s i o n " > s t d - p r o p o s a l s   d i s c u s s i o n < / a > < s u p > [ 4 ] < / s u p > < / l i > 
 
             < l i > < a   h r e f = " h t t p s : / / w w w . r e d d i t . c o m / r / c p p / c o m m e n t s / 5 3 i 9 a 2 / c o n c e p t l i t e _ s h o r t _ n o t a t i o n _ p r o b l e m / " > R e d d i t   q u e s t i o n < / a > < s u p > [ 5 ] < / s u p > < / l i > 
 
         < / u l > < / p > 
 
         < h 3 > H o w   w o u l d   w e   e x p r e s s   t h e   o l d   m e a n i n g ? < / h 3 > 
 
         < p > W h a t   i f   o n e   w a n t s   t o   e x p r e s s   t h e   o l d   m e a n i n g   o f   < c o d e >   f o o ( C o n c e p t N a m e , C o n c e p t N a m e )   < / c o d e > ,   a   f u n c t i o n   w i t h   t w o 
 
         p a r a m e t e r s   o f   t h e   s a m e   t y p e   t h a t   s a t i s f i e s   a   c o n c e p t ?   I n   a d d i t i o n   t o   t h e   n o n - t e r s e   n o t a t i o n : 
 
         < c o d e > 
 
         
 
         t e m p l a t e   & l t ; C o n c e p t N a m e   C & g t ; 
 
         R   f o o ( C   a ,   C   b ) ; 
 
         < / c o d e > < / p > 
 
         < p > o n e   c o u l d   a l s o   w r i t e : 
 
         < c o d e > 
 
         
 
         R   f o o ( C o n c e p t N a m e   a ,   d e c l t y p e ( a )   b ) ; 
 
         < / c o d e > 
 
         < / p > 
 
         < p > A   t h i r d   a l t e r n a t i v e   w o u l d   b e   p r o v i d e d   b y   t h e   s y n t a x   p r o p o s e d   i n   < a   h r e f = " h t t p : / / w w w . o p e n - s t d . o r g / j t c 1 / s c 2 2 / w g 2 1 / d o c s / p a p e r s / 2 0 1 4 / n 3 8 7 8 . p d f " > N 3 8 7 8 < / a > < s u p > [ 6 ] < / s u p > : 
 
         < c o d e > 
 
         
 
         R   f o o ( C o n c e p t N a m e { C }   a ,   C   b ) ; 
 
         < / c o d e > < / p > 
 
         < p > G r a n t e d ,   t h e   s e c o n d   t w o   f o r m s   a r e   n o t   e x a c t l y   e q u i v a l e n t ,   b e c a u s e   t h e   s e c o n d   p a r a m e t e r   d o e s   n o t   p a r t i c i p a t e   i n   d e d u c t i o n .   O n e   c a n   e n v i s i o n   a   v a r i a t i o n   o f   t h e   s y n t a x   p r o p o s e d   i n   N 3 8 7 8   w h i c h   w o u l d   m e a n   " s a m e   t y p e ,   a n d   t r e a t e d   e q u a l l y   f o r   d e d u c t i o n " : 
 
         < c o d e > 
 
         
 
         R   f o o ( C o n c e p t N a m e { C }   a ,   C o n c e p t N a m e { C }   b ) ; 
 
         < / c o d e > < / p > 
 
         < p > I n   a n y   c a s e ,   u s i n g   n o t a t i o n   a v a i l a b l e   t o d a y ,   i f   e q u a l   t r e a t m e n t   f o r   d e d u c t i o n   m a t t e r s ,   t h e   n o n - t e r s e   n o t a t i o n   c a n   b e   u s e d . < / p > 
 
         < h 3 > C o u n t e r - a r g u m e n t s < / h 3 > 
 
         < p > I t   c a n   b e   a r g u e d   t h a t   y o u   d o n ' t   o f t e n   w a n t   a   f u n c t i o n   t h a t   t a k e s   t w o   a r g u m e n t s   o f   p o t e n t i a l l y   d i f f e r e n t   t y p e s   s a t i s f y i n g   t h e   s a m e   c o n c e p t   w i t h o u t   h a v i n g   a n   a d d i t i o n a l   r e l a t i o n s h i p   b e t w e e n   t h e   t w o   t y p e s . < / p > 
 
         < p > T h e   a u t h o r s   b e l i e v e   t h a t   a r g u m e n t s   l i k e   t h i s   b a s e d   o n   f r e q u e n c y   o f   u s e ,   s h o u l d   t a k e   a   b a c k   s e a t   t o   t h e   a r g u m e n t s   l i s t e d   a b o v e ,   n o t a b l y   t h e   a r g u m e n t   b a s e d   o n   f i r s t   p r i n c i p l e s . < / p > 
 
         < p > H o w e v e r ,   e v e n   f r o m   a   f r e q u e n c y   p o i n t   o f   v i e w ,   i t   s h o u l d   b e   n o t e d   t h a t   a   < a   h r e f = " h t t p s : / / g r o u p s . g o o g l e . c o m / a / i s o c p p . o r g / f o r u m / # ! t o p i c / c o n c e p t s / c d X 4 X 0 n g J q c / d i s c u s s i o n " > s u r v e y   o f   s t a n d a r d   l i b r a r y   f u n c t i o n s < / a > < s u p > [ 7 ] < / s u p >   f o u n d   a   s i g n i f i c a n t   a m o u n t   o f   " s a m e   c o n c e p t ,   d i f f e r e n t   t y p e "   f u n c t i o n s ,   c o m p a r a b l e   t o   t h e   a m o u n t   o f   " s a m e   c o n c e p t ,   s a m e   t y p e "   f u n c t i o n s   w h e n   c o n t r o l l i n g   f o r   i t e r a t o r   p a i r s . < / p >   
 
         < h 3 > A c k n o w l e d g e m e n t s < / h 3 > 
 
         < p > T h e   a u t h o r s   w o u l d   l i k e   t o   t h a n k   e v e r y o n e   w h o   p a r t i c i p a t e d   i n   d i s c u s s i o n s   o n   t h i s   s u b j e c t   ( o n   t h e   p u b l i c   m a i l i n g   l i s t s ,   i n   p r i v a t e   e m a i l   c o r r e s p o n d e n c e ,   a n d   e l s e w h e r e ) ,   f o r   b r i n g i n g   a   v a r i e t y   o f   v a l u a b l e   p e r s p e c t i v e s   a n d   a r g u m e n t s   t o   t h e   t a b l e . < / p > 
 
         < h 3 > R e f e r e n c e s < / h 3 > 
 
         < o l > 
 
           < l i > < a   h r e f = " h t t p : / / w w w . o p e n - s t d . o r g / j t c 1 / s c 2 2 / w g 2 1 / d o c s / p a p e r s / 2 0 1 5 / n 4 5 5 3 . p d f " > h t t p : / / w w w . o p e n - s t d . o r g / j t c 1 / s c 2 2 / w g 2 1 / d o c s / p a p e r s / 2 0 1 5 / n 4 5 5 3 . p d f < / a > < / l i > 
 
           < l i > < a   h r e f = " h t t p : / / w w w . o p e n - s t d . o r g / j t c 1 / s c 2 2 / w g 2 1 / d o c s / p a p e r s / 2 0 1 6 / n 4 5 6 9 . p d f " > h t t p : / / w w w . o p e n - s t d . o r g / j t c 1 / s c 2 2 / w g 2 1 / d o c s / p a p e r s / 2 0 1 6 / n 4 5 6 9 . p d f < / a > < / l i > 
 
           < l i > < a   h r e f = " h t t p s : / / g r o u p s . g o o g l e . c o m / a / i s o c p p . o r g / d / t o p i c / c o n c e p t s / B F m v N _ w - P E s / d i s c u s s i o n " > h t t p s : / / g r o u p s . g o o g l e . c o m / a / i s o c p p . o r g / d / t o p i c / c o n c e p t s / B F m v N _ w - P E s / d i s c u s s i o n < / a > < / l i > 
 
           < l i > < a   h r e f = " h t t p s : / / g r o u p s . g o o g l e . c o m / a / i s o c p p . o r g / f o r u m / # ! t o p i c / s t d - p r o p o s a l s / _ Y p R o k 7 L a E U / d i s c u s s i o n " > h t t p s : / / g r o u p s . g o o g l e . c o m / a / i s o c p p . o r g / f o r u m / # ! t o p i c / s t d - p r o p o s a l s / _ Y p R o k 7 L a E U / d i s c u s s i o n < / a > < / l i > 
 
           < l i > < a   h r e f = " h t t p s : / / w w w . r e d d i t . c o m / r / c p p / c o m m e n t s / 5 3 i 9 a 2 / c o n c e p t l i t e _ s h o r t _ n o t a t i o n _ p r o b l e m / " > h t t p s : / / w w w . r e d d i t . c o m / r / c p p / c o m m e n t s / 5 3 i 9 a 2 / c o n c e p t l i t e _ s h o r t _ n o t a t i o n _ p r o b l e m / < / a > < / l i > 
 
           < l i > < a   h r e f = " h t t p : / / w w w . o p e n - s t d . o r g / j t c 1 / s c 2 2 / w g 2 1 / d o c s / p a p e r s / 2 0 1 4 / n 3 8 7 8 . p d f " > h t t p : / / w w w . o p e n - s t d . o r g / j t c 1 / s c 2 2 / w g 2 1 / d o c s / p a p e r s / 2 0 1 4 / n 3 8 7 8 . p d f < / a > < / l i > 
 
           < l i > < a   h r e f = " h t t p s : / / g r o u p s . g o o g l e . c o m / a / i s o c p p . o r g / f o r u m / # ! t o p i c / c o n c e p t s / c d X 4 X 0 n g J q c / d i s c u s s i o n " > h t t p : / / w w w . o p e n - s t d . o r g / j t c 1 / s c 2 2 / w g 2 1 / d o c s / p a p e r s / 2 0 1 6 / n 4 5 6 9 . p d f < / a > < / l i > 
 
         < / o l > 
 
     < / b o d y > 
 
 < / h t m l > 
 
 