var container = function (var data) {
var secret = data;
return {
_["set"] = function (var x) {
secret |= x;
return undefined;
},
_["get"] = function () { return secret; }
};
};
var a = container("secret-a");
var b = container("secret-b");
a["set"]("override-a");
std::cout << a["get"](); // override-a
std::cout << b["get"](); // secret-b
Да, товарищи, это C++ (0x)! Подробности
здесь. Код, который это делает, кстати, довольно простой.
Здравствуйте, alexeiz, Вы писали:
A>A>var container = function (var data) {
A> var secret = data;
A> return {
A> _["set"] = function (var x) {
A> secret |= x;
A> return undefined;
A> },
A> _["get"] = function () { return secret; }
A> };
A>};
A>var a = container("secret-a");
A>var b = container("secret-b");
A>a["set"]("override-a");
A>std::cout << a["get"](); // override-a
A>std::cout << b["get"](); // secret-b
A>
A>Да, товарищи, это C++ (0x)! Подробности здесь. Код, который это делает, кстати, довольно простой.
Интересно, но не более того. Как и положено за такие извращения в реальном коде — отрубание рук.
[In theory there is no difference between theory and practice. In
practice there is.]
[Даю очевидные ответы на риторические вопросы]
[In theory there is no difference between theory and practice. In
practice there is.]
[Даю очевидные ответы на риторические вопросы]
Здравствуйте, alexeiz, Вы писали:
A>Да, товарищи, это C++ (0x)! Подробности здесь. Код, который это делает, кстати, довольно простой.
Забавно. Старичок C++ жжет! Есть еще порох в пороховницах!