相关疑难解决方法(0)

我如何引用std :: sin(const valarray <double>&)?

我遇到一些valarray函数指针代码有问题:

double (*fp)(double) = sin;
valarray<double> (*fp)(const valarray<double> &) = sin;
Run Code Online (Sandbox Code Playgroud)

第一次编译,第二次编译:

error: no matches converting function 'sin' to type 'class std::valarray<double> (*)(const class std::valarray<double>&)'
Run Code Online (Sandbox Code Playgroud)

c++ functional-programming function-pointers

6
推荐指数
2
解决办法
1042
查看次数

C++中的条件运算符还能为我做什么?

使用条件运算符时,我遇到了一个奇怪的编译错误.

a,bint值,以下表达式得到编译错误.

(a>b)?( std::cout << a ) : ( b=MAX );
16 (b <unknown operator> 5)' 

(a>b)?( a=MAX ) : ( std::cout<<b );
16 (&std::cout)->std::basic_ostream<_CharT, _Traits>::operator<< [with _CharT = char, _Traits = std::char_traits<char>](b)' 
Run Code Online (Sandbox Code Playgroud)

但这个表达效果很好,这很奇怪..

(a>b)?( std::cout << a ) : ( std::cout<<b );
Run Code Online (Sandbox Code Playgroud)

我不知道是什么造成了这样的差异,并且不知道为什么编译错误代表.这是我的gcc信息:

Reading specs from ./../lib/gcc/mingw32/3.4.2/specs
Configured with: ../gcc/configure --with-gcc --with-gnu-ld --with-gnu-as --host=
mingw32 --target=mingw32 --prefix=/mingw --enable-threads --disable-nls --enable
-languages=c,c++,f77,ada,objc,java --disable-win32-registry --disable-shared --e
nable-sjlj-exceptions --enable-libgcj --disable-java-awt --without-x --enable-ja
va-gc=boehm --disable-libgcj-debug --enable-interpreter --enable-hash-synchroniz
ation --enable-libstdcxx-debug
Thread …
Run Code Online (Sandbox Code Playgroud)

c++ gcc conditional-operator

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