Вы можете использовать объект шаблона в C ++ для этого. Я сделал что-то вроде этого:
template<typename T, size_t col>
T process(T a[][col], size_t row) {
...
}
проблема с этим подходом заключается в том, что для каждого значения col, которое вы предоставляете, создается новое определение функции с использованием шаблона. поэтому
int some_mat[3][3], another_mat[4,5];
process(some_mat, 3);
process(another_mat, 4);
дважды создает шаблон для создания двух определений функций (один из которых col = 3 и один, где col = 5).
Если я запускаю приложение с помощью Level.OFF, создается файл журнала (включая .lck), но ничего не пишется.
blockquote>.lck и файл журнала создаются при создании FileHandler. Если вам не нужны эти файлы, не создавайте FileHandler, когда уровень выключен.
Если я запускаю приложение с помощью Level.FINE, оно регистрируется, затем переключается на Level.OFF, регистрация прекращается, но если я переключаюсь обратно на Level.FINE или Level.INFO, регистрация не происходит, пока служба не будет остановился.
blockquote>Убедитесь, что у вас есть сильная ссылка на регистратор com.raytheon.mane.client. В вашем коде вы используете только локальные ссылки метода. Вам нужна хотя бы одна статическая окончательная ссылка на этот регистратор, чтобы предотвратить сборку мусора .
Также Windows будет задерживать запись байтов на диск (синхронизация против сброса) . Поведение, которое вы описываете, будет соответствовать FileHandler.close выполняет синхронизацию при завершении работы. В настоящее время единственный способ заставить FileHandler выполнить синхронизацию - это закрыть или повернуть. Возможно, вы просто не записали достаточно данных в журнал, чтобы синхронизировать окна с диском?