由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Programming版 - 请问这是什么错误呀
相关主题
C++ template questionc++ template question:
一个C++ template的问题a c++ question
C++ template question文一个简单的c++
C++ linking 弱问 (one file)谁给详细说一下这句
一个关于C++ template和overload的问题c++ template中如何判断类型
C++ template问个c++的template的问题
C++ template function typetemplate 疑问
Any difference between class and typename identifier?Cannot use my own container as the underlying container of a stack? (c++)
相关话题的讨论汇总
话题: ostream话题: float话题: template话题: const话题: typename
进入Programming版参与讨论
1 (共1页)
j*****k
发帖数: 1198
1
template
ostream& operator<<(ostream& os, const A& rhs)
{
return rhs.out(os);
};
error: passing ‘const A’ as ‘this’ argument of ‘std::ostream& A<
T>::out(std::ostream&) [with T = float]’ discards qualifiers
这儿T是float. A里面有funcion out(ostream& os)用来显示内容
A a(2);
cout<
p***o
发帖数: 1252
2
Is A::out const?

A<

【在 j*****k 的大作中提到】
: template
: ostream& operator<<(ostream& os, const A& rhs)
: {
: return rhs.out(os);
: };
: error: passing ‘const A’ as ‘this’ argument of ‘std::ostream& A<
: T>::out(std::ostream&) [with T = float]’ discards qualifiers
: 这儿T是float. A里面有funcion out(ostream& os)用来显示内容
: A a(2);
: cout<
j*****k
发帖数: 1198
3
ostream& out(ostream&);
没设const, 一定要设么

【在 p***o 的大作中提到】
: Is A::out const?
:
: A<

p***o
发帖数: 1252
4
Well, if it could be const, set it to const; if not,
change operator << to take a non-const A.

【在 j*****k 的大作中提到】
: ostream& out(ostream&);
: 没设const, 一定要设么

p****o
发帖数: 1340
5
it's a common mistake... the stl error msg is bad too.

【在 j*****k 的大作中提到】
: ostream& out(ostream&);
: 没设const, 一定要设么

j*****k
发帖数: 1198
6
yeah, got it, thanks

【在 p***o 的大作中提到】
: Well, if it could be const, set it to const; if not,
: change operator << to take a non-const A.

j*****k
发帖数: 1198
7
是呀,楞没搞明白这错误指的是什么

【在 p****o 的大作中提到】
: it's a common mistake... the stl error msg is bad too.
j*****k
发帖数: 1198
8
对了,operator**不能overload呀?

【在 j*****k 的大作中提到】
: yeah, got it, thanks
p***o
发帖数: 1252
9
yeah, but once you have more experience, you can figure it out
without reading the error message ...

【在 j*****k 的大作中提到】
: 是呀,楞没搞明白这错误指的是什么
p***o
发帖数: 1252
10
** ? I don't think there is such an operator.
What's your purpose? De-pointer twice or power?
The first one can be achieved using a proxy class.

【在 j*****k 的大作中提到】
: 对了,operator**不能overload呀?
相关主题
C++ templatec++ template question:
C++ template function typea c++ question
Any difference between class and typename identifier?文一个简单的c++
进入Programming版参与讨论
j*****k
发帖数: 1198
11
power呀,但是c++不让我作. 如果没有这个operator
怎么设**成power函数?

【在 p***o 的大作中提到】
: ** ? I don't think there is such an operator.
: What's your purpose? De-pointer twice or power?
: The first one can be achieved using a proxy class.

p***o
发帖数: 1252
12
hehe, you can only overload an existing one but you
cannot create a new one. Using pow is still elegant.

【在 j*****k 的大作中提到】
: power呀,但是c++不让我作. 如果没有这个operator
: 怎么设**成power函数?

j*****k
发帖数: 1198
13
不是用**习惯些么,再说了用pow得include cmath不是

【在 p***o 的大作中提到】
: hehe, you can only overload an existing one but you
: cannot create a new one. Using pow is still elegant.

p***o
发帖数: 1252
14

这些都跟c走,**是fortran的?^是basic的?

【在 j*****k 的大作中提到】
: 不是用**习惯些么,再说了用pow得include cmath不是
j*****k
发帖数: 1198
15
**是xp powertoy里面那个calculator的
当然其它语言也有,就不知道是哪个了

【在 p***o 的大作中提到】
:
: 这些都跟c走,**是fortran的?^是basic的?

j*****k
发帖数: 1198
16
对了,那个template constant expression parameter用的多不多?
怎么看怎么觉得捌扭
eg: template

【在 p***o 的大作中提到】
:
: 这些都跟c走,**是fortran的?^是basic的?

p***o
发帖数: 1252
17
int 常用,float/double 最好别用,char * 什么的太麻烦。

【在 j*****k 的大作中提到】
: 对了,那个template constant expression parameter用的多不多?
: 怎么看怎么觉得捌扭
: eg: template

j*****k
发帖数: 1198
18
总觉得还是写在body里面觉得顺眼些

【在 p***o 的大作中提到】
: int 常用,float/double 最好别用,char * 什么的太麻烦。
j*****k
发帖数: 1198
19
为什么float/double不好用呢,好象和int也没差多少
这些东西是public, private, 还是protected?

【在 p***o 的大作中提到】
: int 常用,float/double 最好别用,char * 什么的太麻烦。
p***o
发帖数: 1252
20
习惯了就好了,比如说编译时检查量纲,就要用到这个,具体参见
C++ Template Metaprogramming 3.1 。

【在 j*****k 的大作中提到】
: 总觉得还是写在body里面觉得顺眼些
相关主题
谁给详细说一下这句template 疑问
c++ template中如何判断类型Cannot use my own container as the underlying container of a stack? (c++)
问个c++的template的问题请教一下这个template function在gcc下要怎么修改
进入Programming版参与讨论
p***o
发帖数: 1252
21

据说是因为浮点数的内部表示问题,标准14.1直接说不行。
只在class内部可见,无所谓public/private/protected了。

【在 j*****k 的大作中提到】
: 为什么float/double不好用呢,好象和int也没差多少
: 这些东西是public, private, 还是protected?

p***o
发帖数: 1252
22

有点。
没看明白,你说啥?是不是这个:
14.1.2
There is no semantic difference between class and typename in
a template parameter. typename followed by an unqualified-id
names a template type parameter. typename followed by a
qualified name denotes the type in a non-type parameter
declaration. A storage class shall not be specified in a
template parameter declaration.

【在 j*****k 的大作中提到】
: 为什么float/double不好用呢,好象和int也没差多少
: 这些东西是public, private, 还是protected?

p***o
发帖数: 1252
23
No,都是一样的。我不明白你的istantiate指的啥。

class

【在 j*****k 的大作中提到】
: template
: ostream& operator<<(ostream& os, const A& rhs)
: {
: return rhs.out(os);
: };
: error: passing ‘const A’ as ‘this’ argument of ‘std::ostream& A<
: T>::out(std::ostream&) [with T = float]’ discards qualifiers
: 这儿T是float. A里面有funcion out(ostream& os)用来显示内容
: A a(2);
: cout<
j*****k
发帖数: 1198
24
呵呵,我搞错了

【在 p***o 的大作中提到】
: No,都是一样的。我不明白你的istantiate指的啥。
:
: class

t****t
发帖数: 6806
25
你能不能拿本书看看先啊。float根本不能作为模板参数。

【在 j*****k 的大作中提到】
: 为什么float/double不好用呢,好象和int也没差多少
: 这些东西是public, private, 还是protected?

d****2
发帖数: 6250
26

of course float can be template typename.
add const to member function "out" definition:
template
...inside class A...{
ostream &out(ostream & ) const {...}}


【在 t****t 的大作中提到】
: 你能不能拿本书看看先啊。float根本不能作为模板参数。
t****t
发帖数: 6806
27
我的意思是,float不能作为non-type template parameter
比如你可以写
template ....
但是你不能写
template ...

【在 d****2 的大作中提到】
:
: of course float can be template typename.
: add const to member function "out" definition:
: template
: ...inside class A...{
: ostream &out(ostream & ) const {...}}
:

1 (共1页)
进入Programming版参与讨论
相关主题
Cannot use my own container as the underlying container of a stack? (c++)一个关于C++ template和overload的问题
请教一下这个template function在gcc下要怎么修改C++ template
templateC++ template function type
c++ template specialization 参数Any difference between class and typename identifier?
C++ template questionc++ template question:
一个C++ template的问题a c++ question
C++ template question文一个简单的c++
C++ linking 弱问 (one file)谁给详细说一下这句
相关话题的讨论汇总
话题: ostream话题: float话题: template话题: const话题: typename