C++ 左值变右值

template<class T>
struct MyRemoveRef
{
	typedef T type;
};

void static_cast_test()
{
	std::string str = "hello";
	std::string str1 = "hello";
	std::string str2 = "hello";
	std::string str3 = "hello";


	//变右值方式1
	std::string test_str = static_cast<typename MyRemoveRef<std::string &&>::type &&> (str);

	//std::move也可以
	std::string test_str1 = std::move(str1);
	
	//变右值方式2
	std::string test_str2 = (static_cast<std::remove_reference_t<std::string> &&>(str2));

	//变右值方式3
	std::string test_str3 = static_cast<std::string &&> (str3);


	std::cout << "test_str:'" << test_str << "' and str: '" <<str <<"'" << std::endl;
	std::cout << "test_str1:'" << test_str1 << "' and str1: '" << str1 << "'" << std::endl;
	std::cout << "test_str2:'" << test_str2 << "' and str2: '" << str2 << "'" << std::endl;
	std::cout << "test_str3:'" << test_str3 << "' and str3: '" << str3 << "'" << std::endl;
}

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值