avatar
g*a
1
【 以下文字转载自 NewYork 讨论区 】
发信人: gogopanda (您好), 信区: NewYork
标 题: 告诉您们怎么做好喝的梅茶
发信站: BBS 未名空间站 (Sun Feb 14 12:25:45 2010, 美东)
去超市买那种话梅,就是那种又酸又有点咸又有点甜的话梅,买一盒或是一包,
用开水泡一小时左右,然后冷藏
然后买那种ARIZONA的 SWEET TEA (要原味的)
把两种混合在一起,很好喝
比超市里直接买的梅子茶好喝
是的
avatar
K*o
2
出美国的话,是不是行李在出发机场check in就直接到终点了?
如果只在纽瓦克换个飞机,1小时40分钟够了吧?
avatar
i*1
3
Can anybody help me get this paper? thanks very much for the help.
Linear and Branched Poly(ω-hydroxyacid) Esters in Plant Cutins
Jos Graa*† and Pedro Lamosa‡
J. Agric. Food Chem., 2010, 58 (17), pp 9666–9674
avatar
a*y
4
【 以下文字转载自 PDA 讨论区 】
发信人: aaaty (阿fan提), 信区: PDA
标 题: Re: HP也出板子了,hoho
发信站: BBS 未名空间站 (Wed Feb 9 14:07:52 2011, 美东)
HP相框触摸卫生巾
avatar
r*s
5
在 template 里面,如何限定某个 class parameter 不能拷贝,只能移动?
例如下面的Baton类对象不能拷贝
template
class Holder {
Baton m_baton;
void Receive(Baton &&b)
{
m_baton = std::move(b);
}
}
avatar
s*y
6
TKS
avatar
k*y
7
avatar
a*y
8
iPhone mini, or no, HP Veer

【在 a***y 的大作中提到】
: 【 以下文字转载自 PDA 讨论区 】
: 发信人: aaaty (阿fan提), 信区: PDA
: 标 题: Re: HP也出板子了,hoho
: 发信站: BBS 未名空间站 (Wed Feb 9 14:07:52 2011, 美东)
: HP相框触摸卫生巾

avatar
h*c
9
first time see this move()thing, 赶快跑了
avatar
e*e
10
够了

【在 K****o 的大作中提到】
: 出美国的话,是不是行李在出发机场check in就直接到终点了?
: 如果只在纽瓦克换个飞机,1小时40分钟够了吧?

avatar
a*y
11
HP/Palm webOS的硬件和软件是最有Apple风格的。
没办法,前Apple的人搞出来的。

【在 a***y 的大作中提到】
: iPhone mini, or no, HP Veer
avatar
N*K
12
你不是已经写好了么?

【在 r***s 的大作中提到】
: 在 template 里面,如何限定某个 class parameter 不能拷贝,只能移动?
: 例如下面的Baton类对象不能拷贝
: template
: class Holder {
: Baton m_baton;
: void Receive(Baton &&b)
: {
: m_baton = std::move(b);
: }
: }

avatar
a*y
13
1024x768
如果iPad 2不提高分辨率,但从硬件角度来看,完全被iPad clones都淹没了啊,估计
iPad 2等于说就没有啥硬件亮点了。
更不要说Xoom的分辨率高于1024x768
iPhone 4的硬件虽然CPU速度这些不一定强过其他手机,但是分辨率和dpi一直是亮点啊。
前两天看到一部三星的OLED的Galaxy S,那个像素粗糙的,而且还有毛边感,LED都没
有这种感觉,不知为何这么多人青睐。

【在 a***y 的大作中提到】
: 【 以下文字转载自 PDA 讨论区 】
: 发信人: aaaty (阿fan提), 信区: PDA
: 标 题: Re: HP也出板子了,hoho
: 发信站: BBS 未名空间站 (Wed Feb 9 14:07:52 2011, 美东)
: HP相框触摸卫生巾

avatar
t*r
14
你的問題有點模糊
你想disable 哪種copy?
avatar
a*y
15
像带了一个塑料反光壳的iPad
或者,像是放大的iPhone 3GS

【在 a***y 的大作中提到】
: 【 以下文字转载自 PDA 讨论区 】
: 发信人: aaaty (阿fan提), 信区: PDA
: 标 题: Re: HP也出板子了,hoho
: 发信站: BBS 未名空间站 (Wed Feb 9 14:07:52 2011, 美东)
: HP相框触摸卫生巾

avatar
r*s
16
如果baton类里面定义了copy constructor,这里的move等于白搭。

【在 N******K 的大作中提到】
: 你不是已经写好了么?
avatar
i*o
17
microsoft太傻了。只要把windows 7改一改,做个触摸式的keyboard,那还不得一通江
湖啊!
avatar
r*s
18
还有几种copy? 定义了copy constructor 和 copy assign operator的类可以拷贝,
没定义或是删除了这两个函数的类不可拷贝。
我写这个模板的目的在于在一个系统中传递一个baton,比方说甲传给乙,此时乙手上
有接力棒,甲手上啥也没有。
但如果baton类是可拷贝的,甲乙手中都有一个baton的拷贝,这是不能容忍的。

【在 t**r 的大作中提到】
: 你的問題有點模糊
: 你想disable 哪種copy?

avatar
c*h
19
现在晚了吧,分一杯羹还是可以的。

【在 i*****o 的大作中提到】
: microsoft太傻了。只要把windows 7改一改,做个触摸式的keyboard,那还不得一通江
: 湖啊!

avatar
t*r
20
你必須去改那個類,
for your reference:
#include
#include
struct A {
std::string s;
A() : s("test") {}
A(const A& o) : s(o.s) { std::cout << "move failed!n";}
A(A&& o) : s(std::move(o.s)) {}
};
A f(A a) {
return a;
}
struct B : A {
std::string s2;
int n;
// implicit move contructor B::(B&&)
// calls A's move constructor
// calls s2's move constructor
// and makes a bitwise copy of n
};
struct C : B {
~C() {}; // destructor prevents implicit move ctor C::(C&&)
};
struct D : B {
D() {}
~D() {}; // destructor would prevent implicit move ctor D::(D&&)
D(D&&) = default; // force a move ctor anyway
};
int main()
{
std::cout << "Trying to move An";
A a1 = f(A()); // move-construct from rvalue temporary
A a2 = std::move(a1); // move-construct from xvalue
std::cout << "Trying to move Bn";
B b1;
std::cout << "Before move, b1.s = "" << b1.s << ""n";
B b2 = std::move(b1); // calls implicit move ctor
std::cout << "After move, b1.s = "" << b1.s << ""n";
std::cout << "Trying to move Cn";
C c1;
C c2 = std::move(c1); // calls the copy constructor
std::cout << "Trying to move Dn";
D d1;
D d2 = std::move(d1);
}

【在 r***s 的大作中提到】
: 如果baton类里面定义了copy constructor,这里的move等于白搭。
avatar
i*o
21
现在也不晚啊!
不同的客户群,对bussiness来说,windows的板子有无穷的吸引力。。。
对喜欢用盗版软件的客户群来说,那也是非买windows的板子不可的。。。

【在 c*****h 的大作中提到】
: 现在晚了吧,分一杯羹还是可以的。
avatar
r*s
22
好吧我没说明白,
http://www.stroustrup.com/bs_faq2.html#constraints
这个template将来是给别人用的,我当然可以在这里写注释
可是最好的办法是让编译器给报错。 Stroustrup给出了一些
例子。但是我不知道我这种情况怎么办

【在 t**r 的大作中提到】
: 你必須去改那個類,
: for your reference:
: #include
: #include
: struct A {
: std::string s;
: A() : s("test") {}
: A(const A& o) : s(o.s) { std::cout << "move failed!n";}
: A(A&& o) : s(std::move(o.s)) {}
: };

avatar
c*d
23
这就是为什么Win8要支持ARM处理器的缘故
avatar
h*0
24
cpp一般不能限定template arg的类型吧。换言之你最多要求是movable,不能要求不是
copable
如果你的某个类不允许拷贝,那就应该是那个类的定义里就不让。

【在 r***s 的大作中提到】
: 在 template 里面,如何限定某个 class parameter 不能拷贝,只能移动?
: 例如下面的Baton类对象不能拷贝
: template
: class Holder {
: Baton m_baton;
: void Receive(Baton &&b)
: {
: m_baton = std::move(b);
: }
: }

avatar
r*n
25
我也觉得三*的AMOLED看起来有毛边,但是一般距离下也不明显,好处在于看电影的效
果,色彩和黑度,另外4寸比3.5寸感官上还是大很多。

啊。

【在 a***y 的大作中提到】
: 1024x768
: 如果iPad 2不提高分辨率,但从硬件角度来看,完全被iPad clones都淹没了啊,估计
: iPad 2等于说就没有啥硬件亮点了。
: 更不要说Xoom的分辨率高于1024x768
: iPhone 4的硬件虽然CPU速度这些不一定强过其他手机,但是分辨率和dpi一直是亮点啊。
: 前两天看到一部三星的OLED的Galaxy S,那个像素粗糙的,而且还有毛边感,LED都没
: 有这种感觉,不知为何这么多人青睐。

avatar
h*0
26
这种需求感觉应该传一个unique_ptr

【在 r***s 的大作中提到】
: 还有几种copy? 定义了copy constructor 和 copy assign operator的类可以拷贝,
: 没定义或是删除了这两个函数的类不可拷贝。
: 我写这个模板的目的在于在一个系统中传递一个baton,比方说甲传给乙,此时乙手上
: 有接力棒,甲手上啥也没有。
: 但如果baton类是可拷贝的,甲乙手中都有一个baton的拷贝,这是不能容忍的。

avatar
a*y
27
不止有毛边
solid color中间感觉有很多小黑点。
也许我比较挑
但是我就是一般距离使用的。
毛边问题貌似没有见多少人提。

【在 r*********n 的大作中提到】
: 我也觉得三*的AMOLED看起来有毛边,但是一般距离下也不明显,好处在于看电影的效
: 果,色彩和黑度,另外4寸比3.5寸感官上还是大很多。
:
: 啊。

avatar
G*l
28
你那个Receive里面应该用std::forward而不是std::move。std::move把任何value都
cast成rvalue,比如你有
string a = ...;
holder.Receive(a);
cout << a << endl;
在后面再用a的时候就会出错,因为a的内容已经被你悄悄的move到m_baton里了,但是
你在外面还能继续用a。别人,或者未来的你自己,看代码不会知道你在receive里面做
了什么,后面继续用a的话运行时就会挂掉。
std::forward会把lvalue保持lvalue,rvalue保持rvalue。上面那段code如果Receive
里面是std::forward的话m_baton会被用a来copy construct。后面接着用a不会出错。
如果你是调用holder.Receive(some_func_return_string());的话,m_baton会使用
move constructor来构造。

【在 r***s 的大作中提到】
: 在 template 里面,如何限定某个 class parameter 不能拷贝,只能移动?
: 例如下面的Baton类对象不能拷贝
: template
: class Holder {
: Baton m_baton;
: void Receive(Baton &&b)
: {
: m_baton = std::move(b);
: }
: }

avatar
r*y
29
嗯。估计之前一直指望Intel。

【在 c**d 的大作中提到】
: 这就是为什么Win8要支持ARM处理器的缘故
avatar
h*0
30
你这个编不过的,Receive只接受右值

Receive

【在 G***l 的大作中提到】
: 你那个Receive里面应该用std::forward而不是std::move。std::move把任何value都
: cast成rvalue,比如你有
: string a = ...;
: holder.Receive(a);
: cout << a << endl;
: 在后面再用a的时候就会出错,因为a的内容已经被你悄悄的move到m_baton里了,但是
: 你在外面还能继续用a。别人,或者未来的你自己,看代码不会知道你在receive里面做
: 了什么,后面继续用a的话运行时就会挂掉。
: std::forward会把lvalue保持lvalue,rvalue保持rvalue。上面那段code如果Receive
: 里面是std::forward的话m_baton会被用a来copy construct。后面接着用a不会出错。

avatar
r*n
31
有人提,只是大家不觉得是deal breaker。
另外我只能说你视力很好。

【在 a***y 的大作中提到】
: 不止有毛边
: solid color中间感觉有很多小黑点。
: 也许我比较挑
: 但是我就是一般距离使用的。
: 毛边问题貌似没有见多少人提。

avatar
N*K
32
baton里面没有 move constructor(&&) 和 move operator=(&&) ?

【在 r***s 的大作中提到】
: 如果baton类里面定义了copy constructor,这里的move等于白搭。
avatar
G*l
33
哦,我看错了,以为他那个function是template的,没注意是class template。那样就
没有问题了,只能用rvalue调用。

【在 h*****0 的大作中提到】
: 你这个编不过的,Receive只接受右值
:
: Receive

avatar
N*K
34
A=std::move(B)
如果 object没有 move operator=(&&) 就执行的是 copy operator=(const &)

【在 r***s 的大作中提到】
: 好吧我没说明白,
: http://www.stroustrup.com/bs_faq2.html#constraints
: 这个template将来是给别人用的,我当然可以在这里写注释
: 可是最好的办法是让编译器给报错。 Stroustrup给出了一些
: 例子。但是我不知道我这种情况怎么办

avatar
G*l
35
对的。必须要有move。如果不想一个class被copy/assign可以把copy禁掉。这样至少试
图copy的时候compiler会报错

【在 N******K 的大作中提到】
: A=std::move(B)
: 如果 object没有 move operator=(&&) 就执行的是 copy operator=(const &)

avatar
N*K
36
设置成private 或者 =delete

【在 G***l 的大作中提到】
: 对的。必须要有move。如果不想一个class被copy/assign可以把copy禁掉。这样至少试
: 图copy的时候compiler会报错

avatar
r*s
37
对, 但是想更general 一些

【在 h*****0 的大作中提到】
: 这种需求感觉应该传一个unique_ptr
avatar
a*a
38
in c++ 11:
template
class Holder {
std::static_assert(!std::is_copy_constructible::value);
std::static_assert(std::is_move_constructible::value);
Baton m_baton;
void Receive(Baton &&b) { m_baton = std::move(b); }
}
any Baton passed that is copy constructible, or is not move constructible
should cause a compilation error.
disclaimer: I have not used these traits, so you probably need to fiddle to
make it work.
anyhow check out type_traits. I did similar things before c++11 where I had
to
declare a static const bool trait on "Baton" classes myself (on other
characteristics of course).

【在 r***s 的大作中提到】
: 在 template 里面,如何限定某个 class parameter 不能拷贝,只能移动?
: 例如下面的Baton类对象不能拷贝
: template
: class Holder {
: Baton m_baton;
: void Receive(Baton &&b)
: {
: m_baton = std::move(b);
: }
: }

avatar
a*a
39
or a fun way to do it, something along the line.
template bool copyable = std::is_copy_constructible::value>
class Holder {
Baton m_baton;
void Receive(Baton &&b) { m_baton = std::move(b); }
}
template
class Holder {
static_assert(false);
}
advantage is that it moves the clutter of static assertions out of the main
class body.
using the traits, you should not have to modify any of the Baton types.
disclaimer: not compiler tested. you likely need to fiddle.
avatar
N*K
40
m_baton = std::move(b); 用到的是operator=() 不是constructor

【在 a*********a 的大作中提到】
: in c++ 11:
: template
: class Holder {
: std::static_assert(!std::is_copy_constructible::value);
: std::static_assert(std::is_move_constructible::value);
: Baton m_baton;
: void Receive(Baton &&b) { m_baton = std::move(b); }
: }
: any Baton passed that is copy constructible, or is not move constructible
: should cause a compilation error.

avatar
a*a
41
then use: std::is_copy_assignable::value
http://www.cplusplus.com/reference/type_traits/
plus, hopefully, the copy assignment is done with the copy-swap idiom. :)

【在 N******K 的大作中提到】
: m_baton = std::move(b); 用到的是operator=() 不是constructor
avatar
r*s
42
Exactly what I want
Thanks

【在 a*********a 的大作中提到】
: in c++ 11:
: template
: class Holder {
: std::static_assert(!std::is_copy_constructible::value);
: std::static_assert(std::is_move_constructible::value);
: Baton m_baton;
: void Receive(Baton &&b) { m_baton = std::move(b); }
: }
: any Baton passed that is copy constructible, or is not move constructible
: should cause a compilation error.

相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。