title: 模版之AnyType
date: 2023-02-19 21:49:53
permalink: /pages/54a0bf/
categories:
在研究C++的编译期反射时,发现了AnyType很有意思。
首先可以看一下这个类AnyType。
struct AnyType {
template<typename T>
operator T();
};
初看,一个名叫AnyType的类声明了一个模版函数operator T()
。
如果进行实例化,就会可能是operator int()
。
operator int()
可能大部分人都没见过,这是C++都一个特性 —— 用户定义转换函数,即允许从类类型到其他类型的隐式转换或显式转换。
如果是类类型之间的转换,operator T()
可能不是一个好的选择。原因如下:
世上没有万金油,找到合适的场景就可以灵活运用!
reinterpret_cast
。