LINUX.ORG.RU

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

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

да я про другой шаплон

#define ABS(N) ((((int)(N))<0)?(-N):(N))

Ну и предупреждения стоит включить

а кто-бы их выключил... ни каких пердупержений не было... :о)

может, что не так...

#include <iostream>

#define ABS(N) ((((int)(N))<0)?(-N):(N))
// using std::abs; // теперь abs -- это std::abs

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

-->

g++ -Wall ./main.cpp && ./a.out
-->
    abs((int)u) = 1
std:abs((int)u) = 1
    ABS((int)u) = 1
    ABS(     u) = 1

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

да я про другой шаплон

#define ABS(N) ((((int)(N))<0)?(-N):(N))

Ну и предупреждения стоит включить

а кто-бы их выключил... ни каких пердупержений не было... :о)

может, что не так...

#include <iostream>

#define ABS(N) ((((int)(N))<0)?(-N):(N))
// using std::abs; // теперь abs -- это std::abs

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

-->

g++ -Wall ./main.cpp && ./a.out
-->
    abs((int)u) = 1
std:abs((int)u) = 1
    ABS((int)u) = 1
    ABS(     u) = 1

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

да я про другой шаплон

#define ABS(N) ((((int)(N))<0)?(-N):(N))

Ну и предупреждения стоит включить

а кто-бы их выключил... ни каких пердупержений не было... :о)

может, что не так...

#include <iostream>

#define ABS(N) ((((int)(N))<0)?(-N):(N))
// using std::abs; // теперь abs -- это std::abs

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

-->

g++ -Wall ./main.cpp && ./a.out
-->
    abs((int)u) = 1
std:abs((int)u) = 1
    ABS((int)u) = 1
    ABS(     u) = 1

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

да я про другой шаплон

#define ABS(N) ((((int)(N))<0)?(-N):(N))

Ну и предупреждения стоит включить

а кто-бы их выключил... ни каких пердупержений не было... :о)

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

да я про другой шаплон

#define ABS(N) ((((int)(N))<0)?(-N):(N))