我的CPU具有以下CPU功能
cat /proc/cpuinfo
Processor : ARMv7 Processor rev 4 (v7l)
processor : 0
BogoMIPS : 1192.96
processor : 1
BogoMIPS : 1197.05
Features : swp half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt
CPU implementer : 0x41
CPU architecture: 7
CPU variant : 0x0
CPU part : 0xc07
CPU revision : 4
Hardware : sun7i
Revision : 0000
Run Code Online (Sandbox Code Playgroud)
和gcc设置
-march=armv7ve -mfloat-abi=hard -mfpu=vfpv3-d16 -meabi=5
Run Code Online (Sandbox Code Playgroud)
选项
cat main.c
#include <stdio.h>
void main()
{
printf("Hello World!\n");
}
Run Code Online (Sandbox Code Playgroud)
用.编译
gcc -march=native …Run Code Online (Sandbox Code Playgroud) 有一个功能
template <class ...T>
void foo(std::function<void(T...)> callback);
Run Code Online (Sandbox Code Playgroud)
我通过回调.
我想做点什么
foo(bar);
Run Code Online (Sandbox Code Playgroud)
bar例如,在哪里
void bar(int a, long b, double c, float d);
Run Code Online (Sandbox Code Playgroud)
但这给了我
error: no matching function for call to bar(void (&)(int, long int, double, float))
Run Code Online (Sandbox Code Playgroud)
我要打电话foo的
foo(std::function<void(int, long, double, float)>(bar));
Run Code Online (Sandbox Code Playgroud)
这太冗长了.甚至
foo<int, long, double, float>(bar);
Run Code Online (Sandbox Code Playgroud)
本来会更好.
foo(bar);
Run Code Online (Sandbox Code Playgroud)
会是理想的.
无论如何,我怎么能打电话来foo减少冗长?
编辑:声明foo必须保持不变.