I am wondering if the following is even possible, if so what am I doing wrong?
ErrorsCode:#include <boost/ptr_container/ptr_vector.hpp>
#include <boost/any.hpp>
class VarList
{
private:
boost::ptr_vector<boost::any> variables;
public:
VarList(){};
~VarList(){};
int NewVar(boost::any* var)
{
variables.push_back(var);
return variables.size()-1;
};
template<typename valtype>
valtype GetVar(size_t index);
};
template<> int VarList::GetVar<int>(size_t index)
{
return boost::any_cast<int>(variables.at(index));
};
template<> std::string VarList::GetVar<std::string>(size_t index)
{
return boost::any_cast<std::string>(variables.at(index));
}
#include <iostream>
#include <string>
int main()
{
VarList test;
test.NewVar(new boost::any(100));
test.NewVar(new boost::any(std::string("Test String")));
std::cout << "Var[0] = " << test.GetVar(0) << std::endl;
std::cout << "Var[1] = " << test.GetVar(1) << std::endl;
system("pause");
return 0;
}
Thank you very much for any assistance.Code:1>------ Build started: Project: VariaFunctionScript, Configuration: Debug Win32 ------
1>Compiling...
1>VariaFunctionScript.cpp
1>c:\documents and settings\cody doughty\my documents\visual studio 2008\projects\variafunctionscript\variafunctionscript\variafunctionscript.cpp(44) : error C2783: 'valtype VarList::GetVar(size_t)' : could not deduce template argument for 'valtype'
1> c:\documents and settings\cody doughty\my documents\visual studio 2008\projects\variafunctionscript\variafunctionscript\variafunctionscript.cpp(22) : see declaration of 'VarList::GetVar'
1>c:\documents and settings\cody doughty\my documents\visual studio 2008\projects\variafunctionscript\variafunctionscript\variafunctionscript.cpp(45) : error C2783: 'valtype VarList::GetVar(size_t)' : could not deduce template argument for 'valtype'
1> c:\documents and settings\cody doughty\my documents\visual studio 2008\projects\variafunctionscript\variafunctionscript\variafunctionscript.cpp(22) : see declaration of 'VarList::GetVar'
1>Build log was saved at "file://c:\Documents and Settings\Cody Doughty\My Documents\Visual Studio 2008\Projects\VariaFunctionScript\VariaFunctionScript\Debug\BuildLog.htm"
1>VariaFunctionScript - 2 error(s), 0 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========