c++ - 显式调用 c++ 插入运算符 (>>) 的特定重载?
问题描述
所以我有以下三行代码困扰着我:
int choice;
std::cin >> choice;
platform = platforms[choice];
这感觉就像它应该是一个班轮,但我坚持如何实现它。
我在想类似的东西:
platform = platforms[(int)operator>>(std::cin)];
但显然不完全是因为编译器不会有它。
解决方案
你需要一个辅助函数来做到这一点。
感谢 lambda,您可以在一个表达式中做到这一点:
platform = platforms[([](){int choice; std::cin >> choice; return choice;}())];
推荐阅读
- python - 计算给定 3 个或更多高斯的概率
- swift - 来自 url 的数据不会加载。虽然网址是正确的
- security - Coinbase 区块链和区块链之间有什么区别吗?
- javascript - React - 如果我更改状态,每次新渲染时都会使用占位符和动画的输入字段
- php - 冲突的 Seafile 和 Nextcloud nginx 配置
- c++ - 如何使用 clang-format 格式化地图初始化?
- reactjs - 使用 Axios 请求从服务器加载 Redux Store
- python - TensorFlow png as x 和 html as y
- python - Python - 附加时的错误
- python - Python pynput 不能“理解”希腊字符