Операции на типах произвольного значения

Вам нужно будет использовать JOINS, см. Учебное пособие по объединениям в MYSQL

.

5
задан meagar 27 February 2010 в 03:51
поделиться

5 ответов

Из-за пути шаблоны компилируются в C++, просто делая:

template < class T >
T add(T const & val1, T const & val2)
{
    return val1 + val2;
}

будет работать, Вы получите ошибку компиляции для каждого типа, где оператор + не определяется.

Шаблоны C++ генерируют код для каждого инстанцирования типа, таким образом, для каждого кода типа T будет сгенерирован, который делает правильную вещь. Таким образом, C++ не нужна Цифра <> обман.

В плоскости C это не возможно насколько я знаю.

13
ответ дан 18 December 2019 в 08:32
поделиться

В C++ это - просто не проблема. Код как в Вашем первом образце работает, если буквально переведено в C++ (ETA: поскольку Pieter сделал), но я не могу думать ни о какой ситуации, где непосредственно использование + не работало бы. Вы ищете решение проблемы, которая не существует.

4
ответ дан 18 December 2019 в 08:32
поделиться

Это может легко быть сделано в шаблонах использования C++:


template <typename T>
T Add(T val1, T val2)
{
  return val1 + val2;
}

Обратите внимание, однако, что это должно быть определено в заголовочном файле, и Вы, вероятно, также хотите передать параметры ссылкой константы вместо значением.

Это не может быть сделано в плоскости C вообще.

1
ответ дан 18 December 2019 в 08:32
поделиться

Шаблоны в C++. В C, не без крупной стычки и наверху.

template<typename T> 
T add(T x, T y)
{ 
    return x + y;
}
0
ответ дан 18 December 2019 в 08:32
поделиться

Это может быть сделано в C также, хотя я не уверен, что это отвечает проблемным требованиям с Макросом.

#define ADD(A,B) (A+B)
1
ответ дан 18 December 2019 в 08:32
поделиться