- #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::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);		tester(intref);			tester(intrref);										// not a single true, thats wrong somehow 
- 	tester(std::move(intval));		tester(std::move(intref));		tester(std::move(intrref)); 
-   
-   
-   
- 	return 0; 
- } 
				I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dHlwZWluZm8+Cgp0ZW1wbGF0ZTx0eXBlbmFtZSBUPgp2b2lkIHRlc3RlcihUJikKewoJc3RkOjpjb3V0IDw8ICJ0ZXN0ZXIoIiA8PCB0eXBlaWQoVCkubmFtZSgpIDw8ICImKTpcblx0bHZhbHVlIHJlZmVyZW5jZSAtICIgPDwgc3RkOjpib29sYWxwaGEgPDwKCQlzdGQ6OmlzX2x2YWx1ZV9yZWZlcmVuY2U8VD46OnZhbHVlIDw8ICJcblx0cnZhbHVlIHJlZmVyZW5jZSAtICIgPDwgc3RkOjppc19ydmFsdWVfcmVmZXJlbmNlPFQ+Ojp2YWx1ZSA8PCAnXG4nOwp9Cgp0ZW1wbGF0ZTx0eXBlbmFtZSBUPgp2b2lkIHRlc3RlcihUJiYpCnsKCXN0ZDo6Y291dCA8PCAidGVzdGVyKCIgPDwgdHlwZWlkKFQpLm5hbWUoKSA8PCAiJiYpOlxuXHRsdmFsdWUgcmVmZXJlbmNlIC0gIiA8PCBzdGQ6OmlzX2x2YWx1ZV9yZWZlcmVuY2U8VD46OnZhbHVlCgkJPDwgIlxuXHRydmFsdWUgcmVmZXJlbmNlIC0gIiA8PCBzdGQ6OmlzX3J2YWx1ZV9yZWZlcmVuY2U8VD46OnZhbHVlIDw8ICdcbic7Cn0KCmludCBtYWluKCkKewoJc3RkOjpjb3V0IDw8ICJIb3cgb24gRWFydGggdGhhdCBpc19ydmFsdWVfcmVmZXJlbmNlIGFuZCBpc19sdmFsdWVfcmVmZXJlbmNlIHdvcms/IVxuIjsKCWludCBpbnR2YWx7IDEyMyB9OwlpbnQmIGludHJlZnsgaW50dmFsIH07CWludCBjb25zdCYmIGludHJyZWZ7IDEyMyB9OwoJdGVzdGVyKGludHZhbCk7CQl0ZXN0ZXIoaW50cmVmKTsJCQl0ZXN0ZXIoaW50cnJlZik7CQkJCQkJCQkJCS8vIG5vdCBhIHNpbmdsZSB0cnVlLCB0aGF0cyB3cm9uZyBzb21laG93Cgl0ZXN0ZXIoc3RkOjptb3ZlKGludHZhbCkpOwkJdGVzdGVyKHN0ZDo6bW92ZShpbnRyZWYpKTsJCXRlc3RlcihzdGQ6Om1vdmUoaW50cnJlZikpOwoJCgkKCQoJcmV0dXJuIDA7Cn0=