#include <iostream>
#include <string>
int main()
{
std::string s;
s._Mysize = 7; // Well compiled !!!
std::cout << s.size() << '\n'; // prints 7 !!!
}
Почему нестатические члены std::basic_string
являются общедоступными в VS2010?
Это ошибка? Если да, то как насчет следующей версии визуальной студии (vs2012 и vs2013)?
EDIT: Я просто тестирую другие контейнеры, и... интересные векторные и unique_ptr нестатические члены также являются общедоступными.
std::vector<char> v;
v._Myfirst = (char*)2; // Well Compiled.
std::unique_ptr< int > u;
u._Myptr = 0; // well compiled.
В: Есть ли причина или преимущество использования элементов данных public
?