С++ одни и те же параметры функции с другим типом возвращаемого значенияC++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 С++ одни и те же параметры функции с другим типом возвращаемого значения

Сообщение Anonymous »

Мне нужно найти способ имитировать перегрузку типа возвращаемого значения функции в C++.

Я знаю, что нет способа сделать это напрямую, но я надеюсь, что есть какой-то нестандартный способ обойти эту проблему.
Мы создаем API для работы пользователей, и они будут передавать строку данных, которая получает значение на основе строковая информация. Эти значения относятся к разным типам. По сути, мы хотели бы позволить им это сделать:

Код: Выделить всё

int = RetrieveValue(dataString1);
double = RetrieveValue(dataString2);
// Obviously, since they don't know the type, they wouldn't use int =.... It would be:
AnotherFunction(RetrieveValue(dataString1)); // param of type int
AnotherFunction(RetrieveValue(dataString2)); // param of type double
Но это не работает в C++ (очевидно).
Сейчас мы настраиваем его так, чтобы они вызывали:

Код: Выделить всё

int = RetrieveValueInt(dataString1);
double = RetrieveValueDouble(dataString2);
Однако мы не хотим, чтобы им нужно было знать тип их строки данных.

К сожалению, нам не разрешено использовать внешние библиотеки, поэтому не используйте Boost.

Есть ли способы обойти это?

Просто поясню: я понимаю, что C++ изначально не может этого сделать. Но должен быть какой-то способ обойти это. Например, я думал о том, чтобы сделать RetieveValue(dataString1, GetType(dataString1)). На самом деле это ничего не исправляет, поскольку GetType также может иметь только один тип возвращаемого значения. А мне нужно что-то подобное.

Я понимаю, что этот вопрос уже задавался, но в другом смысле. Я не могу использовать ни один из очевидных ответов. Мне нужно что-то совершенно нестандартное, чтобы оно мне пригодилось, чего не было ни в одном из ответов на другой заданный вопрос.

Подробнее здесь: https://stackoverflow.com/questions/148 ... eturn-type
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C++»