- #include <iostream> 
- #include <typeinfo> 
- using std::cout; 
-   
- // проверяю написанное в https://h...content-available-to-author-only...r.com/post/322132/ 
- // (часть Сжатие ссылок и универсальные ссылки) 
-   
- template<typename T> 
- void tester(T&) 
- { 
-   cout << "tester(" << typeid(T).name() << "&):\n\tlvalue reference - " << std::boolalpha << 
-     std::is_lvalue_reference<T>::value << "\n\trvalue reference - " << std::is_rvalue_reference<T>::value << '\n'; 
- } 
-   
- template<typename T> 
- void tester(T&&) 
- { 
-   cout << "tester(" << typeid(T).name() << "&&):\n\tlvalue reference - " << std::boolalpha << 
-     std::is_lvalue_reference<T>::value << "\n\trvalue reference - " << std::is_rvalue_reference<T>::value << '\n'; 
- } 
-   
- class T{}; 
-   
- void tests() 
- { 
-   T value{}; 
-   T& ref{ value}; 
-   cout << "Testing lvalue reference.\t";	tester(ref);	tester<T>(value); 
-   cout << "Testing rvalue reference.\t";	tester(T{});	tester<T>(T{}); 
-   cout << "Testing incomperhensible stuff.\t";	tester(value);	tester<T&>(value); 
- } 
-   
-   
- int main()  
- { 
-   tests(); 
-   return 0; 
- } 
				I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dHlwZWluZm8+CnVzaW5nIHN0ZDo6Y291dDsKCi8vINC/0YDQvtCy0LXRgNGP0Y4g0L3QsNC/0LjRgdCw0L3QvdC+0LUg0LIgaHR0cHM6Ly9oLi4uY29udGVudC1hdmFpbGFibGUtdG8tYXV0aG9yLW9ubHkuLi5yLmNvbS9wb3N0LzMyMjEzMi8KLy8gKNGH0LDRgdGC0Ywg0KHQttCw0YLQuNC1INGB0YHRi9C70L7QuiDQuCDRg9C90LjQstC10YDRgdCw0LvRjNC90YvQtSDRgdGB0YvQu9C60LgpCgp0ZW1wbGF0ZTx0eXBlbmFtZSBUPgp2b2lkIHRlc3RlcihUJikKewogIGNvdXQgPDwgInRlc3RlcigiIDw8IHR5cGVpZChUKS5uYW1lKCkgPDwgIiYpOlxuXHRsdmFsdWUgcmVmZXJlbmNlIC0gIiA8PCBzdGQ6OmJvb2xhbHBoYSA8PAogICAgc3RkOjppc19sdmFsdWVfcmVmZXJlbmNlPFQ+Ojp2YWx1ZSA8PCAiXG5cdHJ2YWx1ZSByZWZlcmVuY2UgLSAiIDw8IHN0ZDo6aXNfcnZhbHVlX3JlZmVyZW5jZTxUPjo6dmFsdWUgPDwgJ1xuJzsKfQoKdGVtcGxhdGU8dHlwZW5hbWUgVD4Kdm9pZCB0ZXN0ZXIoVCYmKQp7CiAgY291dCA8PCAidGVzdGVyKCIgPDwgdHlwZWlkKFQpLm5hbWUoKSA8PCAiJiYpOlxuXHRsdmFsdWUgcmVmZXJlbmNlIC0gIiA8PCBzdGQ6OmJvb2xhbHBoYSA8PAogICAgc3RkOjppc19sdmFsdWVfcmVmZXJlbmNlPFQ+Ojp2YWx1ZSA8PCAiXG5cdHJ2YWx1ZSByZWZlcmVuY2UgLSAiIDw8IHN0ZDo6aXNfcnZhbHVlX3JlZmVyZW5jZTxUPjo6dmFsdWUgPDwgJ1xuJzsKfQoKY2xhc3MgVHt9OwoKdm9pZCB0ZXN0cygpCnsKICBUIHZhbHVle307CiAgVCYgcmVmeyB2YWx1ZX07CiAgY291dCA8PCAiVGVzdGluZyBsdmFsdWUgcmVmZXJlbmNlLlx0IjsJdGVzdGVyKHJlZik7CXRlc3RlcjxUPih2YWx1ZSk7CiAgY291dCA8PCAiVGVzdGluZyBydmFsdWUgcmVmZXJlbmNlLlx0IjsJdGVzdGVyKFR7fSk7CXRlc3RlcjxUPihUe30pOwogIGNvdXQgPDwgIlRlc3RpbmcgaW5jb21wZXJoZW5zaWJsZSBzdHVmZi5cdCI7CXRlc3Rlcih2YWx1ZSk7CXRlc3RlcjxUJj4odmFsdWUpOwp9CgoKaW50IG1haW4oKSAKewogIHRlc3RzKCk7CiAgcmV0dXJuIDA7Cn0=