LINUX.ORG.RU

История изменений

Исправление bormant, (текущая версия) :

Этот abs — не тот, который std::abs ;-), ему важен только размер параметра на входе, на его знаковость в вызывающем коде ему почти плевать.

#include <iostream>
#define ABS(N) ((N<0)?(-N):(N))

using std::abs; // теперь abs -- это std::abs

int main() {
  unsigned int u=-1;
  std::cout << "abs: " << abs((int)u) << ", ABS: " << ABS(u) << "\n";
}


PS. Ну и предупреждения стоит включить :-D

Исправление bormant, :

Этот abs — не тот, который std::abs ;-), ему важен только размер на параметра входе, на его знаковость в вызывающем коде ему плевать.

#include <iostream>
#define ABS(N) ((N<0)?(-N):(N))

using std::abs; // теперь abs -- это std::abs

int main() {
  unsigned int u=-1;
  std::cout << "abs: " << abs((int)u) << ", ABS: " << ABS(u) << "\n";
}


PS. Ну и предупреждения стоит включить :-D

Исправление bormant, :

Этот abs — не тот, который std::abs ;-), ему важен только размер на параметра входе, на его знаковость в вызывающем коде ему плевать.

#include <iostream>
#define ABS(N) ((N<0)?(-N):(N))

using std::abs; // теперь abs -- это std::abs

int main() {
  unsigned int u=-1;
  std::cout << "abs: " << abs((int)u) << ", ABS: " << ABS(u) << "\n";
}

Исходная версия bormant, :

Этот abs — не тот, который std::abs ;-), ему важен только размер на параметра входе, на его знаковость в вызывающем коде ему плевать.

#include <iostream>
#define ABS(N) ((N<0)?(-N):(N))

using std::abs;

int main() {
  unsigned int u=-1;
  std::cout << "abs: " << abs((int)u) << ", ABS: " << ABS(u) << "\n";
}