diff --git a/source/simple/file.hpp b/source/simple/file.hpp
index 4293f1511a2eea92b9db451f205aacfebbeb72f6..0e0bf7521b9d46ca8e8d7e7b1c4789efedca1dde 100644
--- a/source/simple/file.hpp
+++ b/source/simple/file.hpp
@@ -24,6 +24,7 @@ namespace simple
 	static const string path_delimeters = R"(/\)"s;
 
 	inline size_type size(stream& file);
+	inline size_type size(stream&& file);
 
 	inline void dump(stream& from, char* to, size_type this_much);
 	template<typename Alloc = dfltAlloc>
@@ -142,10 +143,16 @@ namespace string_stack
 	inline size_type size(stream& file)
 	{
 		auto current = file.tellg();
-		file.seekg(0, file.end);
-		auto size = file.tellg();
+		auto ret = size(std::move(file));
 		file.seekg(current);
-		return size;
+		return ret;
+	}
+
+	inline size_type size(stream&& file)
+	{
+		file.seekg(0, file.end);
+		auto ret = file.tellg();
+		return ret;
 	}
 
 	inline void dump(stream& from, char* to, size_type this_much)