Вы можете это сделать, но это не так, но это будет работать только в системах , где установлен компилятор C++. В принципе, C++ составляет , поэтому, если вы хотите выполнить некоторую строку, которая является C++, , вам придется ее скомпилировать: напишите ее в файл (возможно, с дополнительным шаблоном ), вызовите компилятор (с system
), чтобы создать DLL, а затем загрузить DLL.
На практике, даже если вы пошли на все это, вы, вероятно, найдете это менее полезным, чем вы думаете. Поскольку C++ требует статических объявлений для почти всего, гораздо труднее написать такие небольшие фрагменты и использовать их. (Вы, например, , должны были бы обернуть его в функцию и сгенерировать extern
для всех переменных, которые он использует.) C++ не поддерживает такого рода вещи для целей разработки программного обеспечения; те самые функции , которые делают языки, подобные Python, настолько гибкими для небольших, быстро написанных программ, вызывают серьезные проблемы с обслуживанием, когда используется в крупномасштабном надежном программном обеспечении. Различные языки - это , предназначенные для разных целей. Очень легко создать систему смешанного языка, использующую Python для верхнего уровня клея (где вы хотели бы создать такой объект, как вы описали), и , вызывающий на C++ для тяжелой работы (где такое средство разрешает пользователю для запуска ядровых отвалов по желанию).
Кроме того, вы можете реализовать небольшой язык на C++. Для , сохраняя определенные пользователем переменные, например, используйте std::map
, вместо объявления переменных. (То есть, в конце концов, что Python делает под капотом.)
Нет, вы не можете сделать это на C++, это другой вид языка.Если вы хотите написать эту функцию самостоятельно, то это по сути то же самое, что писать компилятор C++ и компоновщик. Нелегкая задача. – john
@ john ok не существует какой-либо другой функции, которая поможет мне? или как я могу написать этот код без использования exec –
Это зависит от того, что вы хотите сделать. Вместо того, чтобы говорить, может ли C++ сделать это, или может C++ сделать это, описать проблему, которую вы хотите решить. Он будет разрешен в C++. – john