История изменений
Исправление rumgot, (текущая версия) :
#include <iostream>
#include <vector>
#include <string>
#include <memory>
using namespace std;
int main()
{
std::string someString = "Some string";
const std::shared_ptr<std::vector<unsigned char>> veryStrangeData(
new std::vector<unsigned char>(someString.data(),
someString.data() + someString.size()));
const std::shared_ptr<std::vector<unsigned char>>& veryStrangeDataReference =
veryStrangeData;
for (auto s : *veryStrangeDataReference.get()) {
std::cout << s << std::endl;
}
}
Хотя эта конечно ссылка на std::shared_ptr
- это сильно.
Исправление rumgot, :
#include <iostream>
#include <vector>
#include <string>
#include <memory>
using namespace std;
int main()
{
std::string someString = "Some string";
const std::shared_ptr<std::vector<unsigned char>> veryStrangeData(
new std::vector<unsigned char>(someString.data(),
someString.data() + someString.size()));
const std::shared_ptr<std::vector<unsigned char>>& veryStrangeDataReference =
veryStrangeData;
for (auto s : *veryStrangeDataReference.get()) {
std::cout << s << std::endl;
}
}
Хотя эта конечно ссылка на std::shared_ptr
- это сильно..
Исправление rumgot, :
#include <iostream>
#include <vector>
#include <string>
#include <memory>
using namespace std;
int main()
{
std::string someString = "Some string";
const std::shared_ptr<std::vector<unsigned char>> veryStrangeData(
new std::vector<unsigned char>(someString.data(),
someString.data() + someString.size()));
const std::shared_ptr<std::vector<unsigned char>>& veryStrangeDataReference =
veryStrangeData;
for (auto s : *veryStrangeDataReference.get()) {
std::cout << s << std::endl;
}
}
Исходная версия rumgot, :
#include <iostream>
#include <vector>
#include <string>
#include <memory>
using namespace std;
int main()
{
std::string someString = "Some string";
const std::shared_ptr<std::vector<unsigned char>> veryStrangeData(
new std::vector<unsigned char>(someString.data(),
someString.data() + someString.size()));
const std::shared_ptr<std::vector<unsigned char>>& veryStrangeDataReference = veryStrangeData;
someString.erase();
for (auto s : *veryStrangeDataReference.get()) {
std::cout << s << std::endl;
}
}