Мне нужна одна структура Vector, которая будет работать и с комплексными, и с вещественными числами.
Обычно это реализуют через объединение (union), что-то типа такого:
union node {
struct complex c;
float f;
double d;
int i;
};
struct vector {
int type; // тут идентификатор реального типа данных лежащих в объединениях ниже
union node x;
union node y;
}
Можно и через void* как у вас, но сразу возникает встречный вопрос - как вы будете узнавать что конкретно лежит в памяти, куда указывает указатель на void*. Думаю, что в vector надо добавить поле типа данных, как в моем примере.
Стандартный std::vector в плюсах уже умеет работать с разными типами. Возможно вам и не нужно изобретать свой велосипед.
Кстати, complex уже есть и в Си и С++. Даже у микрософта есть какая-то недореализация, но и ее можно использовать.
Mysterion, Самый простой вариант - одна программа что-то пишет в файл, другая из него читает.
Либо любой другой механизм межпроцессной коммуникации (каналы, сокеты, общая память, ...).
Но сами консоли тут не при делах. Программы, которые вы запускаете в них должны поддерживать какой-то механизм взаимодействия - силком запихнуть что-то в программу, если она этого не ждет не выйдет.
Anton_repr, это вам надо парсер русского языка :-) а не погоды.
В программе, которая выдает погоду, не нужно писать "погода" - она и так выдаст погоду, потому что ничего другого не умеет, а населенный пункт можно из какого-нибудь справочника выбирать.
Список населенных пунктов в РФ можно взять, например из справочника ФИАС, его налоговая бесплатно раздает.
Саму погоду запрашивать у гисметео или у любой другой подходящей службы - их хватает. Надо только узнать API для запросов.
RabraBabr, Вообще то именно так и делают обычно. Если посмотрите по внимательней, то условие выхода из цикла ptr < end, т.е. в цикле итераций за границей массива не будет, а то что адрес хранящийся в ptr выйде за границы - не имеет значения, до тех пор пока по этому адресу не будет обращения к памяти.
Кроме того, в С++ все итераторы стандартной библиотеки работают именно по такому принципу, почитайте документацию. Как думаете - это не опасно?
Можете протянуть еще один кабель, но это никак не изменит ситуацию. У вас уже сейчас есть одновременный доступ к обеим сетям, просто вы об этом не знаете :-)
Учтите еще, что синхронизация, видимо, будет происходить в он-лайн режиме, а значит будет отъедать ресурсы тогда, когда они вам нужны. Это может стать критичным моментом. Бэкаперы, как правило, запускаются по расписанию, когда нет нагрузки - ночью, например.
MaksPaverov, Когда вы запускаете скрипт из автозагрузки меняются следующие условия:
1.текущий каталог - меняется практически всегда, как правило он устанавливается во что-то вроде c:\windows\system32 но не обязательно.
2.пользователь из-под которого работает программа - это опционально, в зависимости от варианта автозагрузки
Если ваш скрипт/программа делает какие-то предположения относительно значений вышеперечисленных параметров (и того что с ними может быть связано), то будет ошибка.
Без кода скриптов, текста ошибки и описания варианта автозагрузки невозможно ничего больше сказать.
MaksPaverov, Обычно программы/скрипты выдают какие-то сообщения с ошибками, сделайте перенаправление stdin и stderr в файлы при запуске вашего скрипта, тогда, возможно, ошибка запишется в файл и вы сможете ее прочитать.
Роман, Да так и делайте, как сказано. Находясь в каталоге deploy дайте команду
git pull
git сольет все изменения из repo в deploy. Сложности начинаются, когда вы и в deploy то же вносите изменения. Тогда потребуется слияние двух репозиториев, в процессе слияния могут быть конфликты, которые надо устранять вручную.
Перед тем как в repo будут доступны изменения нужно их закоммитить: находясь в каталоге repo дайте команду:
git commit -a -m "Тут описание изменений"
Если в ходе изменений появятся новые файлы, которых не было ранее в репозитории, то их перед commitом надо включить в репозиторий:
git add <путь к новому файлу>
Посмотреть текущее состояние репозитория, состояние обновления рабочего каталога можно с помощью
git status
Посмотреть журнал коммитов:
git log
Каждай команда gitа имеет встроенную справку, посмотреть справку, например по git log так:
git log --help
Аналогично и по другим командам.
Короче общее знакомство с gitом крайне рекомендуется. Потратьте пару часов времени, на ознакомление с несколькими первыми главами книги по вышеприведенной ссылке.
Возможно нет прав.
Когда запускаете через реестр из HKLM, то запускается с правами System, в планировщике пользователя можно задать, но по умолчанию то же System.
3gik, На сколько я знаю сейчас актуального ESX не существует. Он был когда-то. Теперь только ESXi. Сам по себе он бесплатный, но некоторый функционал платный. Например в бесплатном варианте вы не сможете делать нормальный бэкап, т.к. Backup API имеет отдельное лицензирование, которое стоит денег. Бэкап все равно можно делать, но схемы становятся сложнее. И т.п. нюансы. Ну и плюшки VMWare vSphere не доступны в бесплатном варианте.
Вообще на одном компе вы не сможете ощутить всех преимуществ от виртуализации. Нужно хотя бы 2 сервера и 1 внешнее хранилище. Полноценная инфраструктура под виртуализацию несколько сложнее даже в минимальном варианте.
3gik, Мне приходилось плотно работать только с ним, за другие не скажу.
Принципы использования дискового пространства для виртуалок везде одинаковы, а вот на счет загрузки с флэшки гипервизора в других вариантах - вопрос.
3gik, Если бюджет есть, то SSD - отличный вариант.
Но вообще компы работали и когда SSD и в проекте не было.
Обычно если нужна нормальная производительность на HDD делают правильный RAID10 (или 5,6) из нескольких дисков (>2) тогда и скорость чтения вырастает.
Контроллер домена на 100 пользователей будет нормально работать на HDD и без особых танцев с бубном, там не большая нагрузка.
Обычно SSD используют когда у вас нагруженная база данных, тогда базу кладут на SSD, при этом сама ОС может быть где угодно.
Обычно это реализуют через объединение (union), что-то типа такого:
Можно и через void* как у вас, но сразу возникает встречный вопрос - как вы будете узнавать что конкретно лежит в памяти, куда указывает указатель на void*. Думаю, что в vector надо добавить поле типа данных, как в моем примере.
Стандартный std::vector в плюсах уже умеет работать с разными типами. Возможно вам и не нужно изобретать свой велосипед.
Кстати, complex уже есть и в Си и С++. Даже у микрософта есть какая-то недореализация, но и ее можно использовать.