diff --git a/src/functions.h b/src/functions.h index 2bcb3c0..15a3805 100755 --- a/src/functions.h +++ b/src/functions.h @@ -64,7 +64,7 @@ public: void Insert(const wchar_t * key, UserFunction ufunction); void Insert(const std::wstring & key, UserFunction ufunction); - typename Iterator Find(const std::wstring & key); + Iterator Find(const std::wstring & key); Iterator Begin(); Iterator End(); diff --git a/src/generator.h b/src/generator.h index fd951a2..bb781d7 100755 --- a/src/generator.h +++ b/src/generator.h @@ -229,7 +229,6 @@ private: CharType ToLower(CharType c); bool AreStreamsEqual(StreamType & str1, StreamType & str2); - const std::wstring & GetStringFromStream(StreamType & str); bool FindInCache(const Item::Function & item_fun, typename Functions::UserFunction ** function, @@ -568,18 +567,6 @@ bool Generator::AreStreamsEqual(StreamType & str1, StreamType & str2 } -template -const std::wstring & Generator::GetStringFromStream(StreamType & stream) -{ - #ifdef EZC_HAS_SPECIAL_STREAM - const std::wstring & str = stream.Str(); - #else - const std::wstring & str = stream.str(); - #endif - -return str; -} - template void Generator::SetMax(size_t max_items_, size_t max_for_items_) @@ -767,7 +754,7 @@ bool Generator::FindInFunctionsAndBlocks(const std::wstring & name, { if( pfunctions ) { - Functions::Iterator i = pfunctions->Find(name); + typename Functions::Iterator i = pfunctions->Find(name); if( i != pfunctions->End() ) { @@ -911,7 +898,13 @@ bool Generator::CallBlock(Item & item_block, MakeText(item_block); - const std::wstring & str = GetStringFromStream(*output_stream); + #ifdef EZC_HAS_SPECIAL_STREAM + const std::wstring & str = output_stream->Str(); + #else + const std::wstring & str = output_stream->str(); + #endif + + out_stream << str; last_res = !str.empty(); @@ -949,7 +942,13 @@ std::wstring * variable; Call(fun_child, local_temp_stream, true, empty_stream); if( fun || item_block ) - fun_child.par = GetStringFromStream(local_temp_stream); + { + #ifdef EZC_HAS_SPECIAL_STREAM + fun_child.par = local_temp_stream.Str(); + #else + fun_child.par = local_temp_stream.str(); + #endif + } // the stream has to be cleared when we finished ClearStream(local_temp_stream); @@ -1178,7 +1177,12 @@ return res; template void Generator::WriteTmpStreamToStreams() { - const std::wstring & str = GetStringFromStream(output_tmp_stream); + #ifdef EZC_HAS_SPECIAL_STREAM + const std::wstring & str = output_tmp_stream.Str(); + #else + const std::wstring & str = output_tmp_stream.str(); + #endif + if( !str.empty() ) { @@ -1590,7 +1594,12 @@ void Generator::MakeTextDefine(Item & item) // it is [def name [function]] if( Call(*item.functions[0].parameters[0], stream_temp_define, true, empty_stream) ) { - const std::wstring & str = GetStringFromStream(stream_temp_define); + #ifdef EZC_HAS_SPECIAL_STREAM + const std::wstring & str = stream_temp_define.Str(); + #else + const std::wstring & str = stream_temp_define.str(); + #endif + pvars->Insert(item.functions[0].name, Vars::variable_string, str); } } diff --git a/src/item.h b/src/item.h index f68b829..18d7f4a 100755 --- a/src/item.h +++ b/src/item.h @@ -161,7 +161,7 @@ void Item::CacheFunctions(Functions & fun) { for(size_t f=0; f < functions.size() ; ++f) { - Functions::Iterator i = fun.Find(functions[f].name); + typename Functions::Iterator i = fun.Find(functions[f].name); if( i != fun.End() ) {