この表によると、関数の適用は左側に関連付けられます。どういう意味ですか?のように二項演算子が複数回現れる場合、結合性は重要a - b - c
です。それは関数の適用にどのように関連していますか? 代わりに右に関連付けられている場合、関数の適用はどのように異なりますか?
質問する
296 次
3 に答える
6
みたいなX(y)(z)
?またはでしょう(X(y))(z)
かX((y)(z))
?(ここで、とX
の戻り値は呼び出し可能です)。X
y
于 2012-11-12T10:44:24.010 に答える
1
テーブル、関数の適用は右ではなく左に関連付けられると誤解しています。
他の関数を返す関数を扱うときに活躍します。
これが重要な例を次に示します。
#include <iostream>
template<typename T>
T id_1(T t) {
t(1);
return t;
}
typedef void (*func)(int);
void nothing(int x) {}
func print(int x) {
std::cout << x << std::endl;
return nothing;
}
int main() {
std::cout << "left associative:\n";
id_1(print)(2);
std::cout << "right associative:\n";
id_1((print)(2));
}
出力
left associative:
1
2
right associative:
2
于 2012-11-12T10:54:46.183 に答える
0
Function call is left-associative. It is another way of saying that postfix operators have higher precedence than unary operators.
于 2012-11-12T10:58:21.603 に答える