C++问题!,应该有难度吧!!!

langhaixin 2002-07-16 10:50:08
问题一.一模板函数,当其实例话后,能否确定它的template<class T>中传入的数据是C++内置的型别还是,class类型或者是一个容器。

问题二,一个模板类能否确定其实例化后是处理哪种类型?是C++内置的型别还是,class类型或者是一个容器。
...全文
57 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
finish 2002-07-24
  • 打赏
  • 举报
回复
up
Muf 2002-07-20
  • 打赏
  • 举报
回复
Mesopotamia(爱在西元前) 说的没错,直接用好啦。
我说的不过是原理。
Mesopotamia 2002-07-20
  • 打赏
  • 举报
回复
boost.type_traits里帮你做好啦,不要你累,呜。
Muf 2002-07-20
  • 打赏
  • 举报
回复
To: jinfeng_wang(CSDN,你的速度象蜗牛)
用上面的方法,你可以扩充以达到RTTI的功能,而不需要RTTI了。
(用不用operator()看大家意愿)
附:
这个方法是boost启发的。

Muf 2002-07-20
  • 打赏
  • 举报
回复
还一种是用辅助模板类来完成,如:
template <typename T>
class _isNative
{
static bool operator(){return false;}
};
template <int>
class _isNative
{
static bool operator(){return true;}
};
...
这样,你在程序中可以用
_isNative<int>()来识别了。
Muf 2002-07-20
  • 打赏
  • 举报
回复
一种是用typeid来识别
一种是用模板特化来完成: 例如:专为内置类型设计专用模板
招RD和QA 2002-07-20
  • 打赏
  • 举报
回复
boost::type_traits不是在所有的编译器上都能使用的
招RD和QA 2002-07-20
  • 打赏
  • 举报
回复
boost::type_traits不是在所有的编译器上都能使用的。
Mesopotamia 2002-07-20
  • 打赏
  • 举报
回复
楼上的话好古怪的说。
traits可以处理某个类型,也可以处理某一族类型。
boost.type_traits说明文档这么清楚,sgi stl里也大量使用的东东,也不是什么新玩意了。
langhaixin 2002-07-20
  • 打赏
  • 举报
回复
up!偶看的已经晕了!
myheart8541_cn 2002-07-20
  • 打赏
  • 举报
回复
厉害厉害,我的c++功力太低了!
我得努力了!!!
fatalerror99 2002-07-19
  • 打赏
  • 举报
回复
实例化后当然可以确定,想深入了解可以看《深入探索 C++ 对象模型》,《C++ Primer 中文版》也有所涉及,但不如上一本书深入。
maoliao 2002-07-17
  • 打赏
  • 举报
回复
用rtti机制的typeid操作符返回typeinfo类,所有类型信息都可得到
如:
cout<<typid(object).name<<endl;输出类型名
用dynamic_cast操作符可以得知运行时刻基类指针所指的实际对象的类型
liuns 2002-07-16
  • 打赏
  • 举报
回复
这和c++的编译器有密切的关系,编译器分析你的整个源文件后再决定你的实例化的模版类型。这方面的知识不是几句话就可以解释清楚的,如果你想深入的研究的话,可以看看《THE C++ PROGRAMMING》这本书。
babysloth 2002-07-16
  • 打赏
  • 举报
回复
可以。并且是在编译期进行(因此不用typeid)
处理这类问题的技术称为type_traits,您可以看看这里
http://www.c-view.org/tech/lib/boost/libs/type_traits/index.htm
lemonway 2002-07-16
  • 打赏
  • 举报
回复
built-in type就那么几种,typeid(T) == typeid(int) //char....

结贴…………

70,037

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧