Index: trunk/src/stl/assert.cc
===================================================================
--- trunk/src/stl/assert.cc	(revision 396)
+++ trunk/src/stl/assert.cc	(revision 402)
@@ -31,13 +31,13 @@
 extern "C" {
 	extern void __assert(const char *, const char *, unsigned int, const char *)
-		throw() __attribute__ ((__noreturn__));
+		__attribute__ ((__noreturn__));
 }
 #	else
 extern "C" {
 	extern void __assert_fail(const char *, const char *, unsigned int, const char *)
-		throw() __attribute__ ((__noreturn__));
+		__attribute__ ((__noreturn__));
 }
 #	endif
-void nv_internal_assert( const char * assertion, const char * file, unsigned int line, const char * function )
+__attribute__( ( __noreturn__ ) ) void nv_internal_assert( const char * assertion, const char * file, unsigned int line, const char * function )
 {
 #	if NV_COMPILER == NV_CLANG
Index: trunk/src/stl/capi.cc
===================================================================
--- trunk/src/stl/capi.cc	(revision 396)
+++ trunk/src/stl/capi.cc	(revision 402)
Index: trunk/src/stl/hash_table.cc
===================================================================
--- trunk/src/stl/hash_table.cc	(revision 396)
+++ trunk/src/stl/hash_table.cc	(revision 402)
@@ -47,9 +47,9 @@
 };
 
-static const nv::uint32 s_primes_size = ( sizeof( s_primes ) / sizeof( *s_primes ) );
+//static const nv::uint32 s_primes_size = ( sizeof( s_primes ) / sizeof( *s_primes ) );
 
 namespace nv
 {
-	void* g_hash_table_empty[2] = { nullptr, (void*)uintptr_t( ~0 ) };
+	void* g_hash_table_empty[2] = { nullptr, reinterpret_cast<void*>( uintptr_t( ~0 ) ) };
 }
 
Index: trunk/src/stl/string.cc
===================================================================
--- trunk/src/stl/string.cc	(revision 396)
+++ trunk/src/stl/string.cc	(revision 402)
@@ -15,6 +15,5 @@
 using namespace nv;
 
-static const double s_power_10[] = { 1, 10, 100, 1000, 10000, 100000, 1000000,
-10000000, 100000000, 1000000000 };
+//static const double s_power_10[] = { 1, 10, 100, 1000, 10000, 100000, 1000000, 10000000, 100000000, 1000000000 };
 
 std::string nv::slurp( const std::string& filename )
@@ -41,8 +40,8 @@
 {
 	char* s = str;
-	uint32 abs = ( n < 0 ) ? (uint32)( -n ) : (uint32)( n );
+	uint32 abs = static_cast< uint32 >( n < 0 ? -n : n );
 	do
 	{
-		*s++ = (char)( '0' + ( abs % 10 ) );
+		*s++ = static_cast<char>( '0' + ( abs % 10 ) );
 		abs /= 10;
 	} while ( abs > 0 );
@@ -50,5 +49,5 @@
 	*s = '\0';
 	string_reverse( str, s - 1 );
-	return (nv::size_t)( s - str );
+	return static_cast<nv::size_t>( s - str );
 }
 
@@ -56,8 +55,8 @@
 {
 	char* s = str;
-	uint64 abs = ( n < 0 ) ? (uint64)( -n ) : (uint64)( n );
+	uint64 abs = static_cast< uint64 >( n < 0 ? -n : n );
 	do
 	{
-		*s++ = (char)( '0' + ( abs % 10 ) );
+		*s++ = static_cast<char>( '0' + ( abs % 10 ) );
 		abs /= 10;
 	} while ( abs > 0 );
@@ -65,5 +64,5 @@
 	*s = '\0';
 	string_reverse( str, s - 1 );
-	return (nv::size_t)( s - str );
+	return static_cast<nv::size_t>( s - str );
 }
 
@@ -73,10 +72,10 @@
 	do
 	{
-		*s++ = (char)( '0' + ( n % 10 ) );
+		*s++ = static_cast<char>( '0' + ( n % 10 ) );
 		n /= 10;
 	} while ( n > 0 );
 	*s = '\0';
 	string_reverse( str, s - 1 );
-	return (nv::size_t)( s - str );
+	return static_cast<nv::size_t>( s - str );
 }
 
@@ -86,10 +85,10 @@
 	do
 	{
-		*s++ = (char)( '0' + ( n % 10 ) );
+		*s++ = static_cast<char>( '0' + ( n % 10 ) );
 		n /= 10;
 	} while ( n > 0 );
 	*s = '\0';
 	string_reverse( str, s - 1 );
-	return (size_t)( s - str );
+	return static_cast<nv::size_t>( s - str );
 }
 
@@ -101,5 +100,5 @@
 	int result = snprintf( str, 64, "%.*g", 6, n );
 #endif
-	return result > 0 ? ( nv::size_t )result : 0;
+	return static_cast<nv::size_t>( result > 0 ? result : 0 );
 }
 
@@ -111,8 +110,8 @@
 	int result = snprintf( str, 64, "%.*g", 6, n );
 #endif
-	return result > 0 ? ( nv::size_t )result : 0;
+	return static_cast<nv::size_t>( result > 0 ? result : 0 );
 }
 
-sint32 buffer_to_sint32( const char* str, char** end )
+sint32 nv::buffer_to_sint32( const char* str, char** end )
 {
 	const char* s = str;
@@ -131,9 +130,9 @@
 		++s;
 	}
-	if ( end != nullptr ) *end = (char*)s;
+	if ( end != nullptr ) *end = const_cast<char*>( s );
 	return positive ? result : -result;
 }
 
-sint64 buffer_to_sint64( const char* s, char** end )
+sint64 nv::buffer_to_sint64( const char* s, char** end )
 {
 	while ( *s == ' ' ) ++s;
@@ -151,9 +150,9 @@
 		++s;
 	}
-	if ( end != nullptr ) *end = (char*)s;
+	if ( end != nullptr ) *end = const_cast<char*>( s );
 	return positive ? result : -result;
 }
 
-uint32 buffer_to_uint32( const char* s, char** end )
+uint32 nv::buffer_to_uint32( const char* s, char** end )
 {
 	while ( *s == ' ' ) ++s;
@@ -161,12 +160,12 @@
 	while ( *s >= '0' && *s <= '9' )
 	{
-		result = ( result * 10 ) + (uint32)( *s - '0' );
+		result = ( result * 10 ) + static_cast<uint32>( *s - '0' );
 		++s;
 	}
-	if ( end != nullptr ) *end = (char*)s;
+	if ( end != nullptr ) *end = const_cast<char*>( s );
 	return result;
 }
 
-uint64 buffer_to_uint64( const char* s, char** end )
+uint64 nv::buffer_to_uint64( const char* s, char** end )
 {
 	while ( *s == ' ' ) ++s;
@@ -174,17 +173,17 @@
 	while ( *s >= '0' && *s <= '9' )
 	{
-		result = ( result * 10 ) + (uint32)( *s - '0' );
+		result = ( result * 10 ) + static_cast<uint32>( *s - '0' );
 		++s;
 	}
-	if ( end != nullptr ) *end = (char*)s;
+	if ( end != nullptr ) *end = const_cast<char*>( s );
 	return result;
 }
 
-float buffer_to_f32( const char* s, char** end )
+float nv::buffer_to_f32( const char* s, char** end )
 {
 	return strtof( s, end );
 }
 
-double buffer_to_f64( const char* s, char** end )
+double nv::buffer_to_f64( const char* s, char** end )
 {
 	return strtod( s, end );
