<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=http://email.email.llvm.org/c/eJytVE1z2yAQ_TXosmOPBJZlHXRI4vTWU_0HEKwtEgwuoHiSX99FspM0k0yn02oQH7vs6r3Hot7r547xb9SAcVGxcsvKm4THk5UJgYm79HxCJ48IO8bvYAeuuoycift5e0xhVAn23gNrbmE2Aj0xyWQUKO9iAjXIwPgNREX5gvGMbxhvc8RbQH4CpjE4QsMzIEgDQi8jwhVUdoh3MazZzos8uTou_Ssx_pvhJEMy0kI8oaLRvBBM7-A8YCCeYCKM7tH5swPpNDEmHSj1NnP-oz7yE1lo2-SVcyfu_7tO_AtOfyGW9mNvEXQmC3wpPriNS3CUxn0GR_kxZS2o0WomPKdjfJ0567kjZcTNR15zGDpt6YtwOSElrY1TRYIhUVBq8Pv3B_nKY-qHlE6Rcs_RB697b9PShwOtXuhtG_mw-64Evg_6gZhDPklA56Ee_ROGvfXnpfJHsv0cMWZFI81FI9ZtxVuaXkthcdF_8bv-i70PC5IOD4F8jgy5XvJmKpmEIS6owib7ZdMMp9Cd0K1oZSHHNPjQPZoQB3k0oRiD7T7QNWkY-wtMa5-uw-IU_AOqREsTI8GnSS3Woi2GrmxFv671qmraXra8X20q3VeVKtvNvlKbtrCyRxs7Vt9SCTk8w5Qil1O9Lf4dgel4yamVDS_relUvZcP5GrUqG6kr0TRsVSKVm13mPPkki9BNKfvxEMlpTUzxzSljNAeHOAEmhMkki93uek-_uPB0OJDOHmK-vwH3dP2dyijvwPk03Uejyainv1DeVUw8uonEL0s_kCs>53639</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
Template partial specialization for two same references, not considered the same
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
kirshamir
</td>
</tr>
</table>
<pre>
// #1
template <typename T, T n1, T n2>
struct foo {
static const char* scenario() {
return "#1 the base template";
}
};
// #2
// partial specialization where T is unknown and n1 == n2
template <typename T, T a>
struct foo<T, a, a> {
static const char* scenario() {
return "#2 partial specialization";
}
};
double d = 2.3;
int main() {
cout << foo<double&, d, d>:scenario() << endl; // calls #1 instead of #2
}
https://godbolt.org/z/97ajTMc3e
See:
https://stackoverflow.com/questions/37369129/template-partial-specialization-for-integral-non-type-parameters-and-non-integra
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJytU01v4yAQ_TX4MkpkQxzHBx_apr3tafMHMExiWgJZwI3aX7-DnbTdqtVqpbUIHzPMMO_NS-_1S8f4Aw1gXFSs3LLyJuHxZGVCYOIuvZzQySPCjvE72IGrLitn4n6-HlMYVYK998CaW5iNQF9MMhkFyruYQA0yMH4DUVG-YDzjG8bbHPEekL-AaQyOquG5IEgDQi8jwrWo7BAfYliznQ95c3Vc5jdg_A_DSYZkpIV4QkWreaUyvYPzgIFwgokwuifnzw6k04SYeKDU24z5r_zIL2iha5NXzpO4_-888W8w_QNZ2o-9RdAZLPCl-OQ2LsFRGvdVOcqPKXNBg04z4Dkd4-uMWc8TMSNuPuOaw9BpSy_CpUNKWhsnRYIhUlBq8PuPjXzDMc1DSqdIuefog9e9t2npw4FOr_RrG_m4-6EEfgz6iZhDvkhA_VBP_hnD3vrzUvkj2X6NGDOjkfaiEeu24i1tr1JYXPhf_Mn_Yu_DgqjDQyCfI0PWS75MkkkY4oIUNtkvl-ZyCt0J3YpWFskki93uKrhvlEuvQDp7iFmIAfekY6cwZtadT5OwjCajnv5O-VYxBtt9os2kYewvcK19vi6LU_CPqBIdTYxjTvtQi7Voi6GTG8lXyJumodZoJeqyFXqzwVVdoVBVVVjZo40dq29Jig7PMKXIsqy3hel4yWmUDS_relUvZcP5GrUqG6kr0TRsVSKJzi5zHbmfReimkvrxEMlpTUzx3SljNAeHOD1H-eWYBh-6JxPiII8mFNPj3VT8b4Maeno">