大数跨境

C++ 中的表情运算符

C++ 中的表情运算符 广东金融IT课程学习
2026-07-08
3
导读:嘻嘻

即将发布的 GMP 0.3.0 是一次重大更新,包含许多新能力。其中,一个很有趣的特性——表情运算符,准确来说是叫 Named Operators,提前向大家展示一下。

来看例子:

 


   
   
   
    
   
   
   #include <iostream>
#include <gmp/gmp.hpp>


int main() {
    int
 a = 10;
    int
 b = 3;

    // "_" token

    auto
 _ = gmp::make_named_operator([](int x, int y) {
        return
 x + y;
    });

    // "o" token

    auto
 o = gmp::make_named_operator([](int x, int y) {
        return
 x * y;
    });

    auto
 r1 = a ^_^ b;
    auto
 r2 = a >_< b;
    auto
 r3 = a *_* b;
    auto
 r4 = a -_- b;
    auto
 r5 = a *_^ b;
    auto
 r6 = a ^o^ b;

    std::cout << "a ^_^ b = " << r1 << '\n';
    std::cout << "a >_< b = " << r2 << '\n';
    std::cout << "a *_* b = " << r3 << '\n';
    std::cout << "a -_- b = " << r4 << '\n';
    std::cout << "a *_^ b = " << r5 << '\n';
    std::cout << "a ^o^ b = " << r6 << '\n';
}

 

  



编译运行,输出为:

 


   
   
   
    
   
   
   a ^_^ b = 13
a >_< b = 13
a *_* b = 13
a -_- b = 13
a *_^ b = 13
a ^o^ b = 30

 


只是好玩,有什么实际作用呢?

其实,这个新特性正是我在写 Wuwe Agent Framework 的过程中,需要符号来提升语法简洁性,简化用户使用流畅度,所催生出的一种技术。我将其抽象提炼,扩展完善,优化增强,纳入 GMP 中,便于库和框架作者直接使用。

这里展示的,只是比较有趣的一些表情符号,不过是冰山一角。具体如何使用,还有许多符号可供用户结合创造,正式的作品中,所采用的符号自然是有意义的,而不是这种表情。

具体用法,等发布 GMP 0.3.0 和 Wuwe 0.1.0 时,我还会介绍。



【声明】内容源于网络
0
0
广东金融IT课程学习
服务于IT课程学习者
内容 1379
粉丝 0
广东金融IT课程学习 服务于IT课程学习者
总阅读10.3k
粉丝0
内容1.4k