I am trying to call inside function of map.but that is no work.
<code>#include <iostream>
#include <map>
#include <string>
#include <functional>
#include <utility>
#include <cstdint>
pair<int, vector<uint8_t> > TypeNUMMFunc(uint8_t received_data, int fileN);
typedef pair<int, vector<std::uint8_t> > (*MyFunctionType)(uint8_t, int);
map<int, MyFunctionType> funcMap;
int main() {
pair<int, vector<uint8_t> > TypeNUMMFunc(uint8_t received_data, int fileN) {
return make_pair(1, vector<uint8_t>{1, 2, 4});
}
funcMap["typeNULL"] = &TypeNUMMFunc;
// call map funciton
funcMap["typeNULL"](1, 2);
// here, i recevied error
}
</code>
<code>#include <iostream>
#include <map>
#include <string>
#include <functional>
#include <utility>
#include <cstdint>
pair<int, vector<uint8_t> > TypeNUMMFunc(uint8_t received_data, int fileN);
typedef pair<int, vector<std::uint8_t> > (*MyFunctionType)(uint8_t, int);
map<int, MyFunctionType> funcMap;
int main() {
pair<int, vector<uint8_t> > TypeNUMMFunc(uint8_t received_data, int fileN) {
return make_pair(1, vector<uint8_t>{1, 2, 4});
}
funcMap["typeNULL"] = &TypeNUMMFunc;
// call map funciton
funcMap["typeNULL"](1, 2);
// here, i recevied error
}
</code>
#include <iostream>
#include <map>
#include <string>
#include <functional>
#include <utility>
#include <cstdint>
pair<int, vector<uint8_t> > TypeNUMMFunc(uint8_t received_data, int fileN);
typedef pair<int, vector<std::uint8_t> > (*MyFunctionType)(uint8_t, int);
map<int, MyFunctionType> funcMap;
int main() {
pair<int, vector<uint8_t> > TypeNUMMFunc(uint8_t received_data, int fileN) {
return make_pair(1, vector<uint8_t>{1, 2, 4});
}
funcMap["typeNULL"] = &TypeNUMMFunc;
// call map funciton
funcMap["typeNULL"](1, 2);
// here, i recevied error
}
error message:
exit code: 139 (interrupted by signal 11:SIGSEGV)
make_pair(1, vector<uint8_t>{1, 2, 4}); can exec, but in map, can not exec.