Вы, вероятно, захотите работать с объектами. Существуют ленивые версии конструкторских вызовов<new>,<delete>и набора литьев C++. Примеры:
construct<std::string>(arg1,arg2)// constructs a std::string from arg1, arg2new_<std::string>(arg1,arg2)// makes a new std::string from arg1, arg2delete_(arg1)// deletes arg1 (assumed to be a pointer)static_cast_<int*>(arg1)// static_cast's arg1 to an int*
Note
Обратите внимание, что по условности имена, которые конфликтуют с зарезервированными словами C++, добавляются с одним трейлинг-стримом<'_'>.