c++でpython風のinput()を作った(戻り値型推論的なやつ)
Motivation
int i = input();
string s = input();
みたいなのをしたい気分になった
SourceCode
以下のやつをコピペすれば動きます
struct input_returnner { template<typename T>operator T() const { T t; cin >> t; return t;} }; input_returnner input() { return input_returnner(); } /// ---template--- int main(void) { string a = input(); cout << a << endl; return 0; }
簡単な解説
変換演算子を持つ独自クラスを返すクラスを作って, input_returnner{}
とかでもかけるんだけどクッソ気持ち悪かったので関数で囲ってやった
あとがき
でも
vector<int> v(N); for(auto &a:v) cin >> a;
って普段やってるしあまり活躍しなさそう