I am trying to make a Serialization Class here the code follows.
serialize.h http://pastebin.com/f1e82ff7f
serialize.cpp http://pastebin.com/f4d7fc1faCode://serialize.h
#ifndef SERIALIZE_H
#define SERIALIZE_H
#include <fstream>
#include <iostream>
#include <string>
#include <typeinfo>
#include "serializationexception.h"
using std::string;
using std::ofstream;
using std::ifstream;
using std::ios;
using std::ios_base;
template <class T>
class Serialization{
public:
static T load(const string&) throw(SerializationException, fileUnAccessible, fileUnReadable);
static void store(T, const string&) throw(SerializationException, fileUnAccessible, failedToWrite);
};
#endif
and on the main() I want to use it in this way.Code://serialize.cpp
#include "serialize.h"
template <class T>
T Serialization<T>::load(const string& fileName) throw(SerializationException, fileUnAccessible, fileUnReadable){
ifstream srzFStream(fileName.c_str(), ios_base::binary);
if(srzFStream.fail()){
throw fileUnAccessible(typeid(T).name(), fileName);
}
T obj;
srzFStream.read((char*)obj, sizeof(obj));
return obj;
}
template <class T>
void Serialization<T>::store(T obj, const string& fileName) throw(SerializationException, fileUnAccessible, failedToWrite){
ofstream srzFStream(fileName.c_str(), ios_base::binary);
if(srzFStream.fail()){
throw fileUnAccessible(typeid(obj).name(), sizeof(obj), fileName);
return;
}
srzFStream.write((char*)obj, sizeof(obj));
if(srzFStream.fail()){
throw failedToWrite(typeid(obj).name(), sizeof(obj), fileName);
return;
}
}
main()
But I get Linker Error from main()Code://main()
string y,x="Neel Basu";
Serialization<string>::store(x, "/home/neel/Desktop/name.srl");//Line 51
y=Serialization<string>::load("/home/neel/Desktop/name.srl");//Line 52
serialize.h is include in the file that contains the main() and It also builds the serialize.o Object Module too But Cant find the reference to the methods.Code:/home/neel/dev.cpp/web/src/web.cpp:51: undefined reference to `Serialization<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >::store(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
/home/neel/dev.cpp/web/src/web.cpp:52: undefined reference to `Serialization<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >::load(std::basic_string<char, std::char_traits<char>
I cant understand why any Help Please.
Thank you.

