小编Ant*_*nio的帖子

错误:'>'之前的预期primary-expression:试图使用模板化类的模板方法的模板化函数

在玩模板和仿函数(这个问题中没有)时,我最终遇到了以下简化问题.

以下代码(此处也可用)

class A {
    public:
    template <class T> 
      bool isGood(int in) const {
      const T f;
      return in < f.value();
      }

};

class B {
    public:
    int value() const {return 10;}
};

template <class T>
bool tryEvaluator(T& evaluator, int value) {
    return evaluator.isGood<B>(value);
    }


int main( int argc, const char* argv[] ) {
  const A evaluator;
  evaluator.isGood<B>(20); //Seemingly no problem here
  tryEvaluator(evaluator,20);
  return 0;
  }
Run Code Online (Sandbox Code Playgroud)

生成错误

main.cpp:18:34: error: expected primary-expression before ‘>’ token
         return evaluator.isGood<B>(value);
                                  ^
Run Code Online (Sandbox Code Playgroud)

是否可以执行我想要做的事情?我是否需要添加一些关键字? …

c++ templates

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

OUTDATED - OpenCV的错误模式

我正在使用OpenCV 1进行一些图像处理,并对cvSetErrMode函数(它是CxCore的一部分)感到困惑.

OpenCV有三种错误模式.

  • Leaf:在调用错误处理程序后终止程序.
  • 父:程序未终止,但调用错误处理程序.
  • 无声:与父模式类似,但不调用错误处理程序

在我的代码开始时,我调用cvSetErrMode(CV_ErrModeParent)从默认的'leaf'模式切换到'parent'模式,这样我的应用程序就不会因弹出异常/断言而终止.不幸的是,"父母"模式似乎不起作用.我仍然弹出消息对话框,我的应用程序仍然终止.

如果我调用cvSetErrMode(CV_ErrModeSilent)然后它实际上是静默的,不再退出应用程序或抛出一个对话框...但这也意味着我不知道发生了错误.在这种情况下,我认为模式正确设置.

有没有其他人似乎以前的这种行为,并可能能够推荐一个解决方案?

参考文献:

c c++ opencv

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

我可以关闭从cmd输入的这个"for"循环的回声吗?

我试图用这个优秀的答案.

有没有办法让一个命令行执行以下操作(删除所有大小为零的文件)而不打印任何输出?

for /r %F in (*) do if %~zF==0 del "%F"
Run Code Online (Sandbox Code Playgroud)

(它显示所有扩展的命令,当大小不为零时)

我试图使用如何在cmd.exe中将stderr重定向为null,(尝试>,1>和2>)但没有用...

windows cmd

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

你能安全地检查无限的标志吗?

在过去,我们一直在使用Visual Studio的_fpclass来了解无限是积极还是消极:http: //msdn.microsoft.com/en-us/library/aa246882%28v=vs.60%29.aspx

传递到std :: fpclassify,正负无限之间没有区别:http://en.cppreference.com/w/cpp/numeric/math/fpclassify

我可以使用其中一种方法安全地检查无限的符号吗?
C/C++中是否有标准符号函数(signum,sgn)?

注意:

  • 如果启用了fastmath,则独立
  • 以便携的方式

笔记2:

  • C++ 11适用

c++ floating-point

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

当应用于浮点值时,std::abs 和 std::fabs 之间有什么区别吗?

有一个相关的问题,但我相信它没有回答这个问题。

查看std::absstd::fabs文档,他们似乎具有完全相同的行为。作为个人注释,在我看来这std::fabs是可取的,因为它减轻了(见注释)中std::abs(int)定义的歧义。<cstdlib>

所以我的问题是:除了std::abs(int)潜在的歧义之外std::absstd::fabs在应用于浮点值之间以及在应用于浮点值时是否有任何区别?

c++ floating-point absolute-value

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

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

使用SSE2指令集查找3个值的中值

我的输入数据是16位数据,我需要使用SSE2指令集找到3个值的中值.

如果我有3个16位输入值A,B和C,我想这样做:

D = max( max( A, B ), C )
E = min( min( A, B ), C )
median = A + B + C - D - E
Run Code Online (Sandbox Code Playgroud)

我计划使用的C函数是:

  • max - _mm_max_epi16
  • min - _mm_min_epi16
  • 另外 - _mm_add_epi16
  • 减去 - _mm_sub_epi16

有谁能建议更好的方法?

c algorithm sse2

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

需要摆脱memset警告

如果我编译下面的代码,我会收到这样的警告:

警告:内置函数memset的不兼容隐式声明[默认启用]

void transform(int **a, int m, int n)
{
    int *row = malloc(m*sizeof(int));
    int *col = malloc(n*sizeof(int));
    memset(row, 0, sizeof(row));
    memset(col, 0, sizeof(col));
    [...]
Run Code Online (Sandbox Code Playgroud)

c warnings memset

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

函数或函子作为模板参数?(如果它不需要一个州)

函数关于函数的优点据说是它们保持状态.让我们说在我的问题中这不是一个相关的功能.

当我定义一个模板化的函数/类时,是否有任何规则可以选择将函数或函子作为模板参数更好?或者我可以基本上做同样的事情,所以这取决于我的口味?

(相关问题:Functor vs模板参数)

编辑:
我的问题部分回答(对于用户方)这里:使用这个无状态类与函数调用操作符vs ac样式函数的原因?

c++ templates function-pointers functor

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

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

为什么 PointerAlignment 选项不起作用?

我正在使用version 8.0.0 (tags/google/stable/2019-01-18)带有样式文件的clang-format ( ),我在其中设置了

…
PointerAlignment: Left
…
Run Code Online (Sandbox Code Playgroud)

这成功地转换了这样的声明

const string &foo = "lorem ipsum";
Run Code Online (Sandbox Code Playgroud)

进入

const string& foo = "lorem ipsum";
Run Code Online (Sandbox Code Playgroud)

但是,当我还包含在我的样式文件中时

BasedOnStyle: Google
Run Code Online (Sandbox Code Playgroud)

选项不做任何事情。出于某种原因,它们被基本样式覆盖。这对我来说似乎是荒谬的——显式选项应该覆盖基本样式,不是吗?有人可以解释问题是什么以及如何同时使用BasedOnStylePointerAlignment: Left吗?

c++ formatting clang clang-format

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

为什么在实践中向右移位会在霓虹灯和SSE中向左移位(反之亦然)?

(注意,在Neon我使用这种数据类型以避免处理16位数据类型之间的转换)

为什么实践中"内移"中的"左移"是"向右移"?

// Values contained in a
// 141 138 145 147 144 140 147 153 154 147 149 146 155 152 147 152
b = vshlq_n_u32(a,8);
// Values contained in b
// 0 141 138 145 0 144 140 147 0 154 147 149 0 155 152 147
b = vshrq_n_u32(a,8);
// Values contained in b
// 138 145 147 0 140 147 153 0 147 149 146 0 152 147 152 0
Run Code Online (Sandbox Code Playgroud)

我记得在使用时会发现相同的情况_mm_slli_si128(虽然不同但是换班后的结果如下所示:

// …
Run Code Online (Sandbox Code Playgroud)

c++ sse shift intrinsics neon

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