您如何看待在C++中指定用户定义的运算符的想象力?
这样的用户定义的运算符可以通过运算符名称(允许的字符的任意序列?),它的优先级,关联性和arity(其他东西?)来定义.
它们可用于多种用途:帮助构建基于C++的"微小"DSL,用于列表理解等.
这个功能不会扩展语言的可能用途吗?什么是允许用户定义的运营商的其他语言?Lisp浮现在脑海中,还有什么?有关该主题的任何链接?
好吧,Haskell具有可设置优先级和左右绑定的自定义运算符。所以,它可以工作。但是,Haskell 是最前沿的并且几乎不可读,尽管它主要被一些相当聪明的人使用。(Haskell 吓跑了所有新手,我认为..)
对于C++,我认为有:
std::vector<std::list<int>>错误,其中>>被解析为右移运算符).. C++ 的语法已经足够难了。后一个是交易破坏者,IMO。
尽管如此,没有什么能阻止你编写一个 c++ 预处理器/解析器,用真正的函数调用替换你自己定义的运算符,然后使用普通的 c++ 编译器(就像 c++ 以前是如何在 C 上构建的)。如果你能保持足够的理智来发货,那将是一个很好的实验。;-)
| 归档时间: |
|
| 查看次数: |
2333 次 |
| 最近记录: |