class A {};
class B {};
class C {};
class D {};
//A+B , A+C, B+C , A+D, D+C namely all of these combinations will be possible just one functions
ответ
template <typename T, typename U>
void foo(const T& pX, const U& pY)
{
// do stuff
}
Это не то, что вы хотите, сами по себе, как это делает новую функцию для каждой отдельной комбинации T
и U
, но это один шаблон функции.
Это запрещает T
и U
быть тем же самым:
template <bool> struct static_assert {};
template <> struct<true> static_assert {};
#define STATIC_ASSERT(pValue) static_assert<(pValue)>()
// ...
template <typename T, typename U>
struct is_different
{
static const bool value = true;
};
template <typename T>
struct is_different<T, T>
{
static const bool value = false;
};
// ...
template <typename T, typename U>
void foo(const T& pX, const U& pY)
{
STATIC_ASSERT(is_different<T, U>::value);
// do stuff
}
Если OP только хочет написать одну функцию для всех возможных комбинаций, то это единственный способ пойти. Тем не менее, также следует использовать полиморфизм для записи одной функции добавления для каждого класса. – Puppy
Сюда входят A + A, B + B, B + A и т. Д., Которые не допускаются в вопрос. –
@ Кирилл: Правда, не слишком сложно остановить. – GManNickG
- 1. Как работать только один раз?
- 2. Как включить только один класс
- 3. В java каждый класс расширяет Object.Then как он расширяет другой класс. Поскольку один класс может распространять только один класс
- 4. Как заставить setInterval работать только один раз?
- 5. как заставить кнопку работать только один раз;
- 6. C# Я хочу, чтобы один унаследованный класс был только SET, а другой унаследованный класс - только GET
- 7. Как переключить только * следующий * & скрыть другой класс
- 8. Инициализировать класс только один раз
- 9. JFrame добавить только один класс
- 10. Как загрузить только один класс из модуля?
- 11. Как экспортировать только один класс (который использует другой класс) в TypeScript (CommonJS)?
- 12. .NET - как сделать класс таким, чтобы только один другой конкретный класс мог его создать?
- 13. Как работать с двумя РЕПО Git, один полный, другой частичный
- 14. конвертировать один производный класс в другой?
- 15. Код будет работать только один раз
- 16. LiveReload (браузер синхронизации) работать только один раз
- 17. Почему только один класс в файле
- 18. Grails taglib только печать один класс имя
- 19. Почему один класс действителен, а другой нет?
- 20. Java JButton Нужно работать только один раз
- 21. Функция кнопки может работать только один раз
- 22. Положения переключателей Tablerows работать только один раз
- 23. PIC16F887 Прерывание будет работать только один раз
- 24. Функция JavaScript будет работать только один раз
- 25. Включить checkbox работать только один раз
- 26. jQuery переключает один класс, когда нажимается другой.
- 27. Нажмите один класс со строковым именем, чтобы активировать другой класс
- 28. Классификатор сходится только один класс - рост разнообразия
- 29. toggleClass() только переключается на один класс
- 30. Разработчик Android, только один класс запущен
Вам нужно уточнить, что вы хотите. Дайте реальные примеры, реальные проблемы и т. Д. Я предполагаю, что английский не является вашим первым языком, поэтому попробуйте объяснить свою проблему настолько подробно, насколько возможно. – GManNickG