Вам нужно будет использовать JOINS, см. Учебное пособие по объединениям в MYSQL
.
Из-за пути шаблоны компилируются в C++, просто делая:
template < class T >
T add(T const & val1, T const & val2)
{
return val1 + val2;
}
будет работать, Вы получите ошибку компиляции для каждого типа, где оператор + не определяется.
Шаблоны C++ генерируют код для каждого инстанцирования типа, таким образом, для каждого кода типа T будет сгенерирован, который делает правильную вещь. Таким образом, C++ не нужна Цифра <> обман.
В плоскости C это не возможно насколько я знаю.
В C++ это - просто не проблема. Код как в Вашем первом образце работает, если буквально переведено в C++ (ETA: поскольку Pieter сделал), но я не могу думать ни о какой ситуации, где непосредственно использование + не работало бы. Вы ищете решение проблемы, которая не существует.
Это может легко быть сделано в шаблонах использования C++:
template <typename T>
T Add(T val1, T val2)
{
return val1 + val2;
}
Обратите внимание, однако, что это должно быть определено в заголовочном файле, и Вы, вероятно, также хотите передать параметры ссылкой константы вместо значением.
Это не может быть сделано в плоскости C вообще.
Шаблоны в C++. В C, не без крупной стычки и наверху.
template<typename T>
T add(T x, T y)
{
return x + y;
}
Это может быть сделано в C также, хотя я не уверен, что это отвечает проблемным требованиям с Макросом.
#define ADD(A,B) (A+B)