Redian新闻
>
问个C++的operator conversation function问题
avatar
q*x
2
3块一封信有点贵啊。八千人,按两千人头算,一人9刀有一万八,捐给NIU是不是更好
avatar
s*t
3
第十一卷 真仙降世 第两千两百八十六章 修罗之战(五)
更加诡异的一幕出现了。
五口晶莹长剑晶光一闪,一股法则波动一现而出,两座山峰一颤下,蓦然向后激垩
射而回。
当爆鸣再一次响起后,两座山峰一个模糊的出现在韩立上空处,恶狠狠的一砸而下。
韩立神念连连催动下,竟无法沟通二宝的让它们停下,一时间和两座极山间彻底断
开了联系似的。
韩立心中一凛,但是面上丝毫异色未现,所化巨猿两只大手忽然一抬,五指一分的
向两座极山轻轻一拍而去。
两只大手拍出去的一瞬间,手心中银光闪动,一层层银色纹阵浮现而出,并一下叠
加了十几层的模样。
“轰”“轰”传出两声惊天动地的巨响!
巨猿身前两道飓风冲天而起,附近虚空一阵海啸般的震荡而起。
但两座极山在两股惊人巨力一推下,硬生生的停了下来,但马上银光一闪,凭空的
消失在了虚空之中。
韩立在手掌方一接触两座极山的瞬间,心神就重新恢复了和二宝的联系,并二话不
说的将它们立刻收了起来。
这时候,远处的奕姓老者,仍任凭五口晶剑悬浮在身前,保持原先姿势的一动不动
,竟没有趁此机会再发动什么攻击。
韩立所化巨猿才再次抬首向远处老者望了一眼,忽然说出了一句让其脸色微变的话
来:
“时间神通,你竟然能催使此法则之力。不过应该是借助外力才能施展的话,否则
不会动用的这般勉强了。”
“哼,时间法则是何等大神通,就算只能动用些皮毛,也足以立于不败之地了。道
友一眼就认了出来,莫非以前在什么地方已经见识过同样的法则之力了。”老者所化的
禽首怪物,目中凶光一闪,冷哼一声的反问道。
接着他一根手指冲身前一点,五口晶剑一声嗡鸣的颤抖了几下,那股出现的法则波
动才从附近一下溃散而灭。
韩立所化巨猿盯着这五口晶剑不放,神念一扫后,脸上露出了一丝如了然之色,冷
笑一声,口吐人言的说道:
“韩某以前的确曾经在其他地方,见识过相同的法则神通一二。但这一次来到此界
,本以为那些修罗蛛才能够催使一些时间神通,没想到阁下竟然也能够做到此事。看来
道友留在这里时间不算短了,并且深得这些修罗蛛的信任,否不可能得到这种天大好处
吧!不过,道友以为这点时间神通就能作为依仗的话,可是大错特错了。”
话音刚落!
巨猿两手一捶胸膛,体表紫金之光大放,身形竟瞬间的再次巨大狂涨,转眼间就化
为了百丈之巨。
更惊人的是,此巨猿再一张口,口中霞光一闪,忽然喷出数颗五颜六色的光球来。
这些光球围着巨猿滴溜溜的一转后,从中顿时传出清鸣低吼声,数种强大气息一散
而出,再一闪之后,就一下幻化出了天龙,彩凤、青鸾,雷鹏等数种不同巨大虚影来。
巨猿自己则扬首一声长啸,体表顿时一层层紫金鳞片涌现而出,肩头两侧和肋下处
则一个模糊后,分别长出了另外两颗狰狞头颅和四条紫金长臂来。
三颗巨猿头颅六目同时一睁而开后,额头处光芒闪动,还各自生出一只淡银色短角
来。
韩立在知道对手竟然能够施展时间之力后,终于不敢怠慢的施展了梵圣真魔功,幻
化出了涅盘圣体,并一下就催动到了极致。
三元涅盘变身后的韩立,肉身几乎强横到了一个即使大乘存在也会刚到恐怖的地步
,三颗头颅咧嘴一笑下,六条手臂一个模糊,忽然幻化出无数幻影的冲对面狂击而出。
刹那间,呼啸声大起!
密密麻麻的金色拳影在虚空中浮现而出,狂闪之下,又直接一模糊的消失无影了。
下一刻,奕姓老者老者四周波动大起,金色拳影一层层的狂涌而出,化为团团金光
的齐往中心处狂砸而来。
奕姓老者大惊失色,禽首一声刺耳的长鸣发出,两手车轮般的飞快一掐法决,身前
五口晶剑顿时滴溜溜的飞快旋转而起。
一个模糊后,这五口晶剑化为了一层五色的晶莹光幕,将老者身躯从头到脚的全护
了个严严实实,同时淡淡符文一散现货,先前消失的法则波动又一现而出。
刹那间,以老者为中心方圆十几丈法则之力笼罩的范围内,所有出现的拳影全一凝
的停在了虚空中,但是后面攻击却不受影响的击在了前者之上。
五色光幕之外,一下轰隆声大起,一团团举行金光瞬间爆裂而开,化为一轮轮剧烈
冲击,拼命向光幕方向狂卷而去。但是这些攻击方一接近‘光幕的时候,全都冻结般的
凝固在虚空中。
一时间,只见五色光幕外仿佛出现一片环形的无形之墙,无论金色拳影本身还是爆
裂形成的各攻击全都被硬生生的挡在了外面。
金色拳影蕴含的威能实在惊人,并且在巨猿六条手臂狂挥之下,数量之多也远超常
人所能想象的。
不过两三个呼吸间的工夫,四周爆裂形成的冲击,几乎化为一层层耀眼金浪,一波
波的不停冲击着中心处的一切。
一股让奕姓老者也为之心颤的恐怖灵压,正在以其为中心的飞快聚集而起。
老者一下脸色有些发青了。
就在这时,五色光幕开始微微颤抖起来,四周凝固的金色拳影也不稳的闪耀而起,
并传出嘎嘣的脆响声。
这一下,老者再也无法无动于衷了,一声低喝后,两手法决一变,身前光幕散发的
波动忽然一缩,一下将光幕外笼罩范围缩小了近半之多,同时又一张口,喷出了数团碧
绿精血。
这些精血一个闪动后,就化为数个碧绿色符文,一个模糊的没入光幕中不见了。
一阵嗡鸣后,原本颤抖的光幕一下恢复了平稳。
四周有些崩溃的虚空,也一凝的恢复了正常,一时间将四周紧逼的金色波浪,硬生
生的抵挡住了。
奕姓老者目睹这一切,才稍松了一口气,但口中却丝毫不停的开始念念有词。
光幕中淡淡符文涌现而出,隐约有五道剑影重新要幻化而出的样子。
但对面,韩立所化巨猿忽然一条手臂一顿的停止了挥动,再一个翻转下,手中绿光
一闪后,一口墨绿色长剑一下显现而出,表面还铭印着几个淡银色的不知名古文。
手腕微微一抖!
墨绿木剑表面顿时一层晶光闪动,同时方圆数里内的天地元气一颤后,就化为一缕
缕艳丽光霞的往其中狂涌而入。
墨绿木剑一个模糊后,顿时在狂闪中疯狂巨涨变大,顷刻间就化为了百丈之巨,并
在巨猿手臂一粗之下,毫不犹豫的冲对面虚空一斩而出。
“噗嗤”的一声,金银符文飘动下,一道银色的巨型月牙从墨绿木剑上激垩射,一
个闪动后,就从密密麻麻拳影中一掠而过,直接没入那一片法则之力笼罩的虚空中。
诡异的一幕出现了!
银色月牙只是灵光一闪,竟然视若无睹的从那片法则笼罩虚空洞穿而过,并在奕姓
老者脸色一白的眼神中,闪电般斩在了五色光幕上。
轰的一声巨响!
巨型月牙只是一颤,就化点点银芒的爆裂而开。
另一股更加强大法则之力一个卷动下,就将光幕中蕴含的时间法则硬生生一撕而开
,并化为一团银色光晕的彻底引爆而开。
刹那间,两股法则之力的交织缠绕一起,在各种怪异尖鸣声中,光晕也仿佛雪球般
的迅速狂涨巨大,转眼间竟化为了数亩般大小。
四周各种剧烈波动疯狂涌现,凭空幻化出一道道巨龙般飓风,几乎将大半天空全都
搅动到了里面。
而巨猿斩出这一击后,原本山岳般的庞大身躯,只是光芒一闪,就一下啊缩小了大
半之多,但是身上气息却丝毫不减,反而面上一丝厉色闪过后,所有手臂一停后,六只
手掌一动的全抓在了那口墨绿巨剑之上,并一声低吼的再次一挥手中之物。破空声一响!
这一次从墨绿木剑飞出的不再是银色月牙,而是一道绿蒙蒙的剑气。
不过这剑气方一飞出的瞬间,就一个晃动的品共出现在了银色光晕正上方,一个盘
旋后,忽然一弯的幻化成一枚巨大刃环。
这刃环足有里许大小,边缘两侧看似锋利无比,通体翠绿欲滴,并散发出强烈的法
则波动。
巨猿三颗头颅眉宇处同时黑光一闪,各自现出一只漆黑如墨的妖目,接着数手臂同
时一抬,竟用一根手指凝重的冲远处虚空一点,同时口吐一个森然的“斩”字。
“噗”的一声!
刃环表面银色符文一现后,就忽然一个模糊的在高空消失了。
但马上下边银色光晕附近波动一起,翠绿刃环无声无息的浮现而出,正好将银色光
晕从中间一套其中。
森然寒光一闪,光环骤然一缩,就化为一道虚影的不见了踪影。
而银色光晕中间处轰鸣声大作,一道绿线却缓缓浮现,并从中喷出微弱之极的白光
来。
整个光晕竟从中间被那刃环硬生生的一切而开,分成了上下两部分。【未完待续。
如果您喜欢这部作品,欢迎您来起点◣起点首发◥投推荐票、月票,您的支持,就是我
最大的动力。】
avatar
a*y
4
AirPlay Mirroring
Multitasking gestures
Hourly Weather Forecasts
new iPad music app
Wifi Sync with iTunes
better PDF support
avatar
r*g
5
struct S{
S(int){}
};
struct SS{
int m;
SS(int x): m(x){}
explicit operator S(){return S(m);}
};
void f(S s){}
int main()
{
SS ss(1); // ok; 默认构造函数
S s1 = ss; // 错误; 拷贝构造函数不能使用显式转换
S s2(ss); // ok; 直接构造函数可以使用显式转换 ???
// 为什么? 这里难道不是 S s2(static_cast(ss))吗???
// 而且我的理解这里是先ss转成S型的临时变量
// 然后调用copy constructor
// 为什么说这里是直接构造函数?
f(ss); // 错误; 从SS向S的转换必须是显式的.
// 译注: 强制类型转换也可使用显式转换,例如
// S s3 = static_cast(ss);
return 0;
}
原文出处:
https://www.chenlq.net/books/cpp11-faq/cpp11-faq-chinese-version-series-expl
icit-conversion-operator.html
参考文献有一有意思的东西:
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2333.h
里面有一段说:
Modify 12.3.2 class.conv.fct paragraph 2 as indicated:
A conversion function may be explicit (7.1.2 dcl.fct.spec), in which case it
is only considered as a user-defined conversion where the direct- initiali
zation syntax (8.5 dcl.init) or where casts (5.2.9 expr.static.cast, 5.4 ex
pr.cast) are used. Otherwise, user-defined User-defined conversions are not
restricted to use in assignments and initializations.
[ Example:
class Y { };
struct Z {
explicit operator Y() const;
// ...
};
void h(Z z) {
Y y1(z); // ok: direct-initialization 这里也是对的, 为啥啊?
// 为什么不是Y y1(static_cast(z)); ?
Y y2 = z; // ill-formed: copy-initialization 这个我能理解
// 应该改成y2 = static_cast(z);
Y y3 = (Y)z; // ok: cast notation
}
void g(X a, X b)
{
int i = (a) ? 1+a : 0;
int j = (a&&b) ? a+b : i;
if (a) { // ...
}
}
-- end example ]
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
【 】 Ctrl-Q 求救 状态 [插入][2,1][ ][ ] 时间【Sun Jun 7 16:27】※ 来源:·BBS 未名空间站 网址:mitbbs.com 移动:在应用商店搜索未名空间·[FROM: 173.]
avatar
s*m
6
会不会太咸?小朋友还是尽量给淡点的吃比较好。
avatar
s*g
7
no

【在 q****x 的大作中提到】
: 3块一封信有点贵啊。八千人,按两千人头算,一人9刀有一万八,捐给NIU是不是更好
: ?

avatar
a*o
8
haha,you beat me by 10 seconds.
avatar
a*y
9
支持iPhone 3GS
最近两代iPod touch

【在 a***y 的大作中提到】
: AirPlay Mirroring
: Multitasking gestures
: Hourly Weather Forecasts
: new iPad music app
: Wifi Sync with iTunes
: better PDF support

avatar
A*e
10
以下两个是不一样的。前者叫direct initialization,后者叫copy initialization。
copy init不能用显示转换,就像你注释里解释的那样。
S s(ss);
S s = ss;
另外f(ss)也是copy init
Copy-initialization is less permissive than direct-initialization: explicit
constructors are not converting constructors and are not considered for copy
-initialization.
http://en.cppreference.com/w/cpp/language/copy_initialization

【在 r*g 的大作中提到】
: struct S{
: S(int){}
: };
: struct SS{
: int m;
: SS(int x): m(x){}
: explicit operator S(){return S(m);}
: };
: void f(S s){}
: int main()

avatar
w*t
11
月月妈,为什么要吃这个啊,我从来不爱吃,太不好咬

【在 az 的大作中提到】
: 谢谢
avatar
f*n
12
花了9刀.没人缺这9刀吧.
avatar
s*t
13
MD,20秒钟看完
avatar
o*l
14
iTunes tone store...

【在 a***y 的大作中提到】
: AirPlay Mirroring
: Multitasking gestures
: Hourly Weather Forecasts
: new iPad music app
: Wifi Sync with iTunes
: better PDF support

avatar
r*g
15
to AlphaCode 你看看我理解的对不对
感觉我这种半路出家的半吊子学C++坑太多了
以前认为C很多坑
现在觉得C++不仅继承了C的坑, 还挖了很多新的坑
我发现我C++的很多基本概念还没弄明白
常年把C++当C在用

// 所以不会有任何问题
// 首先: 根据链接:
http://en.cppreference.com/w/cpp/language/explicit
解释:
explicit operator type ( ) (since C++11)
specifies that this user-defined conversion function is only considered f
or direct initialization (including explicit conversions)
所以explicit operator S(){return S(m);}这个用户自定义转换函数只能用于direct
init,但是这里S s1 = ss; 不是direct init而是copy init:
我臆测为什么不是direct init:
因为direct init需要一个对应的S::S(SS)构造函数, 但是在S的定义中这个东西没有,
编译器能够默认生成的是一个S::S(const S&), 如果没有那个explicit, 而是直接:
operator S(){ return S(m);}
那么这个user defined conversion function返回的临时变量S(m)刚好可以匹配S::S(
const S&)这个编译器提供的默认版本, 于是就能通过编译.
但是由于加了这个explicit, 这个东西根本不能用于copy init, 所以报错通不过编译
这就是为什么原文中有个注释:
// 错误; 拷贝构造函数不能使用显示转换
这个注释是Bjarne Stroustrup写的然后翻译
所以如果无法理解注释肯定是我错 :)
//继续下面这行代码 S s2(ss)
//这个时候是直接构造了, 因为存在函数S::S(int)并且explict operator S()可以用
于直接构造, 所以顺利通过
// 错误的原因是f接受的是f(S), 由于explicit operator S()只能用于direct init和
强制类型转换, 所以不行.
我臆测不行是因为实参向形参传递参数实际是一个copy init的过程
所以这个就基本和上面分析的错误原因一样的
// 标准中明确说明了支持, 所以正确
expl
it
initiali
ex
not

【在 r*g 的大作中提到】
: struct S{
: S(int){}
: };
: struct SS{
: int m;
: SS(int x): m(x){}
: explicit operator S(){return S(m);}
: };
: void f(S s){}
: int main()

avatar
r*f
16
而且容易呛...

【在 w********t 的大作中提到】
: 月月妈,为什么要吃这个啊,我从来不爱吃,太不好咬
avatar
H*S
17
没看懂。
什么叫“3块一封信”,“9刀”?
avatar
g*s
18
"
巨猿三颗头颅眉宇处同时黑光一闪,各自现出一只漆黑如墨的妖目,接着数手臂同
时一抬,竟用一根手指凝重的冲远处虚空一点,同时口吐一个森然的“斩”字。
“噗”的一声!
"
怎么感觉像幽游白书?
avatar
P*a
19
3GS跑iOS5不知道得多慢,给用户一个糟糕的用户体验还不如直接不支持

【在 a***y 的大作中提到】
: 支持iPhone 3GS
: 最近两代iPod touch

avatar
r*g
20
标准中说引入explicit是为了抑制意料之外的隐士类型转换
这个东西来自于C, 在C++中继承了这一特性
但是就挖出了这么多坑
最开始explict Constructor(other)
是为了抑制其他other2 先转换为other再调用
Constructor(other)
引入operator other()的目的是有时候other类是使用者无法修改的
比如是一些闭源的代码
这时候other2类中加入operator other()的自定义转换函数就能使得
从other可以转换到other2 other2也能转换到other
作为一种"对称". (我参考的原帖下面reference中解释)
但是引入了这个东西后
就使得影视类型转化变得更加复杂
于是又引入了explicit operator other()的概念
........

【在 r*g 的大作中提到】
: to AlphaCode 你看看我理解的对不对
: 感觉我这种半路出家的半吊子学C++坑太多了
: 以前认为C很多坑
: 现在觉得C++不仅继承了C的坑, 还挖了很多新的坑
: 我发现我C++的很多基本概念还没弄明白
: 常年把C++当C在用
:
: // 所以不会有任何问题
: // 首先: 根据链接:
: http://en.cppreference.com/w/cpp/language/explicit

avatar
az
21
一天几个啦

【在 s******m 的大作中提到】
: 会不会太咸?小朋友还是尽量给淡点的吃比较好。
avatar
O*U
22
那就没钱加油了

【在 f**********n 的大作中提到】
: 花了9刀.没人缺这9刀吧.
avatar
n*m
23
甚好
变身出最强招,干净利落

★ 发自iPhone App: ChineseWeb 7.8

【在 s*******t 的大作中提到】
: MD,20秒钟看完
avatar
a*y
24
太慢就不会支持了
当然,慢一点是可能的。

【在 P***a 的大作中提到】
: 3GS跑iOS5不知道得多慢,给用户一个糟糕的用户体验还不如直接不支持
avatar
A*e
25
正确

【在 r*g 的大作中提到】
: to AlphaCode 你看看我理解的对不对
: 感觉我这种半路出家的半吊子学C++坑太多了
: 以前认为C很多坑
: 现在觉得C++不仅继承了C的坑, 还挖了很多新的坑
: 我发现我C++的很多基本概念还没弄明白
: 常年把C++当C在用
:
: // 所以不会有任何问题
: // 首先: 根据链接:
: http://en.cppreference.com/w/cpp/language/explicit

avatar
az
26
听说补钙,呵呵,我也不太信,而且我也不爱吃,小时候吃多了,现在看到就反胃

【在 w********t 的大作中提到】
: 月月妈,为什么要吃这个啊,我从来不爱吃,太不好咬
avatar
o*t
27
yes,it is worthwhile to spend this 9$
avatar
a*o
28
过春节能更就是好汉,哥现在要求不高。

【在 n*****m 的大作中提到】
: 甚好
: 变身出最强招,干净利落
:
: ★ 发自iPhone App: ChineseWeb 7.8

avatar
f*5
29
没什么需要高性能的地方吧。
w

【在 P***a 的大作中提到】
: 3GS跑iOS5不知道得多慢,给用户一个糟糕的用户体验还不如直接不支持
avatar
A*e
30
引入operator other()的目的是有时候other类是使用者无法修改的
比如是一些闭源的代码
这时候other2类中加入operator other()的自定义转换函数就能使得
从other可以转换到other2 other2也能转换到other
作为一种"对称". (我参考的原帖下面reference中解释)
说实话,这种用法真的很古怪。

【在 r*g 的大作中提到】
: 标准中说引入explicit是为了抑制意料之外的隐士类型转换
: 这个东西来自于C, 在C++中继承了这一特性
: 但是就挖出了这么多坑
: 最开始explict Constructor(other)
: 是为了抑制其他other2 先转换为other再调用
: Constructor(other)
: 引入operator other()的目的是有时候other类是使用者无法修改的
: 比如是一些闭源的代码
: 这时候other2类中加入operator other()的自定义转换函数就能使得
: 从other可以转换到other2 other2也能转换到other

avatar
az
31
剁成小渣渣吃,放面条里煮着吃

【在 r*f 的大作中提到】
: 而且容易呛...
avatar
a*d
32
yes
avatar
n*m
33
估计中是jie前最后一更

★ 发自iPhone App: ChineseWeb 7.8

【在 a*o 的大作中提到】
: 过春节能更就是好汉,哥现在要求不高。
avatar
m*h
34
可以把虾皮切一下放在鸡蛋糕里一起蒸。
avatar
m*r
35
1招

【在 n*****m 的大作中提到】
: 甚好
: 变身出最强招,干净利落
:
: ★ 发自iPhone App: ChineseWeb 7.8

avatar
m*k
36
皮里的钙不容易吸收?

【在 az 的大作中提到】
: 听说补钙,呵呵,我也不太信,而且我也不爱吃,小时候吃多了,现在看到就反胃
avatar
wy
37
这打了好几章了

下。

【在 s*******t 的大作中提到】
: 第十一卷 真仙降世 第两千两百八十六章 修罗之战(五)
: 更加诡异的一幕出现了。
: 五口晶莹长剑晶光一闪,一股法则波动一现而出,两座山峰一颤下,蓦然向后激垩
: 射而回。
: 当爆鸣再一次响起后,两座山峰一个模糊的出现在韩立上空处,恶狠狠的一砸而下。
: 韩立神念连连催动下,竟无法沟通二宝的让它们停下,一时间和两座极山间彻底断
: 开了联系似的。
: 韩立心中一凛,但是面上丝毫异色未现,所化巨猿两只大手忽然一抬,五指一分的
: 向两座极山轻轻一拍而去。
: 两只大手拍出去的一瞬间,手心中银光闪动,一层层银色纹阵浮现而出,并一下叠

avatar
w*e
38
我就是担心水银,每次吃的不多而已。
虾皮有种一点不咸的,非常香。
avatar
D*a
39
将夜打了一个多月了

【在 wy 的大作中提到】
: 这打了好几章了
:
: 下。

avatar
w*t
40
这个。。。。。。。。。。
不是有那种专门做成小动物性状,像是小软糖的东东
补充各种维生素或者钙吗?
可爱又味道好

【在 az 的大作中提到】
: 听说补钙,呵呵,我也不太信,而且我也不爱吃,小时候吃多了,现在看到就反胃
avatar
s*d
41

不错
能更就好

【在 a*o 的大作中提到】
: 过春节能更就是好汉,哥现在要求不高。
avatar
s*d
42

得吃多少才能补一克钙啊。
跟吃花生皮补铁似的。

【在 az 的大作中提到】
: 听说补钙,呵呵,我也不太信,而且我也不爱吃,小时候吃多了,现在看到就反胃
avatar
c*2
43
good one!

下。

【在 s*******t 的大作中提到】
: 第十一卷 真仙降世 第两千两百八十六章 修罗之战(五)
: 更加诡异的一幕出现了。
: 五口晶莹长剑晶光一闪,一股法则波动一现而出,两座山峰一颤下,蓦然向后激垩
: 射而回。
: 当爆鸣再一次响起后,两座山峰一个模糊的出现在韩立上空处,恶狠狠的一砸而下。
: 韩立神念连连催动下,竟无法沟通二宝的让它们停下,一时间和两座极山间彻底断
: 开了联系似的。
: 韩立心中一凛,但是面上丝毫异色未现,所化巨猿两只大手忽然一抬,五指一分的
: 向两座极山轻轻一拍而去。
: 两只大手拍出去的一瞬间,手心中银光闪动,一层层银色纹阵浮现而出,并一下叠

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