TStorage?std::vector, std::list и std::deque? Или для чего-то еще?std::transform [?]? Или ты просто хочешь для самообучения сделать его аналог?однако, когда если функция несколько раз перегружена, то уже не работает.
func функция имеет перегрузки и у тебя сложности к синтаксисом передачи конкретной перегрузки? switch-case. Еще лучше - вывести аппроксимирующую функцию и работать через нее. Прыгать по коду - не самое легкое решение. Массив - это данные в динамической памяти, для получения которых требуется совершить две выборки из памяти. Двумерный массив - это уже три выборки из памяти. И так далее. Атмега не имеет предсказателя и все операции делает в лоб. Выборка из памяти делается многократно медленнее прыжков по switch-case.switch-case - это точно лишнее с т.з. ручного труда и неплохо бы действительно код переписать в массив. switch-case лучше подходит для типов перечислений. Хотя 100 пар это ни о чём. Вы время засекали?
mbrtoc16, mbrtoc32, c16rtomb и c32rtomb. И это потому что, снова, не все реализации стандартной библиотеки C++ реализуют эти же функции. Многие разработчики приходят к такому же решению при отказе от codecvt. Иные пользуются тем же ICU и про codecvt даже не вспоминали. ;, который находится в конце строки. Люди ждут выражений не более чем в одну строчку. Когда в конце строки находится не ;, код снова начинает сбивать читателя с толку. В самом крайнем случае допускается разбивка арифметических выражений на несколько строк. Да и то, на ревью такой код с вероятностью 80% потребуют переформулировать в пояснительные константы. Больших арифметических выражений в коде тоже быть не должно.4. После размещения вопроса пользователю запрещается осуществлять:
4.1. Дублирование вопроса, который уже размещался на страницах Сервиса. В том числе и в случае, если вопрос был удалён модератором, или на вопрос не был дан ответ (т.е. категорически запрещается дублирование вопроса с целью повторного привлечения к нему внимания).
impression.float intension, empation, insignion, imposion;
int impresumption, impetition, inversion, illustration;
bool illusion, impretendion, imperception;client, которое ничего не выражает?struct data_t - абсолютно никак не объясняет смысл своего существования. Слово Data не выражает ничего, оно просто говорит что внутри какой-то бессвязный белый шум из байтиков. Почему для определения типа выбрано слово struct? Почему не class?struct authorization_t - словом Authorization обозначают данные уже авторизовавшегося пользователя, которому уже присвоен идентификатор сессии. У тебя в этой структуре записаны поля, которые другими людьми оформляются в термин Authentication. Разница между этими терминами даже близко не позволяет один с другим сравнивать.const char* login = nullptr, *password = nullptr; - через запятую никогда не пишем. Каждое поле должно быть легко читаемо на своей отдельной строке. А вот таким определением полей через запятую ты ничего не добиваешься, кроме как только усложнения чтения кода. Правило 0 при написании кода - не создавать проблем для его чтения.const char* login - константностью данных управлять нужно не так. Именно объекты типа struct authorization_t должны наделяться свойством константности там, где это требуется. Состояние же этих объектов константным делать просто незачем.const char* login ... size_t login_sz - при инициализации по умолчанию поле } authorization; имеет неконсистентное и алогичное состояние. Более того, такой набор полей нельзя отнести к коду на языке C++. Эта структура написана на C. Весь набор полей нужно изменить на два поля с типом std::string если ты хочешь писать на C++.} authorization; - от кого ты прячешь этот код? Определение поля должно быть легко читаемым. Сейчас оно абсолютно нечитаемое. Чтобы найти это поле глазами, требуется много непозволительных для этого занятия усилий. И, опять же, это не Authorization, а Authentication. С моей т.з. такого поля в этом месте существовать вообще не должно.const char* mac = nullptr, *proc_id = nullptr, *mbios = nullptr; - все так же, через запятую поля никогда не определяем. Более того, тут уже пошли очень странные нечитаемые и непонятные имена. mbios - что это, акроним или именование в стиле СовКомПоМорДе (Советский Комитет По Морским Делам)? Такие имена невозможно прочитать, они не отражают смысла своего существования. Почему в authorization_t для полей с типом const char* есть семантическая пара size_t, а тут - нет? Все эти поля нужно заменить на std::string.в моем проекте практически все классы объявлены глобально. потому что вся программа в бесконечном цикле
Комбинаторика, теория вероятностей, графы, матрицы, дискретная оптимизация
могли бы расписать развернутый ответ на вопрос и предложить свой вариант как читабельнее и правильнее бы это выглядело
владел только той информацией, что - _t = typedef
_t является частью соглашения об именовании.