- 1、本文档共32页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C++1y之美
祁 宇
主要内容
检查成员函数是否存在
函数缓存
实现一个http router
检查成员函数是否存在
templatetypename T
void foo(const T t) 编译期判断成员函数foo是否存在
{
if (t has foo)
t.foo();
else
编译期根据判断结果做分支选择
default();
}
检查成员函数是否存在
C++98/03的做法
templatetypename T
struct has_member_foo
{
templatetypename U, void(U::*)() struct SFINAE {};
templatetypename U static char check(SFINAEU, U::foo*);
templatetypename U static int check(...);
static const bool value = sizeof(checkT(0)) == sizeof(char);
};
struct MyStruct
{
void foo() { }
};
static_assert(has_member_fooMyStruct::value, true);
static_assert(has_member_fooint::value, false);
检查成员函数是否存在
C++11的做法
templatetypename T
struct has_member_foo11
{
private:
templatetypename U static auto check(int) -
decltype(std::declvalU().foo(), std::true_type());
templatetypename U static std::false_type check(...);
public:
enum { value = std::is_samedecltype(checkT(0)),
std::true_type::value };
};
检查成员函数是否存在
struct MyStruct
{
void foo() { }
};
static_assert(has_member_fooMyStruct::value, true);
static_assert(has_member_foo11MyStruct::value, true);
哪种写法更好?
检查成员函数是否存在
struct MyStruct
{
int foo() { }
};
static_assert(has_member_fooMyStruct::value, false); //静态断言
static_assert(has_member_foo11MyStruct::value, true);
限定了函数返回类型为void
templatetypename U, void(U::*)() struct SFINAE {};
没有限定返回类型
decltype(std::declvalU().foo(), std::true_type())
检查成员函数是否存在
more univers
您可能关注的文档
- 北京市政建设集团薪酬与考核体系调整建议(沟通版).pdf
- XX集团职能部门岗位业绩考核办法报告.pdf
- 公共部门人力资源绩效考核研究.pdf
- 国际代工企业之研究与发展以华硕及广达为例.pdf
- 实业集团管理咨询项目薪酬方案与绩效考核体系.pdf
- 第三章 研究发展与生产技术准备管理.pdf
- DTZ海航广州中央酒店广场项目写字楼及商场部分市场研究与发展初步思路成果报告.pdf
- 国外先进制造模式及管理研究与发展.pdf
- 2013煤矿安全质量标准化考核评级办法(试行).pdf
- 2013年某公司绩效考核全套流程表格.pdf
- 2021-2022年初级银行从业资格之初级银行管理考前冲刺试卷A卷含答案.pdf
- 2021-2022学年广西玉林市七年级(上)期末数学试题及答案解析 .pdf
- 2020高考化学一轮复习专题4-2 富集在海水中的元素-氯(教案)含答案.pdf
- 2021-2022学年二年级下学期期末考试数学试卷附答案解析 .pdf
- 2020年湖北省武汉市江汉区八年级(上)期中数学试卷 .pdf
- 2020迎国庆大型联欢晚会策划方案5篇 .pdf
- 2021-2022学年七年级上学期期末考试数学试卷及答案解析 (13).pdf
- 2020年河北省新一代信息技术研发及产业化专项资金申报指南 .pdf
- 2020-2026年中国农药中间体市场调研及发展趋势预测报告 .pdf
- 2021-2022年中级银行从业资格之中级个人理财强化训练试卷A卷附答案.pdf
文档评论(0)