- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
//
// std::string wrapper
//
namespace priv {
class string {
std::string &m_s;
std::string &(std::string::*m_pAssign1)( const char *, std::string::size_type );
std::string &(std::string::*m_pAssign2)( const char * );
public:
string( std::string &str ): m_s(str),
m_pAssign1(&std::string::assign), m_pAssign2(&std::string::assign) {}
string &assign( const char *s, std::string::size_type n )
{
(m_s.*m_pAssign1)( s, n ); return *this;
}
string &assign( const char *s )
{
(m_s.*m_pAssign2)( s ); return *this;
}
};
}
сегодня ассимилирую старый хлам на работе (проекты VC6) в студию с нормальными свойствами проектов, конфигурациями, неабсолютными путями и т.д.
наткнулся в одной из либ на вот это
lohpider 30.05.2012 16:47 # −13
bormand 30.05.2012 16:51 # +3
lohpider 30.05.2012 16:52 # −16
bormand 30.05.2012 16:53 # 0
lohpider 30.05.2012 16:55 # −17
defecate-plusplus 30.05.2012 16:58 # +2
потому этот код тут
подозреваю, что раньше были какие то логи внутри ассигнов, но в сурсконтроле вообще единственная версия этого файла - вот какая есть
bormand 30.05.2012 17:01 # 0
defecate-plusplus 30.05.2012 17:05 # +2
ну, думаю, он должен был использоваться как
но я беглым поиском не нашел вообще реального использования нигде
а функции, принимающие priv::string в либе присутствуют, в том то и дело
lohpider 30.05.2012 17:25 # −14
rat4 31.05.2012 09:14 # +8
defecate-plusplus 31.05.2012 09:26 # +7