为何什么都不显示(编译通过)

hellwolf 2002-07-16 01:22:24
#include <stdio.h>
#include <float.h>

template <class numT>
struct float_traits { };

struct float_traits<float> {
typedef float float_type;
enum { max_exponent = FLT_MAX_EXP };
static inline float_type epsilon(){
return FLT_EPSILON;
//不管用什么都不显示
printf("float_traits<float>/n");
//cout<<"flost_traits<float>"<<endl;
}
};

struct float_traits<double> {
typedef double float_type;
enum { max_exponent = DBL_MAX_EXP };
static inline float_type epsilon(){
return DBL_EPSILON;
//不管用什么都不显示
printf("float_traits<double>/n");
//cout<<"flost_traits<double>"<<endl;
}
};

template <class numT,class traits=float_traits<numT> >
class matrix {
public:
inline numT epsilon()
{return traits::epsilon();}
};

#include "f.h"

int main (){
matrix<float> f;
matrix<double> d;
f.epsilon();
d.epsilon();
}
...全文
39 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
hellwolf 2002-07-16
  • 打赏
  • 举报
回复
呵呵,对不起了,
犯病!!!!!!
poplarbird 2002-07-16
  • 打赏
  • 举报
回复
惊讶中
lemonway 2002-07-16
  • 打赏
  • 举报
回复
logic error
北极猩猩 2002-07-16
  • 打赏
  • 举报
回复
不是吧,这种问题也有?
关门兔 2002-07-16
  • 打赏
  • 举报
回复
你要显示什么?

static inline float_type epsilon(){
return FLT_EPSILON;//这里已经return了,下面的语句当然不能执行到了
//不管用什么都不显示
printf("float_traits<float>/n");
//cout<<"flost_traits<float>"<<endl;
}
wangran 2002-07-16
  • 打赏
  • 举报
回复
在printf("float_traits<float>/n");
//cout<<"flost_traits<float>"<<endl;
之前有return FLT_EPSILON;语句,根本就不会执行输出语句,把它放在return 语句之前就可以了。

69,373

社区成员

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

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