在我的代码中,我一直在重写static_cast<int *>
大约一百万次,是否有重新定义关键字的方法,以便每当我调用它时它都做同样的事情?创建“快捷方式”类似于宏的定义
例如
cast
会做同样的事情,static_cast<int *>
在我的代码中,我一直在重写static_cast<int *>
大约一百万次,是否有重新定义关键字的方法,以便每当我调用它时它都做同样的事情?创建“快捷方式”类似于宏的定义
例如
cast
会做同样的事情,static_cast<int *>
static_cast
有一个好处,即C++程序员可以准确识别它是什么,而无需去找到#define
或其他语句。我强烈建议您继续使用static_cast
。
但是,我的假设是您的问题是所需的按键次数,所以最好的解决方案是使用支持宏的文本编辑器。这样一来,该结束了保存代码的功能使用标准static_cast<T>(x)
语法,但你可能只需要输入一些诸如[小号Ç]标签牛逼标签X标签。
有关如何操作的信息将在此类编辑的文档中找到。我不是那些高度可定制编辑的忠实粉丝,所以具体内容超出了我的理解。
谢谢,我想坚持这一点。 –
问计更简单的方式做一些危险的&hellip;
是的,有很多的方式来完成你要求什么,包括
C++模板,
宏定义,
编辑器的快捷方式,
定制预处理,
训练有素的猴子修复了代码。
但是,您所完成的所有工作都是为了让您的代码更加友好。
相反,试图找出你如何经常丢失类型信息,这样你就必须手工把它放回去,可以这么说。
一般的解决方案是,非常简单地,而不是首先扔掉类型信息。
我看不出最后3种解决方案如何减少代码。另外:我可以有猴子吗? (她是否也修复错误?) –
您的意思是?
#define SCAST(T,X) static_cast<T>(X);
我应该警告你,虽然通常这样定义的过度使用会使你的代码变得模糊和难以理解。
更重要的是,你必须注意用宏,因为它们可能会导致很难找到,例如错误:
#define SQUARE(X) = X*X;
那么,如果你调用此方法x++
,预处理器会做一个文字替换和你将会以(x++)*(x++);
结束,这意味着它不会是您正在寻找的答案,并且让事情变得更糟,因为替换发生在幕后,您将很难找到原因。
我会建议你改为查看模板函数或者只是内联帮助函数,这样可以安全并避免我指出的问题。
当你说重写,你确定正则表达式不能帮助吗? – chris
我建议不要这样做 - 随着时间的推移,这使得代码无法读取 - 相反,我建议Mavis Beacon,并学会更快地输入:-)(严重时我输入100wpm左右) –
如果有任何安慰,你可以配置IDE, “sc”或任何你想要的,点击一个热键,并将其扩展到'static_cast <|>'。 – chris