C++ 将std::string转换为C+中带有参数的现有函数+;

C++ 将std::string转换为C+中带有参数的现有函数+;,c++,function,C++,Function,我在项目中实现了一个函数MyFunc(int,double,string)。例如,如何使用具有字符串表示形式的必要参数调用此函数 std::string str = "MyFunc(2, 3.12, \"Lemon Juice\")"; 那么标准函数呢,例如,如何调用time()具有std::string“time()” 好的,这里有更详细的任务。 我有一张地图 Data是一个包含许多子类的类包装器。调用Data.GetValue()方法时,它返回一个std::string,具体取决于子类内

我在项目中实现了一个函数
MyFunc(int,double,string)
。例如,如何使用具有字符串表示形式的必要参数调用此函数

std::string str = "MyFunc(2, 3.12, \"Lemon Juice\")";
那么标准函数呢,例如,如何调用
time()
具有
std::string“time()”


好的,这里有更详细的任务。 我有一张地图
Data
是一个包含许多子类的类包装器。调用
Data.GetValue()
方法时,它返回一个
std::string
,具体取决于子类内部数据。其中一个
数据
孩子必须返回
int
的字符串表示形式,另一个-双精度
的字符串表示形式,最后一个-当前日期和时间的字符串表示形式。问题是,我不知道如何调用标准函数<代码> cTime[/],以获得<代码>数据> <代码> CHILDS的信息。

< P> >不能使用C++。

< P>你不能在C++中执行源代码包含在字符串中的代码。可能最令人信服的动机是,C++ C++实现不需要在代码上运行的机器上有C++编译器,尽管它不仅仅是这样。 您可以在特定情况下执行此操作。这可能是:

特定于平台,例如:

  • 将源代码封装在一些样板文件中,然后从外部调用编译器,链接到它,或者将它嵌入到程序中。这将为您提供一个程序或库
  • 从外部运行该新程序,或动态链接该库
特定于输入,例如:

    <>你可以将函数调用解析为一个特定的已知函数,以文字为参数,相对容易,而不需要完整的C++编译器。将参数值输出到变量中并调用函数。但是如果你要这样做,你可以为字符串指定一个更容易的可解析格式,而不是一个看起来像C++函数调用的格式。
听起来好像在您的任务中有一个字符串:

  • int
  • 双精度的表示法
  • 日期和时间的表示

你没有说你想用这个字符串做什么,但是不管是什么,你可能需要(a)检查这个字符串,找出它是三个字符串中的哪一个,然后(b)做一些适合该格式的事情。更好的是,您可以让派生类负责返回相同的表示,而不管三个
GetValue()
中的哪一个返回。例如,如果您真正想要的是1970秒后,添加一个<代码> GETBASESSIONEPOCU< /COD>函数,并在每个类中实现不同。

如其他人所提到的,C++本身不能做到这一点。但是,外部框架可以帮助您


(用于CERN)为C++提供了一个与解释器一起的反映。您将能够执行/解释方法调用或宏代码中的C++编写的宏。 不容易。您希望能够调用任何函数,还是只调用几个特定的函数?这是脚本语言的主要应用程序。许多脚本语言与C++集成得相当好,例如,看看LUA,你需要什么?正如其他人所说,这是非常非常困难的。对于你需要的东西,可能有更简单的选择。这让我想起了我想读的一个博客:史蒂夫,你说得对,我已经更正了描述。当然,数据不是抽象类。虽然或多或少(C++脚本库)是正确的,但这并不是很有用……当然,他可以做到这一点,他只需要编写一个解析器,将这些字符串转换成调用。我们公司有一个库,它可以提供数百个,也许数千个库函数。我可以在家里使用任何开源函数吗?还是本地项目?由于计算机安全团队发现安全问题,根网站已关闭,应该很快就会恢复。。。