On 9/13/14, 9:13 AM, Kagamin wrote:
On Saturday, 13 September 2014 at 12:05:59 UTC, po wrote:
Smart pointers are rarely used, most C++ stuff is done by value.
Strings too?
Two string types are used.
-std::string type: by value, has smaller buffer optimization, used at
startup/logging, and for any dynamic strings with unbounded possible
values
Are you sure? From basic_string.h:
_CharT*
_M_refcopy() throw()
{
#ifndef _GLIBCXX_FULLY_DYNAMIC_STRING
if (__builtin_expect(this != &_S_empty_rep(), false))
#endif
__gnu_cxx::__atomic_add_dispatch(&this->_M_refcount, 1);
return _M_refdata();
} // XXX MT
C++11 makes all refcounting implementations of std::string illegal. --
Andrei