VS 2012模板错误
VS 2012 template errors
我已经用这段代码在C++/CLI中封送字符串一段时间了。最近我更新到VS 2012 RC来尝试一下。我真的很喜欢这个简单的设计,但我的包含clix.h的项目都无法编译。它在2010年运行得很好…可能有什么问题?谢谢你的回答!
以下是编译器输出:
- 警告C4346:'clix::detail::IsManagedString::Result'依赖名称为不是类型
- 错误C2988:无法识别的模板声明/定义
- 错误C2059:语法错误:"<"
- 错误C2039:"Result":不是"全局命名空间"的成员
- 错误C2143:语法错误:缺少";"在"}"之前
代码块错误位于:
typename detail::Select<detail::IsManagedString<SourceType>::Result>::Type<
typename detail::StringTypeSelecter<encoding>::Type,
System::String ^>::Result marshalString(SourceType string) {
// Pass on the call to our nifty template routines
return detail::StringMarshaler<
detail::IsManagedString<SourceType>::Result ? detail::CxxFromNet : detail::NetFromCxx
>::marshal<encoding, SourceType>(string);
}
例如,源文件:
#include "clix.h"
int main()
{
}
可以在此链接上找到Clix头文件。
你本可以把这个问题发布在我的博客上,它没有被放弃或其他什么:)
我碰巧安装了Visual Studio 2012 RC并修复了该问题。您可以在链接的位置找到clix标头的新版本。
背景:微软的新编译器似乎对嵌套模板中的typedef有点挑剔,因为嵌套模板的父模板专门用于整数类型。无论如何,我找到了一种既适用于Visual C++2010又适用于Visual C++2012 RC的方法。
相关文章:
- 使用Visual Studio 2012编译时,此代码会给我错误,但是使用代码块就可以了
- 在 Visual Studio 2012 中使用 "= delete" 时出现编译器错误
- gdal201.dll在Visual Studio 2012上的计算机错误中缺少
- Visual Studio Express 2012 中的"dll not found"错误
- 包含:stdafx.h 和 <vector> VisualStudio 2012 C++ 之间的冲突(错误 C2953:已定义类模板)
- 静态链接 MFC 时,未修改的 Visual Studio 2012 MFC 模板中出现链接错误
- Visual C++ 2012 中的编译器错误?(乱七八糟的跳转地址)
- Visual Studio 2012错误C2248在STD ::线程中
- Visual C 2012(x86)中可能的编译器错误
- Visual Studio 2012 错误 C2039: 'serialize': 不是 'std::shared_ptr<_Ty>' 的成员
- C++/VS 2012-多项目解决方案:一个项目中存在链接器错误,但另一个项目没有
- VS Express 2012 C++ lambda 智能感知错误
- C++,Visual Studio 2012和错误4700,用于简单程序中的类变量
- LNK2019错误,在Visual Studio 2012 C++的main中使用的函数
- Visual Studio 2012 中的错误日志不清楚
- C++Visual Studio 2012链接器错误
- VS 2012模板错误
- vc++2010/2012:std::包含unique_ptr编译器错误的结构的向量
- MSVS 2012 "ambiguous call to overloaded function"中的编译器错误
- C++Visual Studio学习版2012中的舍入错误