有没有一种方法可以让#define普通文字成为C++的基本运算符?

-3 c++

问题描述

我参加竞争性节目。鉴于我迫切需要一个基本的模板来记忆,我非常使用宏。

例如,我使用

#define large long long
large value;
Run Code Online (Sandbox Code Playgroud)

不过,有两个运算符让我很恼火:<<以及>>as of 输入和输出。

期待

我想看到类似的东西

#include <iostream>
using namespace std;
#define and <<
#define with >>
#define print cout
#define input cin

int main() {
    long long value1, value2;
    input value1 with value2;
    print value1 and value2;
}
Run Code Online (Sandbox Code Playgroud)

我希望这个程序能够回显用户输入的两个整数值。

问题

但是,我不断收到一条错误消息,指出Cannot #define something as an operator. 我该如何解决这个问题?如果我不能,有替代品吗#define and <<?我非常感谢您的回复。

Nat*_*dge 5

拥有一个扩展为运算符(例如<<or >>example )的宏是完全合法的(尽管令人作呕) 。您只是不能用作and宏的名称,因为 isand是一个关键字

因此,如果您坚持走这条路,只需选择关键字列表中没有的其他名称即可。