• Как правильно настраивать удаленный принтер на win2008?

    @nfire
    Первый вариант - такие вот драйвера. Бывает. Можно попробовать поставить стандартный PCL6 (или 5е)
    Второй вариант - подключать принтеры как локальные к порту "\\192.168.1.100\PrinterN1".
    Ответ написан
    8 комментариев
  • Как в C++ красиво реализовать множество условий?

    Teivaz
    @Teivaz
    В подобных случаях я разделяю группы условий либо на временные пременные, либо на функции.
    Например:
    bool CanConsumePoint();
    bool IsPointValid(Point pt);
    
    bool pointInsideRectangle = (pointX > rectXMin) && (pointX < rectXMax) && (pointY > rectYMin) && (pointY < rectYMax);
    bool pointTypeCompatible = (pointType == compatible) || (pointType == force);
    bool pointValid = IsPointValid(currentPoint);
    if (pointInsideRectangle && pointTypeCompatible && CanConsumePoint() && pointValid)
    {
        ...
    }

    Так каждую переменную и метод можно отдельно рассматривать и легко понять за что каждая отвечает и при необходимости разобраться с логикой каждого элемента условия не вдаваясь в подробности остальных.
    Ответ написан
    Комментировать
  • Как в C++ красиво реализовать множество условий?

    Современным компиляторам нет разницы каким образом расположить условия - в одном if или в несколльких. Не верите? Попробуйте указать компилятору ключи, которые генерируют ассмемблерный код, и посмотрите, что разницы не будет.

    gcc -S yousource.c - сгенерирует ассемблерный файл c помощью компилятора gcc

    cl.exe /FAs /c yousource.c - сгенерирует ассемблерный файл c помощью компилятора командной строки Microsoft Visual C
    Ответ написан
    3 комментария
  • Как в C++ красиво реализовать множество условий?

    risik
    @risik
    Программист
    Сложные условия следует разбивать на простые. равно как и слдожные функции следует разбивать на простые.

    (qX >= 0 && qY >= 0 && qX < room_size && qY < room_size)

    Это условие, как я вижу, проверяет вхождение я прямоугольник? Лучше всего в отдельную функцию. Повысит читаемость.
    например так:
    bool isInRoom(int qX, int qY, int room_size) 
    {
      if (qX < 0)
        return false;
      if (qY < 0)
        return false;
      if (qX >= room_size)
        return false;
      if (qY >= room_size)
        return false;
      return true;
    }


    Боитесь за производительность - inline функцию. Затем так:
    if (isInRoom(qX, qY, room_size) && water[qX][qY] < water[x][y] && water[x][y] != 0)
    ...


    или так:
    if (! isInRoom(qX, qY, room_size)) // проверка предусловия
      return;
    if (water[qX][qY] < water[x][y] && water[x][y] != 0)
    ...
    Ответ написан
    2 комментария