Серьезность Код Описание Проект Файл Строка Состояние подавления
Ошибка C2989 Машинный::Интерфейсы::ИСистемаОбменаСообщениями: класс шаблон уже объявлен как не класс шаблон МашинныйВыполнение G:\Workspace\cpp.machinarium.gui\Исходники\Машинный\Интерфейсы\Система Обмена Сообщениями\ИСистемаОбменаСообщениями.hpp 24
template<typename T> class ИСистемаОбменаСообщениями : public ИПоставщикУслуг
class Телеграмма : public Интерфейсы::ИСистемаОбменаСообщениями<Телеграмма> {
using namespace Machinery::Types;
T dx, dy;
constexpr switch (typeid(T))
{
case typeid(int): abs_macro(int)
case typeid(float): abs_macro(float)
case typeid(double): abs_macro(double)
case typeid(llong): abs_macro(llong)
case typeid(ullong): abs_macro(ullong)
case typeid(uint): abs_macro(uint)
case typeid(ushort): abs_macro(ushort)
case typeid(uchar): abs_macro(uchar)
case typeid(byte): abs_macro(byte)
default:
throw;
}
#define abs_macro(TYPE_1) dx, dy = abs((TYPE_1)get_x() - to.get_x()), abs((TYPE_1)get_y() - to.get_y()); return sqrt((TYPE_1)dx*dx + dy*dy);
template<typename T> T Point2D<T>::distance(const Point2D<T>& to) const
{
#ifdef __Linux__
T dx = abs(get_x() - to.get_x()),
dy = abs(get_y() - to.get_y());
return sqrt(dx*dx + dy*dy);
#else if (__Windows__)
using namespace Machinery::Types;
T dx, dy;
switch (typeid(T))
{
case int: abs_macro(int)
case float: abs_macro(float)
case double: abs_macro(double)
case llong: abs_macro(llong)
case ullong: abs_macro(ullong)
case uint: abs_macro(uint)
case ushort: abs_macro(ushort)
case uchar: abs_macro(uchar)
case byte: abs_macro(byte)
default:
throw;
}
#endif
}
#include <cmath>
template<typename T> T Point2D<T>::distance(const Point2D<T>& to) const
{
T dx = abs(get_x() - to.get_x()),
dy = abs(get_y() - to.get_y());
return sqrt(dx*dx + dy*dy);
}
США лишило будущего по какому то принципу