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

地方房产网站APP如何做市场调研的五个步骤

地方房产网站APP如何做,市场调研的五个步骤,欧洲站vat激活,成人本科报名费一般多少钱1 SFINAE。 2 条件特化。可用作额外的函数参数&#xff08;不可应用于运算符重载&#xff09;、返回类型&#xff08;不可应用于构造函数与析构函数&#xff09;&#xff0c;或类模板或函数模板形参。 函数参数&#xff1a; #include <iostream> #include <type_tra…

1 SFINAE。

2 条件特化。可用作额外的函数参数(不可应用于运算符重载)、返回类型(不可应用于构造函数与析构函数),或类模板或函数模板形参。

函数参数:

#include <iostream>
#include <type_traits>
using namespace std; template <typename T>
T  addT(T  value, typename std::enable_if<std::is_integral<T>::value, T>::type* = nullptr)
{return value + 10;
}template <typename T>
T  addT(T value, typename std::enable_if<std::is_floating_point<T>::value, T>::type* = nullptr)
{return value + 5;
}int  main()
{int d = 10;double f = 20;d = addT(d);f = addT(f);return 0;}

单独看这个例子是比较模糊,因为编译器做了自动补充:d = addT(d, nullptr);通过如下网站可以展开上面代码

C++ Insights

#include <iostream>
#include <type_traits>
using namespace std;template<typename T>
T addT(T value, typename std::enable_if<std::is_integral<T>::value, T>::type *)
{return operator+(value, 10);
}/* First instantiated from: insights.cpp:22 */
#ifdef INSIGHTS_USE_TEMPLATE
template<>
int addT<int>(int value, typename std::enable_if<std::is_integral<int>::value, int>::type *)
{return value + 10;
}
#endiftemplate<typename T>
T addT(T value, typename std::enable_if<std::is_floating_point<T>::value, T>::type *)
{return operator+(value, 5);
}/* First instantiated from: insights.cpp:23 */
#ifdef INSIGHTS_USE_TEMPLATE
template<>
double addT<double>(double value, typename std::enable_if<std::is_floating_point<double>::value, double>::type *)
{return value + 5;
}
#endifint main()
{int d = 10;double f = 20;d = addT(d, nullptr);f = addT(f, nullptr);return 0;
}

函数返回值:

#include <type_traits>
#include <iostream>template <typename T>
typename std::enable_if <std::is_integral<T>::value, T>::type  addT(T value)
{return value + 10;
}template <typename T>
typename std::enable_if <std::is_floating_point<T>::value, T>::type  addT(T value)
{return value + 5.0;
}int main()
{int d = 10;double f = 20;d = addT(d);  //d = 20f = addT(f);  //f = 25.000000000return 0;
}

std::is_integral 用法参考:https://cplusplus.com/reference/type_traits/is_integral/

编译展开后的代码如下:

#include <type_traits>
#include <iostream>template<typename T>
typename std::enable_if<std::is_integral<T>::value, T>::type addT(T value)
{return value + 10;
}/* First instantiated from: insights.cpp:20 */
#ifdef INSIGHTS_USE_TEMPLATE
template<>
typename std::enable_if<std::is_integral<int>::value, int>::type addT<int>(int value)
{return value + 10;
}
#endiftemplate<typename T>
typename std::enable_if<std::is_floating_point<T>::value, T>::type addT(T value)
{return value + 5.0;
}/* First instantiated from: insights.cpp:21 */
#ifdef INSIGHTS_USE_TEMPLATE
template<>
typename std::enable_if<std::is_floating_point<double>::value, double>::type addT<double>(double value)
{return value + 5.0;
}
#endifint main()
{int d = 10;double f = 20;d = addT(d);f = addT(f);return 0;
}

模版类特化:

#include <type_traits>
#include <iostream>template <typename T, typename Enable = void>
class MyTestClass
{// 默认实现,适用于所有类型
public:MyTestClass() {std::cout << "default";}
};template <typename T>
class MyTestClass<T, typename std::enable_if<std::is_integral<T>::value>::type>
{// 整型类型的特化实现
public:MyTestClass() {std::cout << "int";}
};template <typename T>
class MyTestClass<T, typename std::enable_if<std::is_floating_point<T>::value>::type>
{// 浮点型类型的特化实现
public:MyTestClass() {std::cout << "float";}
};
int main()
{MyTestClass<std::string>  x1;// OK :匹配初等模板MyTestClass<int>  x2;        // OK :匹配偏特化 int MyTestClass<double>  x3;     // OK :匹配偏特化 doublereturn 0;
}

模版展开后代码如下:

#include <type_traits>
#include <iostream>template<typename T, typename Enable = void>
class MyTestClass
{public: inline MyTestClass(){std::operator<<(std::cout, "default");}};/* First instantiated from: insights.cpp:35 */
#ifdef INSIGHTS_USE_TEMPLATE
template<>
class MyTestClass<std::basic_string<char>, void>
{public: inline MyTestClass(){std::operator<<(std::cout, "default");}};#endif
/* First instantiated from: insights.cpp:36 */
#ifdef INSIGHTS_USE_TEMPLATE
template<>
class MyTestClass<int, void>
{public: inline MyTestClass(){std::operator<<(std::cout, "int");}};#endif
/* First instantiated from: insights.cpp:37 */
#ifdef INSIGHTS_USE_TEMPLATE
template<>
class MyTestClass<double, void>
{public: inline MyTestClass(){std::operator<<(std::cout, "float");}};#endiftemplate<typename T>
class MyTestClass<T, typename std::enable_if<std::is_integral<T>::value>::type>
{public: inline MyTestClass(){std::operator<<(std::cout, "int");}};template<typename T>
class MyTestClass<T, typename std::enable_if<std::is_floating_point<T>::value>::type>
{public: inline MyTestClass(){std::operator<<(std::cout, "float");}};int main()
{MyTestClass<std::basic_string<char>, void> x1 = MyTestClass<std::basic_string<char>, void>();MyTestClass<int, void> x2 = MyTestClass<int, void>();MyTestClass<double, void> x3 = MyTestClass<double, void>();return 0;
}

参考文档:

https://cplusplus.com/reference/type_traits/is_integral/

std::enable_if - cppreference.com

C++之std::enable_if_std enable if-CSDN博客

C++模板编程 | `std::enable_if` 和 SFINAE_模板类 std::enable-CSDN博客

http://www.15wanjia.com/news/12410.html

相关文章:

  • 如何做高端网站建设网页模板
  • 2017湖北建设教育协会网站关键词怎么写
  • 机械免费网站制作今天刚刚发生的重大新闻
  • 给一个公司做网站维护域名seo查询
  • 保定哪有做网站的百度电话人工服务
  • 宝塔里面一个服务器做多个网站百度网址大全简单版
  • 最容易被收录的网站百度seo优化推广公司
  • 如何把自己写的html变成网站百度小说排行榜
  • 做php网站搜索app下载
  • 网站中间内容做多大尺寸的每日军事新闻
  • 青岛logo设计价格seo公司费用
  • h5网站用什么软件做建站工具
  • 免费php源码资源网seo如何优化排名
  • 做网站设计网站建设推广百度推广登录账号首页
  • 做企业网站有什么好处今日热搜头条
  • 网站建设出题上海优化公司
  • 给一个网站怎么做安全测试怎么建立自己的网站
  • 龙岩网站设计 都找推商吧系统平台交易网
  • 做基础工程分包应上什么网站怎样给自己的网站做优化
  • 网站建设那个公司好谷歌seo关键词排名优化
  • 网站建设中英文表述百度指数介绍
  • 电子商务网站建设与维护郑州千锋教育培训机构怎么样
  • 寿光建设银行网站域名解析查询工具
  • 黄石下陆区建设局网站精准防控高效处置
  • 2022年中国企业500强seo网络推广知识
  • 做游戏的av迅雷下载网站有哪些在线代理浏览国外网站
  • 什么网站可下载可做海报的图片万维网域名注册查询
  • 做网站要用框架吗外贸平台
  • 企业网站建设制作多少钱网络软文广告
  • 做自媒体一般都注册几个网站百度推广有效果吗