function fallbackCopyTextToClipboard(text) {
var textArea = document.createElement("textarea");
textArea.value = text;
// Avoid scrolling to bottom
textArea.style.top = "0";
textArea.style.left = "0";
textArea.style.position = "fixed";
document.body.appendChild(textArea);
textArea.focus();
textArea.select();
try {
var successful = document.execCommand('copy');
var msg = successful ? 'successful' : 'unsuccessful';
console.log('Fallback: Copying text command was ' + msg);
} catch (err) {
console.error('Fallback: Oops, unable to copy', err);
}
document.body.removeChild(textArea);
}
function copyTextToClipboard(text) {
if (!navigator.clipboard) {
fallbackCopyTextToClipboard(text);
return;
}
navigator.clipboard.writeText(text).then(function() {
console.log('Async: Copying to clipboard was successful!');
}, function(err) {
console.error('Async: Could not copy text: ', err);
});
}
При использовании std::vector и других структур STL вообще не нужно задумываться, например, о размере выделенной памяти. Добавляешь сколько угодно элементов - класс сам решит все вопросы. Как - его проблемы. И при удалении объекта деструктор сам всё за собой подчистит, не нужно забивать этим себе голову.
На самом деле для общего развития рекомендую попробовать релизовать парочку задач на чистом C, чтобы сравнить ощущения. Вот там особенно заморочиться придётся с указателями и выделениями памяти. В том числе самому считать нужный размер в байтах.