- #include <iostream> 
- #include <typeinfo> 
-   
- //template<typename T> 
- //void tester(T&) 
- //{ 
- //	std::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&&) 
- { 
- 	std::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'; 
- } 
-   
- int main() 
- { 
- 	std::cout << "How on Earth that is_rvalue_reference and is_lvalue_reference work?!\n"; 
- 	int intval{ 123 };	int& intref{ intval };	int const&& intrref{ 123 }; 
-   
- 	tester(intval);		// lvalue reference	 
- 	tester(intref);		// lvalue reference		 
- 	tester(intrref);		// lvalue reference									// not a single true, thats wrong somehow 
- 	tester(std::move(intval));	// false 
- 	tester(std::move(intref));	// false 
- 	tester(std::move(intrref));	// false 
-   
- 	return 0; 
- } 
				I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dHlwZWluZm8+CgovL3RlbXBsYXRlPHR5cGVuYW1lIFQ+Ci8vdm9pZCB0ZXN0ZXIoVCYpCi8vewovLwlzdGQ6OmNvdXQgPDwgInRlc3RlcigiIDw8IHR5cGVpZChUKS5uYW1lKCkgPDwgIiYpOlxuXHRsdmFsdWUgcmVmZXJlbmNlIC0gIiA8PCBzdGQ6OmJvb2xhbHBoYSA8PAovLwkJc3RkOjppc19sdmFsdWVfcmVmZXJlbmNlPFQ+Ojp2YWx1ZSA8PCAiXG5cdHJ2YWx1ZSByZWZlcmVuY2UgLSAiIDw8IHN0ZDo6aXNfcnZhbHVlX3JlZmVyZW5jZTxUPjo6dmFsdWUgPDwgJ1xuJzsKLy99Cgp0ZW1wbGF0ZTx0eXBlbmFtZSBUPgp2b2lkIHRlc3RlcihUJiYpCnsKCXN0ZDo6Y291dCA8PCAidGVzdGVyKCIgPDwgdHlwZWlkKFQpLm5hbWUoKSA8PCAiJiYpOlxuXHRsdmFsdWUgcmVmZXJlbmNlIC0gIiAgPDwgc3RkOjpib29sYWxwaGEgPDwgc3RkOjppc19sdmFsdWVfcmVmZXJlbmNlPFQ+Ojp2YWx1ZQoJCTw8ICJcblx0cnZhbHVlIHJlZmVyZW5jZSAtICIgPDwgc3RkOjppc19ydmFsdWVfcmVmZXJlbmNlPFQ+Ojp2YWx1ZSA8PCAnXG4nOwp9CgppbnQgbWFpbigpCnsKCXN0ZDo6Y291dCA8PCAiSG93IG9uIEVhcnRoIHRoYXQgaXNfcnZhbHVlX3JlZmVyZW5jZSBhbmQgaXNfbHZhbHVlX3JlZmVyZW5jZSB3b3JrPyFcbiI7CglpbnQgaW50dmFseyAxMjMgfTsJaW50JiBpbnRyZWZ7IGludHZhbCB9OwlpbnQgY29uc3QmJiBpbnRycmVmeyAxMjMgfTsKCQoJdGVzdGVyKGludHZhbCk7CQkvLyBsdmFsdWUgcmVmZXJlbmNlCQoJdGVzdGVyKGludHJlZik7CQkvLyBsdmFsdWUgcmVmZXJlbmNlCQkKCXRlc3RlcihpbnRycmVmKTsJCS8vIGx2YWx1ZSByZWZlcmVuY2UJCQkJCQkJCQkvLyBub3QgYSBzaW5nbGUgdHJ1ZSwgdGhhdHMgd3Jvbmcgc29tZWhvdwoJdGVzdGVyKHN0ZDo6bW92ZShpbnR2YWwpKTsJLy8gZmFsc2UKCXRlc3RlcihzdGQ6Om1vdmUoaW50cmVmKSk7CS8vIGZhbHNlCgl0ZXN0ZXIoc3RkOjptb3ZlKGludHJyZWYpKTsJLy8gZmFsc2UKCQoJcmV0dXJuIDA7Cn0=