我已经实现了一个复杂的状态机,具有许多状态转换,用于安全SIL 4系统.这个实现的后骨是使用函数指针完成的.当一切顺利航行时,V&V反对在SIL 4系统中使用功能指针.参考 - 规则9 NASA .Misra C 2004然而并没有说不能使用函数指针.
有没有其他方法可以在没有任何函数指针的情况下实现复杂的状态机?
MISRA C ++规则18-4-1说:
不得使用动态堆内存分配。
请参阅:http : //dist.sonarsource.com/reports/coverage/misra_c++_2008.html
根据此规则,std::stringMISRA C ++规则允许std::string这样做,因为当字符串变大时确实会分配内存。另外,什么样的课程std::stringstream呢?