- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
PrefixAllocator::PrefixAllocator(
const std::string& myNodeName,
const KvStoreLocalCmdUrl& kvStoreLocalCmdUrl,
const KvStoreLocalPubUrl& kvStoreLocalPubUrl,
const PrefixManagerLocalCmdUrl& prefixManagerLocalCmdUrl,
const MonitorSubmitUrl& monitorSubmitUrl,
const AllocPrefixMarker& allocPrefixMarker,
const folly::Optional<folly::CIDRNetwork> seedPrefix,
uint32_t allocPrefixLen,
bool setLoopbackAddress,
bool overrideGlobalAddress,
const std::string& loopbackIfaceName,
std::chrono::milliseconds syncInterval,
PersistentStoreUrl const& configStoreUrl,
fbzmq::Context& zmqContext)
: myNodeName_(myNodeName),
allocPrefixMarker_(allocPrefixMarker),
seedPrefix_(seedPrefix),
allocPrefixLen_(allocPrefixLen),
setLoopbackAddress_(setLoopbackAddress),
overrideGlobalAddress_(overrideGlobalAddress),
loopbackIfaceName_(loopbackIfaceName),
syncInterval_(syncInterval),
configStoreClient_(configStoreUrl, zmqContext),
zmqMonitorClient_(zmqContext, monitorSubmitUrl) {
Фейсбук выложил какую-то хуйню https://github.com/facebook/openr/blob/master/openr/allocators/PrefixAllocator.cpp#L61
# привет, программист под Win32API
Ну и покажи, где в Win32API сорок аргументов
Промолвил Носорог:
Что лучше - сорок пяток
Или пяток сорок?
и потом есть функции которые принимают на вход специальные структурки с тучей полей. да, за аргументы функции это не считается. но писанины - и с этим связаных ошибок - не меньше.
Хорошо что студия умеет подсказывать их поля, особенно с Resharperом
толку от этого мало. т.к. по крайней мере у меня самая частая ошибка была что поле забыл проинициализировать.
> Если POSIX любит 20 функций с двумя аргументами, то Win32API -- одну с двадцатью, ну и структуры адские.
POSIX любит простые интерфейсы для простых вещей, и сложные интерфейсы для сложных. не всегда получается, но преимущественно ок.
WinAPI делался изначально VMSниками, у которых просто сложившийся стиль был убогий: они пытались все по полочкам раскладывать с одной стороны, а с другой стороны в ж все абстрагировать. VMS уже умерла раз пять, но наследие все еще живет.
ЗЫ https://en.wikipedia.org/wiki/OpenVMS - педрилы начали делать порт на Итаник - как раз когда интел его убил. (( самое близкое к доке что смог наколупать - https://support.hpe.com/hpsc/doc/public/display?docId=emr_na-c04621400 ))
Или забыл сделать им memset в 0, да?
НУ что поделать, в си нету RAII
>>, а с другой стороны в ж все абстрагировать.
Вот да!
В винде очень много НЕНУЖНЫХ абстракций.
Даже Win32API должен был быть изначально лишь одним из многих API поверх native, но теперь другие API умерли, так что не понятно зафига есть NtCreateFile и CreateFile
Если бы Гейтс хайранул не VMSника а юниксоида для WinNT в 1990 году, мир мог бы быть куда более приятным местом...
И что же ты приведёшь в убийственный пример?
Чем они тебе мешают?
не все дефолты нули.
Простите, пишу высокоуровневый код с частичкой этого говна, и это хуже легаси, который можно и переписать...
MFC:)))))))
И правда и подъеб одновременно)
ATL)))
Придумали что? Сам акроним раии?
Жаль здесь Тараса нет, он бы наверняка пояснил за Ada controlled types.
RAII. Deal with it.
Америку тоже не Америго Веспуччи первым открыл, но...
Ну правильно, только уродский акроним РАЙИ.
Лишённые эстетики крестухи даже красиво не смогли обозвать. См. KISS, DRY.
Студия вообще хорошо справляется со своей задачей - быть полным комплектом отличных столовых приборов для поедания говна
на линуксах можно clion попробоваь