Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/137.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ VC+中的Cfitsio错误+;6_C++_Class_Templates_Visual C++ - Fatal编程技术网

C++ VC+中的Cfitsio错误+;6

C++ VC+中的Cfitsio错误+;6,c++,class,templates,visual-c++,C++,Class,Templates,Visual C++,我正在连接两个软件,其中一个是使用sfits库处理fits图像,在编译程序时,它在XLOCALE文件中显示错误,该文件在vc98/include文件夹中接收,我使用vc 6.0和XP 错误:错误C2955:“ctype”:使用 类模板的类型需要模板 参数列表C:\程序 文件\Microsoft Visual 研究6\VC98\INCLUDE\xlocale(513): 请参阅“ctype”的声明 错误指向行:int 适合\u获取\u压缩\u类型(fitsfile *fptr、int*ctype、

我正在连接两个软件,其中一个是使用sfits库处理fits图像,在编译程序时,它在XLOCALE文件中显示错误,该文件在vc98/include文件夹中接收,我使用vc 6.0和XP

错误:错误C2955:“ctype”:使用 类模板的类型需要模板 参数列表C:\程序 文件\Microsoft Visual 研究6\VC98\INCLUDE\xlocale(513): 请参阅“ctype”的声明

错误指向行:int 适合\u获取\u压缩\u类型(fitsfile *fptr、int*ctype、int*status)

在XLOCALE文件中,其指向:

template<class _E>
        class ctype : public ctype_base {
public:
        typedef _E char_type;

        ctype(const _Locinfo& _Lobj, size_t _R = 0)
                : ctype_base(_R) {_Init(_Lobj); }
        static size_t __cdecl _Getcat()
                {return (_LC_CTYPE); }
_PROTECTED:
        virtual ~ctype()
                {if (_Ctype._Delfl)
                        free((void *)_Ctype._Table); }
protected:


        virtual const _E *do_narrow(const _E *_F, const _E *_L,
                char, char *_V) const
                {for (; _F != _L; ++_F, ++_V)
                        *_V = (char)_NARROW(_E, *_F);
                return (_F); }
private:
        _Locinfo::_Ctypevec _Ctype;
        };
template<class _E>
        locale::id ctype<_E>::id;
模板
类别ctype:公共ctype_基{
公众:
类型定义为字符类型;
ctype(const\u Locinfo和\u Lobj,size\u t\u R=0)
:ctype_base(_R){_Init(_Lobj);}
静态大小\u t\u\u cdecl\u Getcat()
{return(_LC_CTYPE);}
_受保护:
虚拟~ctype()
{if(_Ctype._Delfl)
自由((void*)_Ctype._Table);}
受保护的:
虚拟常数do_窄(常数E*F,常数E*L,
char,char*V)const
{for(;_F!=_L;++u F,++u V)
*_V=(字符)窄(_E,*_F);
返回(_F);}
私人:
_Locinfo::\u Ctypevec\u Ctype;
};
模板
locale::id ctype::id;

提前感谢…

ctype是类型的模板,而不是类型本身。您的参数必须是
ctype
ctype
,这取决于您使用的字符类型。

ctype是类型的模板,而不是类型本身。您的参数必须是
ctype
ctype
,这取决于您使用的字符类型。

非常感谢您的回复,但是您能详细说明一下吗,因为我不知道在哪里进行更正…在调用函数时,ctype被称为(int*ctype)…thnx。啊,我得到的印象是您试图使用类模板ctype,显然编译器也是如此。但你没有,你只是用同一个名字。在该代码附近是否有使用命名空间std的
?这可能会混淆编译器。VC6没有那么可靠…thanx需要回复,我已经检查了是否使用nqmespace std,但它不在该文件中的任何位置..我记得VC6在名称查找方面存在重大问题。我真的不想麻烦了。只需重命名变量,或者(甚至更好)升级到最新的VC版本。非常感谢先生的回复,但请您详细说明一下,因为我不知道在哪里进行更正…在调用函数时,ctype被称为(int*ctype)…thnx。啊,我得到的印象是您尝试使用类模板ctype,显然,编译器也是如此。但你没有,你只是用同一个名字。在该代码附近是否有使用命名空间std的
?这可能会混淆编译器。VC6没有那么可靠…thanx需要回复,我已经检查了是否使用nqmespace std,但它不在该文件中的任何位置..我记得VC6在名称查找方面存在重大问题。我真的不想麻烦了。只需重命名变量,或者(甚至更好)升级到最新的VC版本。