C++ 在MS Visual Studio 2010监视窗口中评估模板函数

C++ 在MS Visual Studio 2010监视窗口中评估模板函数,c++,visual-studio-2010,templates,C++,Visual Studio 2010,Templates,问题:是否有任何方法可以从MS Visual Studio Watch 2010窗口评估模板功能 详细信息:我知道如果我有以下功能: void Test (CString& sSample) { OutputDebugString (_T("The value of Sample is ") + sSample); } 我可以在Watch窗口中使用,并在调试时在output窗口中打印输出。但是,我发现当使用如下模板函数时,这不起作用: template<class T>

问题:是否有任何方法可以从MS Visual Studio Watch 2010窗口评估模板功能

详细信息:我知道如果我有以下功能:

void Test (CString& sSample)
{
   OutputDebugString (_T("The value of Sample is ") + sSample);
}
我可以在Watch窗口中使用,并在调试时在output窗口中打印输出。但是,我发现当使用如下模板函数时,这不起作用:

template<class T>
void Test (T& t)
{
   OutputDebugString (_T("The value when T is string is: ") + t);
}

我能设法做到吗?我知道autoexp.bat对变量很有帮助。但对于函数的行为却一无所知。有什么帮助吗

调试模板函数没有问题。这里的问题是OutputDebugString,它的参数是string,所以Text1+Text2不起作用,Text1+123不起作用。它恰好与CString一起工作,否则它就不是真正的模板材质

<>这将与VC++ 2013在C++=语言选项中工作,启用RTTI,它可能与VS 2010不工作:

template<class T> void Test2(T& t)
{
    OutputDebugStringA( "typeid(t).name=" );
    OutputDebugStringA( typeid(t).name() );
    OutputDebugStringA( "\n" );
}

int i = 0;
CString str = "str";
Test(i);
Test(str);

无论如何,只要试着简化模板函数,使其能够处理整数、浮点数等,或者使其能够区分数字和字符串。

我无法使用MS Visual Studio 2013进行测试。但我看到,即使我们避免在OutputDebugString中打印CString,模板函数求值在2010年也不起作用。