На С++ можно сделать что угодно. Вот только задающий этот вопрос, мне кажется, сам не до конца понял, что ему надо (не в обиду). Можно в eax пихнуть перед возвратом что угодно. На его уровне типов нет. Вот только что будет происходит в месте вызова функции? Как он будет разбираться, что ему вернули?
Да и без контекста тоже не понятно, для чего это нужно.
P.S. а предложить могу возвращать строку, которая будет представлять собой XML, например=) В таком случае решение о типе действительно будет приниматься на этапе выполнения.
P.P.S. интересно, почему никто не предложил union?