From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Message-ID: <3E9B86CD.5090706@rmts.donpac.ru> Date: Tue, 15 Apr 2003 08:13:01 +0400 From: =?KOI8-R?Q?=F0=D2=CF=CB=CF=D0=D8=C5=D7_=E5=D7=C7=C5=CE=C9=CA?= User-Agent: Mozilla/5.0 (X11; U; Linux i686; ru-RU; rv:1.2.1) Gecko/20030210 X-Accept-Language: ru-ru, en MIME-Version: 1.0 To: community@altlinux.ru Subject: Re: [Comm] Re: =?KOI8-R?Q?=EB=CF=CD=D0=CF=CE=CF=D7=CB=C1_=D3_?= =?KOI8-R?Q?STL_=D7_gcc3?= References: <3E9A904C.7020404@rmts.donpac.ru> <20030414161241.3308d630.vsu@altlinux.ru> <3E9AAF1E.1090007@rmts.donpac.ru> <20030414172525.5e7481c5.vsu@altlinux.ru> In-Reply-To: <20030414172525.5e7481c5.vsu@altlinux.ru> X-Enigmail-Version: 0.70.0.0 X-Enigmail-Supports: pgp-inline, pgp-mime Content-Type: text/plain; charset=KOI8-R; format=flowed Content-Transfer-Encoding: 8bit X-MDRemoteIP: 192.168.10.5 X-Return-Path: john@rmts.donpac.ru X-MDaemon-Deliver-To: community@altlinux.ru Sender: community-admin@altlinux.ru Errors-To: community-admin@altlinux.ru X-BeenThere: community@altlinux.ru X-Mailman-Version: 2.0.9 Precedence: bulk Reply-To: community@altlinux.ru X-Reply-To: john@rmts.donpac.ru List-Unsubscribe: , List-Id: List-Post: List-Help: List-Subscribe: , List-Archive: Archived-At: List-Archive: List-Post: > А, так вы пытаетесь работать с std::basic_string. > > Надо делать специализацию std::char_traits. В > стандартном C++ должен определять специализации только для > char и wchar_t - что он и делает в gcc3. Для общего случая > определяется только пустышка без реализации. $ make clean rm -f *.o requester $ make g++ -c -o requester.o requester.cpp g++ -c -o serial.o serial.cpp g++ -c -o sulim.o sulim.cpp sulim.cpp: In member function `void sulim_device::check(byte*, byte*, byte*)': sulim.cpp:70: no matching function for call to `std::char_traits::append(byte*, int)' sulim.cpp:72: no matching function for call to `std::char_traits::find(byte*&)' /usr/include/c++/3.2.1/bits/char_traits.h:79: candidates are: static const _CharT* std::char_traits<_CharT>::find(const _CharT*, unsigned int, const _CharT&) [with _CharT = byte] sulim.cpp:72: `struct std::char_traits' has no member named `npos' sulim.cpp:73: no matching function for call to `std::char_traits::find(byte*&)' /usr/include/c++/3.2.1/bits/char_traits.h:79: candidates are: static const _CharT* std::char_traits<_CharT>::find(const _CharT*, unsigned int, const _CharT&) [with _CharT = byte] sulim.cpp:73: `struct std::char_traits' has no member named `npos' sulim.cpp:78: no matching function for call to `std::char_traits::length()' /usr/include/c++/3.2.1/bits/char_traits.h:76: candidates are: static size_t std::char_traits<_CharT>::length(const _CharT*) [with _CharT = byte] sulim.cpp:79: no match for `byte_queue& [unsigned int&]' operator sulim.cpp:84: no matching function for call to `std::char_traits::find(byte*&)' /usr/include/c++/3.2.1/bits/char_traits.h:79: candidates are: static const _CharT* std::char_traits<_CharT>::find(const _CharT*, unsigned int, const _CharT&) [with _CharT = byte] sulim.cpp:84: `struct std::char_traits' has no member named `npos' make: *** [sulim.o] Ошибка 1 Это случилось после того, как basic_string я заменил на char_traits. Собственно вопрос: где искать реализацию для char, чтобы методом копировать/вставить/заменить сделать аналог (как-то все это не по-человечьи), и где читать: a) про реализацию стандарта C++ в gcc3 б) про саму стандартную библиотеку C++ (по C маны есть, а тут не предусмотрели :( ) -- С уважением, Прокопьев Евгений