This error has me completely stumped. I've never heard of it (or had it) before.

I've got a Write function in my Dataf class, which needs to be able to write all manner of data to the specified file, so I declared it a template function:

Code:
template <typename T> void Dataf::Write<T> (std::string fileName, T data)
{
		std::ostream	fd (fileName.c_str());
		std::string	 errorBuf ("Error opening data file [");

		if (!fd.is_open()) {
			 errorBuf += fileName + "], make sure you have write permissions.\n";
				KillGame (errorBuf);
		}

		fd >> data;
}
Only the Write function is a template, not the entire class. For reference:

Code:
class Dataf
{
		public:
				Dataf ();
				~Dataf ();

			    std::string Read (std::string fileName);
			 template <typename T> void Write<T> (std::string fileName, T data);
		private:

};
Here's the exact error output:

include/dataf.h:20: error: partial specialization `Write<T>' of function
template
dataf.cpp:45: error: partial specialization `Write<T>' of function template
I took a look at this error and just said 'what?'.

*edit*

Ewww, I just looked at the layout. Not pretty, but I blame VIM