Взято частично из https://msdn.microsoft.com/en-us/library/td1esda9.aspx по мотивам http://www.viva64.com/ru/b/0391/ (http://www.viva64.com/ru/b/0391/)
#include <iostream>
template <int size>
void strcpy_s(char (&strDestination)[size]) {
(void)strDestination;
std::cout << size << std::endl;
}
int main() {
char buf[10];
strcpy_s(buf);
return 0;
}
Код исправно печатает 10, но я не понимаю, почему для определения типа параметра в strcpy_s() используется нотация (&attrname).
Cast Andrey_Karpov_2009.