标签: c1001

制作功能模板专业化虚拟法律?

在C++中,函数模板特化应该与正常函数完全相同.这是否意味着我可以制作一个虚拟的?

例如:

struct A
{
    template <class T> void f();
    template <> virtual void f<int>() {}
};

struct B : A
{
    template <class T> void f();
    template <> virtual void f<int>() {}
};

int main(int argc, char* argv[])
{
    B b;
    A& a = b;
    a.f<int>();
}
Run Code Online (Sandbox Code Playgroud)

Visual Studio 2005给出了以下错误:

致命错误C1001:编译器中发生内部错误.

c++ virtual templates specialization c1001

11
推荐指数
1
解决办法
5367
查看次数

VC++内部编译器错误

我得到以下错误,有人可以帮助我如何解决它.

致命错误C1001:内部编译器错误(编译器文件 'F:\ vs70builds\3077\VC \编译\ CxxFE\SL\P1\C\pdbmgr.cpp',行149)请选择Visual C中的技术支持命令++帮助菜单,或打开技术支持帮助文件以获取更多信息

visual-c++ c1001

11
推荐指数
2
解决办法
4255
查看次数

C++致命错误C1001:编译器中发生内部错误

在发布模式下编译时出现以下错误.

1>d:\users\eyal\projects\code\yalla\core\src\runbox\win32\window.cpp : fatal error C1001: An internal error has occurred in the compiler.
1>         (compiler file 'f:\dd\vctools\compiler\utc\src\p2\main.c', line 249)
1>          To work around this problem, try simplifying or changing the program near the locations listed above.
1>         Please choose the Technical Support command on the Visual C++
1>          Help menu, or open the Technical Support help file for more information
1>           link!RaiseException()+0x48
1>           link!CxxThrowException()+0x65
1>           link!std::_Xout_of_range()+0x1f
1>           link!InvokeCompilerPass()+0x1b4e2
1>           link!InvokeCompilerPass()+0x22efe
1>           link!InvokeCompilerPass()+0x2332e
1>           link!InvokeCompilerPass()+0x232f9
1>           link!InvokeCompilerPass()+0x233cb
1>           link!InvokeCompilerPass()+0x22b04
1> …
Run Code Online (Sandbox Code Playgroud)

c++ unique-ptr c1001

6
推荐指数
1
解决办法
2518
查看次数

只是向TMPing介绍自己,并遇到了一个怪癖

我只是想学习初学者的语法,以及当我在VS2008中编写这么短的代码时它是如何工作的.下面的代码用于添加数字1到499,但如果我添加1到500,编译器错误给我:

fatal error C1001: An internal error has occurred in the compiler.

而我只是想知道为什么会这样.编译器可以生成多少代码或者某些东西是否有一些限制,它恰好是我的一个很好的整数500?

#include <iostream>
using namespace std;

template < int b >
struct loop {
    enum { sum = loop< b - 1 >::sum + b };
};

template <>
struct loop< 0 > {
    enum { sum = 0 };
};

int main() {
    cout << "Adding the numbers from 1 to 499 = " << loop< 499 >::sum << endl;
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

c++ templates metaprogramming c1001

4
推荐指数
2
解决办法
323
查看次数

在Visual Studio 2010 Beta 2中定位.NET 3.5 C++/CLI

有没有人成功将VS 2008 C++/CLI(vcproj)项目转换为VS 2010项目(vcxproj),同时将.NET 3.5作为目标框架?我无法做到这一点并让项目成功构建.该项目在VS2008中编译为.NET 3.5,在VS2010中编译为.NET 4.0,但我无法在2010年使用.NET 3.5.IDE似乎没有为它提供选项,并且修改了vcxproj文件通过增加

<TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
Run Code Online (Sandbox Code Playgroud)

导致编译失败,并出现以下错误:

Error   1   error C1001: An internal error has occurred in the compiler.
Run Code Online (Sandbox Code Playgroud)

根据这个链接,在VS2008和2010之间使用的编译器显然存在一些差异,但仍然建议手动编辑项目文件作为解决方案.有没有人对此有任何想法?

.net c++-cli visual-studio-2010 visual-c++ c1001

3
推荐指数
1
解决办法
3760
查看次数

内部编译器错误和boost :: bind

我正在测试一个C++类,其中包含许多基本相同形式的函数:

ClassUnderTest t;

DATATYPE data = { 0 };
try
{
    t.SomeFunction( &data );
}
catch( const SomeException& e )
{
    // log known error
}
catch( ... )
{
    // log unknown error
}
Run Code Online (Sandbox Code Playgroud)

由于有很多这些,我以为我会写一个功能来完成大部分繁重的工作:

template< typename DATA, typename TestFunction >
int DoTest( TestFunction test_fcn )
{
    DATA data = { 0 };
    try
    {
        test_fcn( &data );
    }
    catch( const SomeException& e )
    {
        // log known error
        return FAIL;
    }
    catch( ... )
    {
        // log unknown …
Run Code Online (Sandbox Code Playgroud)

c++ boost bind c1001

2
推荐指数
1
解决办法
2925
查看次数

错误C1001"内部编译器错误"

我想在VS2010中运行VC++ 6项目.在那得到:

内部编译器错误..错误C1001

谁能告诉我如何纠正这个错误?我用Google搜索,我发现重新安装Service Pack将解决此问题.但事实并非如此.

porting visual-c++-6 visual-studio-2010 visual-c++ c1001

1
推荐指数
1
解决办法
4452
查看次数