Nie, nie ma do tego wbudowanych narzędzi w języku (a przynajmniej w C++ie i większości języków).
Pamiętaj, że kod C++a jest kompilowany do kodu wykonywanego przez procesor. Gdzieś musi znaleźć się kod, który "przekonwertuje" znak '*' na ciąg instrukcji procesora odpowiedzialnych za wykonanie mnożenia. Albo ten kod do mnożenia jest tworzony dynamicznie (wtedy to tak zwane kompilowanie na żywo, JIT) albo po prostu już jest w programie. To drugie rozwiązanie jest znacznie mniej skomplikowane i wystarczy do praktycznie wszystkich zastosowań, poza interpreterami.
if (character == '+')
x = a + b;
else if (character == '*')
x = a * b;
Albo na przykład przez mapowanie znaku na funkcję:
std::unordered_map<char, int(int, int)> character_functions = {
{'*', [](int a, int b){return a*b;}},
{'+', [](int a, int b){return a+b;}},
{'-', [](int a, int b){return a-b;}},
};
char c = '*';
int wynik = character_functions[c](a, b);