sinojelly / mockcpp

Two C/C++ testing tools, mockcpp and testngpp.
Apache License 2.0
66 stars 39 forks source link

VS2010 error C4519: default template arguments are only allowed on a class template #37

Open git45016683 opened 2 years ago

git45016683 commented 2 years ago

系统:win10 IDE:VS2010 版本:master版本/2.7分支

Cmake选择VS2010后编译mockcpp通过,但是include到工程后,提示 “mockcpp/ChainingMockHelper.h(61): error C4519: default template arguments are only allowed on a class template”。 然后尝试使用mockcpp目录下的test确认下,也是cmake选择VS2010生成的工程,VS2010打开后,编译时同样报一样的错误: “mockcpp/ChainingMockHelper.h(61): error C4519: default template arguments are only allowed on a class template”

ChainingMockHelper.h文件的61行是一个 "}"

template <typename V, typename D = std::default_delete<V>>
Constraint* eq(const V* val)
{
    return new IsEqual<std::unique_ptr<V, D> >(val);
} <-----line61

期望大佬回复

sinojelly commented 2 years ago

报错的意思是,template带默认参数, 只能用在类模板场景。现在是方法模板,VS就报错了。

可能在 VS 下,要找个其它方案,或者查询下VS新版本,是否能支持这个场景。