是否有 std::function 的独立实现? [英] Is there a standalone implementation of std::function?

查看:31
本文介绍了是否有 std::function 的独立实现?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在开发嵌入式系统,因此代码大小是一个问题.使用标准库将我的二进制大小增加了大约 60k,从 40k 增加到 100k.我想使用 std::function,但我不能证明它是 60k 的.是否有我可以使用的独立实现,或类似的东西?我正在使用它在 c++ 11 中使用绑定变量在成员函数中隐式转换 lambda.

I'm working on an embedded system, so code size is an issue. Using the standard library ups my binary size by about 60k, from 40k to 100k. I'd like to use std::function, but I can't justify it for 60k. Is there a standalone implementation that I can use, or something similar? I'm using it to implicitly cast lambdas in member functions with bound variables in c++ 11.

推荐答案

60k 来自编译器添加的异常处理,因为 std::function 需要异常.std::function 只抛出一个异常,bad_function_call".所以我删除了引发异常的代码,现在如果调用一个空函数,它会出现错误,我为自己节省了 60k.

The 60k came from exception handling being added by the compiler, because exceptions were required for std::function. std::function only throws one exception, "bad_function_call". So I removed the code that threw the exception, now it seg faults if an empty function is called, and I saved myself 60k.

这篇关于是否有 std::function 的独立实现?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆