Мне потребовалось это разрешение, но я не знал, доступны ли предлагаемые ключи. Итак, я принял @torazaburo ответ и улучшил для моего варианта использования:
function pick(o, ...props) {
return Object.assign({}, ...props.map(prop => {
if (o[prop]) return {[prop]: o[prop]};
}));
}
// Example:
var person = { name: 'John', age: 29 };
var myObj = pick(person, 'name', 'sex'); // { name: 'John' }
Если вы хотите, чтобы выполнялся новый код C ++, его сначала нужно скомпилировать. Я не думаю, что вы можете избежать этого. Однако вы можете попытаться сократить время, необходимое для компиляции, с помощью различных методов, таких как использование средств защиты заголовков и выборочный подход к заголовкам.
В gdb вы можете многое сделать, чтобы изменить поведение вашей программы, когда она достигает точки останова без остановок. Команда печати также может быть использована для изменения значений, например, print i=0
фактически устанавливает i в ноль.
Просто помните, что все эти изменения и взломы должны быть перенесены обратно в исходный код и протестированы снова! За прошедшие годы я потерял много отличных правок, выполняя встроенные хаки в коде, а затем завершал работу, не просматривая изменения.