[uClibc-cvs] CVS uClibc++/src

CVS User gkajmowi gkajmowi at codepoet.org
Tue Jan 25 19:10:17 UTC 2005


Update of /var/cvs/uClibc++/src
In directory nail:/tmp/cvs-serv23497/src

Modified Files:
	iostream.cpp istream.cpp ostream.cpp sstream.cpp string.cpp 
	vector.cpp 
Log Message:
Moved a lot of code from inlining into the library binary.  Library is ~20% larger but almost all applications will be smaller.  Overall, lots of savings.

--- /var/cvs/uClibc++/src/iostream.cpp	2004/09/01 16:39:31	1.3
+++ /var/cvs/uClibc++/src/iostream.cpp	2005/01/25 19:10:15	1.4
@@ -17,14 +17,20 @@
 	Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */
 
+#define __UCLIBCXX_COMPILE_IOSTREAM__ 1
+
 #include <iostream>
 
 namespace std{
 
+#ifdef __UCLIBCXX_EXPAND_OSTREAM_CHAR__
+#ifdef __UCLIBCXX_EXPAND_ISTREAM_CHAR__
 
+	template basic_iostream<char, char_traits<char> >::basic_iostream(basic_streambuf<char, char_traits<char> >* sb);
+	template basic_iostream<char, char_traits<char> >::~basic_iostream();
 
-
-
+#endif
+#endif
 
 }
 
--- /var/cvs/uClibc++/src/istream.cpp	2004/12/18 22:00:48	1.5
+++ /var/cvs/uClibc++/src/istream.cpp	2005/01/25 19:10:15	1.6
@@ -27,17 +27,23 @@
 
 #ifdef __UCLIBCXX_EXPAND_ISTREAM_CHAR__
 
-	template basic_istream<char,char_traits<char> > & basic_istream<char, char_traits<char> >::operator>>(bool &n);
-	template basic_istream<char,char_traits<char> > & basic_istream<char, char_traits<char> >::operator>>(short &n);
-	template basic_istream<char,char_traits<char> > & basic_istream<char, char_traits<char> >::operator>>(unsigned short &n);
-	template basic_istream<char,char_traits<char> > & basic_istream<char, char_traits<char> >::operator>>(int &n);
-	template basic_istream<char,char_traits<char> > & basic_istream<char, char_traits<char> >::operator>>(unsigned int &n);
-	template basic_istream<char,char_traits<char> > & basic_istream<char, char_traits<char> >::operator>>(long unsigned &n);
-	template basic_istream<char,char_traits<char> > & basic_istream<char, char_traits<char> >::operator>>(long int &n);
-	template basic_istream<char,char_traits<char> > & basic_istream<char, char_traits<char> >::operator>>(float &f);
-	template basic_istream<char,char_traits<char> > & basic_istream<char, char_traits<char> >::operator>>(double &f);
-	template basic_istream<char,char_traits<char> > & basic_istream<char, char_traits<char> >::operator>>(long double &f);
-	template basic_istream<char,char_traits<char> > & basic_istream<char, char_traits<char> >::operator>>(void *& p);
+	typedef basic_istream<char,char_traits<char> > char_istream;
+
+	template char_istream::int_type char_istream::get();
+	template char_istream & char_istream::get(char &c);
+
+
+	template char_istream & char_istream::operator>>(bool &n);
+	template char_istream & char_istream::operator>>(short &n);
+	template char_istream & char_istream::operator>>(unsigned short &n);
+	template char_istream & char_istream::operator>>(int &n);
+	template char_istream & char_istream::operator>>(unsigned int &n);
+	template char_istream & char_istream::operator>>(long unsigned &n);
+	template char_istream & char_istream::operator>>(long int &n);
+	template char_istream & char_istream::operator>>(float &f);
+	template char_istream & char_istream::operator>>(double &f);
+	template char_istream & char_istream::operator>>(long double &f);
+	template char_istream & char_istream::operator>>(void *& p);
 
 #endif
 
--- /var/cvs/uClibc++/src/ostream.cpp	2004/12/18 22:00:48	1.5
+++ /var/cvs/uClibc++/src/ostream.cpp	2005/01/25 19:10:15	1.6
@@ -25,28 +25,29 @@
 	
 
 #ifdef __UCLIBCXX_EXPAND_OSTREAM_CHAR__
+	
+	typedef basic_ostream<char, char_traits<char> > char_ostream;
 
-	template basic_ostream<char, char_traits<char> >::~basic_ostream();
+	template char_ostream::~basic_ostream();
 
-	template basic_ostream<char,char_traits<char> > & basic_ostream<char, char_traits<char> >::operator<<(bool n);
-	template basic_ostream<char,char_traits<char> > & basic_ostream<char, char_traits<char> >::operator<<(short int n);
-	template basic_ostream<char,char_traits<char> > & basic_ostream<char, char_traits<char> >::
-		operator<<(unsigned short int n);
-	template basic_ostream<char,char_traits<char> > & basic_ostream<char, char_traits<char> >::operator<<(int n);
-	template basic_ostream<char,char_traits<char> > & basic_ostream<char, char_traits<char> >::operator<<(unsigned int n);
-	template basic_ostream<char,char_traits<char> > & basic_ostream<char, char_traits<char> >::operator<<(long n);
-	template basic_ostream<char,char_traits<char> > & basic_ostream<char, char_traits<char> >::operator<<(unsigned long n);
-	template basic_ostream<char,char_traits<char> > & basic_ostream<char, char_traits<char> >::operator<<(float f);
-	template basic_ostream<char,char_traits<char> > & basic_ostream<char, char_traits<char> >::operator<<(double f);
-	template basic_ostream<char,char_traits<char> > & basic_ostream<char, char_traits<char> >::operator<<(long double f);
-	template basic_ostream<char,char_traits<char> > & basic_ostream<char, char_traits<char> >::operator<<(void* p);
-	template basic_ostream<char,char_traits<char> > &
-		basic_ostream<char, char_traits<char> >::operator<<(basic_streambuf<char, char_traits<char> >* sb);
-
-
-	template basic_ostream<char,char_traits<char> >& endl(basic_ostream<char,char_traits<char> >& os);
-	template basic_ostream<char,char_traits<char> >& flush(basic_ostream<char,char_traits<char> >& os);
-	template basic_ostream<char,char_traits<char> >& operator<<(basic_ostream<char,char_traits<char> >& out, const char* c);
+	template char_ostream & char_ostream::operator<<(bool n);
+	template char_ostream & char_ostream::operator<<(short int n);
+	template char_ostream & char_ostream::operator<<(unsigned short int n);
+	template char_ostream & char_ostream::operator<<(int n);
+	template char_ostream & char_ostream::operator<<(unsigned int n);
+	template char_ostream & char_ostream::operator<<(long n);
+	template char_ostream & char_ostream::operator<<(unsigned long n);
+	template char_ostream & char_ostream::operator<<(float f);
+	template char_ostream & char_ostream::operator<<(double f);
+	template char_ostream & char_ostream::operator<<(long double f);
+	template char_ostream & char_ostream::operator<<(void* p);
+	template char_ostream &	char_ostream::operator<<(basic_streambuf<char, char_traits<char> >* sb);
+
+
+	template char_ostream & endl(char_ostream & os);
+	template char_ostream & flush(char_ostream & os);
+	template char_ostream & operator<<(char_ostream & out, char c);
+	template char_ostream & operator<<(char_ostream & out, const char* c);
 
 #endif
 
--- /var/cvs/uClibc++/src/sstream.cpp	2004/12/18 22:00:49	1.2
+++ /var/cvs/uClibc++/src/sstream.cpp	2005/01/25 19:10:15	1.3
@@ -17,17 +17,33 @@
 	Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */
 
+#define __UCLIBCXX_COMPILE_SSTREAM__ 1
+
 #include <sstream>
 
 namespace std{
 
+#ifdef __UCLIBCXX_EXPAND_SSTREAM_CHAR__
 
-#ifdef __UCLIBCXX_EXPAND_STRING_CHAR__
+	typedef char_traits<char> tr_ch;
+	typedef basic_stringbuf<char, tr_ch, allocator<char> > char_stringbuf;
 
+	template char_stringbuf::basic_stringbuf(ios_base::openmode which);
+	template char_stringbuf::~basic_stringbuf();
+	template basic_string<char, char_traits<char>, allocator<char> > char_stringbuf::str() const;
+	template char_stringbuf::int_type char_stringbuf::pbackfail(char_stringbuf::int_type c);
+	template char_stringbuf::int_type char_stringbuf::overflow(char_stringbuf::int_type c);
+	template char_stringbuf::pos_type char_stringbuf::seekoff(char_stringbuf::off_type, ios_base::seekdir, ios_base::openmode);
+	template char_stringbuf::int_type char_stringbuf::underflow ();
+	template streamsize char_stringbuf::xsputn(const char* s, streamsize n);
+
+	template basic_stringstream<char, tr_ch, allocator<char> >::basic_stringstream(ios_base::openmode which);
+	template basic_istringstream<char, tr_ch, allocator<char> >::~basic_istringstream();
+	template basic_ostringstream<char, tr_ch, allocator<char> >::~basic_ostringstream();
+	template basic_stringstream<char, tr_ch, allocator<char> >::~basic_stringstream();
 
 #endif
 
-
 }
 
 
--- /var/cvs/uClibc++/src/string.cpp	2005/01/03 16:28:48	1.6
+++ /var/cvs/uClibc++/src/string.cpp	2005/01/25 19:10:15	1.7
@@ -30,25 +30,23 @@
 
 #ifdef __UCLIBCXX_EXPAND_STRING_CHAR__
 
-	template basic_string<char,char_traits<char>, allocator<char> >::basic_string(const char* s, const allocator<char>& al);
+	typedef basic_string<char, char_traits<char> , allocator<char> > char_string;
 
-	template basic_string<char, char_traits<char>, allocator<char> >
-		operator+(const basic_string<char, char_traits<char>, allocator<char> >& lhs, const char* rhs);
-
-	template basic_string<char, char_traits<char>, allocator<char> >
-		operator+(const char* lhs, const basic_string<char, char_traits<char>, allocator<char> >& rhs);
-
-	template basic_string<char, char_traits<char>, allocator<char> >
-		operator+(const basic_string<char, char_traits<char> , allocator<char> >& lhs,
-			const basic_string<char, char_traits<char>, allocator<char> >& rhs);
+	template char_string::basic_string(const char* s, const allocator<char>& al);
+	template char_string::basic_string(const basic_string& str, size_type pos, size_type n, const allocator<char>& al);
+	template char_string& char_string::operator=(const char_string & str);
+	template char_string char_string::substr(size_type pos, size_type n) const;
+	template char_string::size_type char_string::find(const char_string & str, size_type pos) const;
+	template char_string operator+(const char_string & lhs, const char* rhs);
+	template char_string operator+(const char* lhs, const char_string & rhs);
+	template char_string operator+(const char_string & lhs,	const char_string & rhs);
 
 
 //Functions dependent upon OSTREAM
 #ifdef __UCLIBCXX_EXPAND_OSTREAM_CHAR__
 
 template basic_ostream<char, char_traits<char> >&
-	operator<<(basic_ostream<char, char_traits<char> >& os,
-	const basic_string<char,char_traits<char>, std::allocator<char> >& str);
+	operator<<(basic_ostream<char, char_traits<char> >& os,	const char_string & str);
 
 #endif
 
@@ -57,8 +55,7 @@
 #ifdef __UCLIBCXX_EXPAND_ISTREAM_CHAR__
 
 template basic_istream<char, char_traits<char> >& operator>>(
-	basic_istream<char,char_traits<char> >& is,
-	basic_string<char, char_traits<char>, allocator<char> >& str);
+	basic_istream<char,char_traits<char> >& is, char_string & str);
 
 
 #endif
--- /var/cvs/uClibc++/src/vector.cpp	2005/01/11 03:57:08	1.6
+++ /var/cvs/uClibc++/src/vector.cpp	2005/01/25 19:10:15	1.7
@@ -27,6 +27,9 @@
 
 #ifdef __UCLIBCXX_EXPAND_VECTOR_BASIC__
 
+	template vector<char, allocator<char> >::~vector();
+	template vector<unsigned char, allocator<unsigned char> >::~vector();
+
 	template void vector<char, allocator<char> >::reserve(size_type n);
 	template void vector<unsigned char, allocator<unsigned char> >::reserve(size_type n);
 	template void vector<short int, allocator<short int> >::reserve(size_type n);



More information about the uClibc-cvs mailing list