当前位置: 首页 > wzjs >正文

如何自己做的网站网站还在建设中英文

如何自己做的网站,网站还在建设中英文,微信公众号网站制作,个人网站的制作方法关联点 都是执行转换(cast)的函数(函数模板),不产生任何可执行代码。且都可以把实参转换成右值。 std::move无条件将实参(const除外 )转换成右值引用,std::forward 条件返回右值引用 _EXPORT_STD template…

关联点

都是执行转换(cast)的函数(函数模板),不产生任何可执行代码。且都可以把实参转换成右值。
std::move无条件将实参(const除外 )转换成右值引用,std::forward 条件返回右值引用


_EXPORT_STD template <class _Ty>
_NODISCARD _MSVC_INTRINSIC constexpr remove_reference_t<_Ty>&& move(_Ty&& _Arg) noexcept {return static_cast<remove_reference_t<_Ty>&&>(_Arg);
}

_EXPORT_STD template <class _Ty>
_NODISCARD _MSVC_INTRINSIC constexpr _Ty&& forward(remove_reference_t<_Ty>& _Arg) noexcept {return static_cast<_Ty&&>(_Arg);
}_EXPORT_STD template <class _Ty>
_NODISCARD _MSVC_INTRINSIC constexpr _Ty&& forward(remove_reference_t<_Ty>&& _Arg) noexcept {static_assert(!is_lvalue_reference_v<_Ty>, "bad forward call");return static_cast<_Ty&&>(_Arg);
}

_EXPORT_STD template <class _Ty>
struct remove_reference {using type                 = _Ty;using _Const_thru_ref_type = const _Ty;
};template <class _Ty>
struct remove_reference<_Ty&> {using type                 = _Ty;using _Const_thru_ref_type = const _Ty&;
};template <class _Ty>
struct remove_reference<_Ty&&> {using type                 = _Ty;using _Const_thru_ref_type = const _Ty&&;
};_EXPORT_STD template <class _Ty>
using remove_reference_t = typename remove_reference<_Ty>::type;

先去引用,然后转换成右值

区别

1. 用途不同

  • std::move
    无条件将左值转换为右值引用,表示对象资源可被“移动”。用于触发移动构造函数或移动赋值运算符,避免深拷贝。
    示例:
std::string s1 = "Hello";
std::string s2 = std::move(s1); // s1 的资源被移动到 s2,s1 不再有效
  • std::forward
    有条件地保持值类别(左值/右值),用于完美转发。通常与万能引用(T&&)配合,在泛型代码中保持参数的原始类型。
    示例:
template<typename T>
void wrapper(T&& arg) {callee(std::forward<T>(arg)); // 保持 arg 的原始值类别
}

2. 转换条件

  • std::move
    无论输入是左值还是右值,始终返回右值引用。
auto rval = std::move(lval); // 无条件转为右值
  • std::forward
    根据模板参数 T 的类型决定转换行为:
forward<T>(arg); // 类型 T 决定结果
- 若 `T` 是左值引用(如 `int&`),返回左值引用。  
- 若 `T` 是非引用或右值引用(如 `int` 或 `int&&`),返回右值引用。

3. 实现机制

  • std::move** 实现**
template<typename T>
constexpr typename std::remove_reference<T>::type&& move(T&& t) noexcept {return static_cast<typename std::remove_reference<T>::type&&>(t);
}

直接通过 static_cast 将输入转换为右值引用。

  • std::forward** 实现**
template<typename T>
constexpr T&& forward(typename std::remove_reference<T>::type& t) noexcept {return static_cast<T&&>(t);
}

根据 T 的类型推断结果,决定返回左值或右值引用。


4. 应用场景

  • 使用 std::move 的场景
    • 需要明确转移对象资源所有权时(如实现移动构造函数)。
    • 避免拷贝开销,例如将局部变量移动到容器中:
std::vector<std::string> vec;
std::string s = "data";
vec.push_back(std::move(s)); // 移动而非拷贝
  • 使用 std::forward 的场景
    • 泛型函数模板中转发参数,保持其原始值类别:
template<typename... Args>
void emplace(Args&&... args) {container.emplace_back(std::forward<Args>(args)...); // 完美转发参数包
}

总结

特性std::movestd::forward
目的强制转为右值,触发移动语义保持参数原始值类别,完美转发
转换条件无条件依赖模板参数 T
典型应用移动构造函数、避免拷贝泛型代码中的参数转发
参数类型接受任意类型通常与万能引用 T&& 配合使用

补充:

//拷贝构造

MyStruct(const Mystruct &)

{

}

//移动构造

Mystruct( Mystruct &&) // 无const

{

}
万能引用:
T&&


文章转载自:

http://Ig6uuoCY.qxLhj.cn
http://QwFYPSqo.qxLhj.cn
http://AQsM9NNl.qxLhj.cn
http://lKK2OMn0.qxLhj.cn
http://rgjEzUdC.qxLhj.cn
http://k25oxyax.qxLhj.cn
http://SHgbxgqR.qxLhj.cn
http://lW9Xj582.qxLhj.cn
http://I2DS5OND.qxLhj.cn
http://b9Fdo7bW.qxLhj.cn
http://4YmbNIbX.qxLhj.cn
http://RFf7qsQK.qxLhj.cn
http://UBvHDDIT.qxLhj.cn
http://Q3tAOWOM.qxLhj.cn
http://8sj6gQYO.qxLhj.cn
http://SRBBc7O8.qxLhj.cn
http://PYtE7bVA.qxLhj.cn
http://DHOrIbeB.qxLhj.cn
http://1Bs9yU51.qxLhj.cn
http://uYi4XmPx.qxLhj.cn
http://SsL4gyvs.qxLhj.cn
http://klM2OR6O.qxLhj.cn
http://SyoLAGA5.qxLhj.cn
http://lRvpL0dB.qxLhj.cn
http://wMyH15Sd.qxLhj.cn
http://Dredy3Wb.qxLhj.cn
http://0HOpUufp.qxLhj.cn
http://kfiCLfx2.qxLhj.cn
http://ERibrrSS.qxLhj.cn
http://Kjcc1KwV.qxLhj.cn
http://www.dtcms.com/wzjs/684148.html

相关文章:

  • 正规的app网站开发信誉楼线上商城小程序
  • 中国宣布取消新冠免费治疗沈阳seo关键词排名优化软件
  • 做淘客网站哪个cms好视频网站做游戏分发
  • 网站开发框架技术网站开发前端后端
  • 商品展示类网站源码书籍教你如何做网站
  • 网站设计方案大全如何把网站建设成营销型网站
  • 编制网站建设策划书沧州百胜信息技术有限公司
  • 永康企业网站建设wordpress做微信小程序
  • 萝岗区营销型网站建设网站建设互联
  • 免费做英文网站wordpress 音乐电台
  • 备案 添加网站qq推广网站
  • 建站费用参考网页访问自动跳转中
  • 邯郸网站建设做公司网站后台登录地址
  • 四川建设招投标网站新东方烹饪学校学费价目表
  • 建设网站工作内容排版 网站
  • 浙江省建设注册管理中心网站首页网页设计这个行业怎么样
  • 网站获利模式wordpress怎么切换中文
  • 四川城乡建设厅官方网站高端外贸网站建设
  • 成都建设网站标化最新表格建设银行国际互联网网站
  • 模板做的网站如何下载地址建设网站的经验
  • 网站后台怎么做钟楼做网站
  • 做众筹网站有哪些提供网站建设出售
  • 做网站全是别人的链接网站设计论文答辩问题及答案
  • 营销推广型网站公司台州网页设计
  • 湘潭城乡建设发展集团网站什么是网络营销战略
  • 咸阳网站建设seoseo 推广怎么做
  • 南川网站建设公司网络传奇游戏
  • 做网站怎么导入源码个人主页静态网站
  • 建设积分兑换商城网站网站管理是什么
  • 郑州网站建设创业做设计必看十大网站